Фреймы в Delphi

Если загля­нуть в объектный инспектор, то по свойствам может показаться, что перед нами действительно форма, но это фрейм. В заголовке объектного инспектора можно увидеть надпись:

Frame1 TFrame1

Если вы перейдете в исходный код и посмотрите на объявление класса формы, то в качестве предка снова увидите класс TFrame.

TFrame1 = class(TFrame)

Вы можете располагать компоненты на фрейме точно так же, как и на форме, и писать необходимый код, и все это будет корректно работать. Хотя на фрейме можно устанавливать большинство компонентов, но не все. Например, нельзя по­ставить Action компоненты.

Для иллюстрации примера, поместите на форме по одному компоненту Button, Edit и Memo. По нажатии кнопки напишем строку кода:

Memo1.Lines.Add(Edit1.Text);

Здесь мы просто добавляем в мето-компонент новую строку, в качестве текста в которой будет содержимое поля ввода Edit.

Сразу же переименуем компонент в TestFrame и сохраним его в файле. Да, фреймы, как и формы, сохраняются в файле, причем также в двух файлах — код в .pas-файле, а визуальная форма в .dfm.

Теперь посмотрим, как можно использовать эти компоненты. Для этого выпол­няем следующие действия. 

  1. Переходим в главную форму программы.
  2. Выбираем компонент Frames (Фреймы) с вкладки Standard (Стандартная).
  3. Щелкните в любом месте формы, и перед вами появится окно, в котором нужно выбрать фреймы, существующие в проекте. Если в вашем проекте нет фреймов, то Delphi сообщит об ошибке, и ничего не появится.
  4. Выбрав нужный фрейм (у нас он один), нажмите кнопку ОК.

В главной форме программы появится содержимое фрейма. Если сейчас ском­пилировать программу и запустить, то по нажатии кнопки строка из поля ввода бу­дет добавляться в Memo компонент. Таким образом, визуальная форма фрейма вме­сте с кодом становится частью выбранной формы. Вы можете создать еще одно окно, которое будет вызываться как дочернее, и туда вставить этот же фрейм, и все будет работать корректно.

������� ������ ��� dle ������� ��������� ������

Помоги проекту! Расскажи друзьям об этом сайте: