Тема: Delphi - DB
Показать сообщение отдельно
Старый 02.01.2010, 15:53   #57
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

я, к примеру, делаю вот так.
делаю обобщающий класс потомок твинконтрол. полями которого являються фреймы, формы и прочее.
delphi Код:
TuserEngine = class(TWinControl) .......     i_Trade : TfInterface_Trade;     i_requestPetition : Tfinterface_requestPetition;     i_Petition : TfInterface_Petition;     i_AcquireSkillList : Tfinterface_AcquireSkillList;     i_RecipeShop : Tfinterface_RecipeShop;     i_gameaccountsettings : Tfinterface_gameaccountsettings; .....    Constructor create(AOwner:TWinControl); override; end;
в конструкторе этого класса создаю все визуальные части
delphi Код:
constructor TuserEngine.create; begin inherited create(Aowner); .....   i_Trade := TfInterface_Trade.Create(self, Aowner);   i_AcquireSkillList := Tfinterface_AcquireSkillList.Create(self, Aowner);   I_RecipeShop := Tfinterface_RecipeShop.Create(self,Aowner);   i_gameaccountsettings := Tfinterface_gameaccountsettings.Create(self, Aowner); .... end;

в каждом интерфейсном элементе замещаю конструктор креейт своим размещая вот такие 2 записи в паблик секции.
delphi Код:
UserEngine : TWinControl;     constructor Create(SetUserEngine:TWinControl;AOwner: TComponent);
реализацией этого конструктора - являются 2 строчки
delphi Код:
UserEngine := SetUserEngine;   inherited create(AOwner);
после inherited можно задать parent для данного фрейма если нужно.
допустим мы создавали userengine передавая ему параметр fmain:tformmain
тогда ьбудет выглядеть как то так
parent := (aowner as tformmain).panel222;

а далее из фрейма в фрейм обращение идет уже вот таким образом
TuserEngine(userengine).AcquireSkillList.blablabla
TuserEngine(userengine).I_RecipeShop.blablabla
ну и т.д.

таким образом создавая один юзеренджин мы автоматически оздаем кучу интерфейсных частей и они автоматически связываються между собой посредством поля userengine:twincontrol;

ну и естественно в деструкторе юзеренджина незабываем разрушать все созданные элементы
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился спасибкой от: