Я изучаю Delphi последние 3 года на уровне хобби / профессии. Я счастлив сказать, что сейчас я продвинулся до такой степени, что могу оглядываться на свой ранний код с ужасом и смущением. Итак, сейчас я просматриваю некоторые из моих ранних приложений и переписываю / реорганизую их.
Одна из плохих привычек, от которой я пытаюсь избавиться, - это доступ к компонентам одной формы из другого модуля. Пытаясь добиться этого, я экспериментировал с использованием фреймов как метода сокрытия информации. Поэтому вместо того, чтобы иметь форму с компонентами на ней, я создаю фрейм для хранения всех компонентов формы, затем помещаю фрейм в форму, перемещая объявление фрейма в частные объявления,
type
TMyForm = class(TForm)
private
MyFrame: TMyFrame;
procedure SetTimeDate(const Value: TMyItem);
function ReadTimeDate:TMyItem ;
затем регистрируем фрейм в секции инициализации формы
initialization
begin
RegisterClasses([TMyFrame])
Затем я объявляю нужные мне свойства в общедоступном разделе модуля формы, у которого есть доступ к фрейму и его компонентам.
public
property TimeDate: TOverlayItem read ReadTimeDate write SetTimeDate;
Я также использую рамы для объединения часто повторяющихся групп компонентов.
Кажется, это работает для тех целей, которые я хочу (скрытие Myframe и его компонентов), но есть ли у кого-нибудь еще опыт этого метода?
Есть ли недостатки в использовании рамок? Получаю ли я от этого какую-то пользу? Есть ли проблемы с использованием вложенных фреймов внутри фреймов? Есть ли какие-нибудь полезные руководства по использованию фреймов в Delphi? Есть ли лучшие / более простые способы достижения того же эффекта в отношении скрытия информации графического интерфейса в Delphi?
HMcG