Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.07.14;
Скачать: CL | DM;

Вниз

Фрейм: как обрабатывать его закрытие и открытие   Найти похожие ветки 

 
lesstab ©   (2011-07-12 14:51) [0]

Проект основан на фреймах в которых должны отображаться данные. Таблица БД расположены на модуле данных.
Как простым способом обрабатывать события открытия и закрытия Фрейма? Есть ли альтернатива?
Благодарю заранее за ответы.


 
Медвежонок Пятачок ©   (2011-07-12 14:53) [1]

как обрабатывать события, которых нет.
хороший вопрос.


 
lesstab ©   (2011-07-12 15:56) [2]

Ну, тогда что же делать? Что бы Вы делали в таких ситуациях?

========================================
procedure CloseOpenPage(OP : TFrame);
begin

// ==== Здесь, ли писать Обработчик Закрытия Фрейма?

  formMain.OpenPage.Free;
  formMain.OpenPage := nil;

end;

procedure TformMain.actCurriCulumShowExecute(Sender: TObject);
var
  frmCurriculum1 : TFrame;
begin
   if not (OpenPage = frmCurriculum1)  then
   begin
       if not (OpenPage=nil) then CloseOpenPage(OpenPage);
       frmCurriculum1 := TfrmCurriculum.Create(formMain);
       frmCurriculum1.Parent :=  Panel1;
       frmCurriculum1.Align := alClient;
       frmCurriculum1.Visible := True ;
       OpenPage := frmCurriculum1;

       datamodul.tblCurriculum.Open;
   end;
===================================


 
MBo ©   (2011-07-12 16:08) [3]

http://stackoverflow.com/questions/3979298/how-to-simulate-an-ondestroy-event-on-a-tframe-in-delphi


 
Игорь Шевченко ©   (2011-07-12 18:12) [4]


> Как простым способом обрабатывать события открытия и закрытия
> Фрейма


AfterConstruction, BeforeDestruction


 
DVM ©   (2011-07-12 21:10) [5]

Какой особый смысл в использовании фреймов, когда формы ничуть не хуже?


 
Игорь Шевченко ©   (2011-07-14 19:31) [6]


> Какой особый смысл в использовании фреймов, когда формы
> ничуть не хуже?


удобно


 
DVM ©   (2011-07-14 21:32) [7]


> Игорь Шевченко ©   (14.07.11 19:31) [6]

А чем они удобнее форм? Я что-то для себя никаких преимуществ не нашел. И перешел на формы. А с фреймами были какие то множественные мелкие проблемы постоянно (правда давно это было, как сейчас не знаю).


 
lesstab ©   (2011-07-15 10:02) [8]

Решил так: Создать форму (formCurr) на котором будут размещены фреймы. Когда главная форма вызывает formCurr, тогда и будут обрабатываться события создания размещенных фреймов.

П.С. Фреймы мне нужны по прямому назначению, т.е. для одновременного использования на нескольких формах.


 
_Юрий   (2011-07-15 20:19) [9]


> procedure CloseOpenPage(OP : TFrame);
> begin
>
> // ==== Здесь, ли писать Обработчик Закрытия Фрейма?
>
>   formMain.OpenPage.Free;


У фрейма, как и у любого другого объекта, есть деструктор. Он виртуальный, и ничто не мешает его перекрыть.
ЧТо касается инициализации, то у фрейма, как и у любого другого компонента, есть виртуальный конструктор, который тоже никто не мешает переопределить.
Кроме того, есть виртуальные AfterConstruction, BeforeDestruction.

На мой взгляд, вообще событийная парадигма в том виде, в котором она реализована в VCL - не самая удачная идея. Хотя бы потому, что если начинается присвоение событий в ран тайм, бывает достаточно сложно найти концы, и понять, что же происходит, например когда ссылки начинают присваивать с двух сторон. Поэтому я предпочитаю использовать виртуализацию, даже в формах, где есть OnCreate и OnDestroy



Страницы: 1 вся ветка

Текущий архив: 2013.07.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.006 c
15-1362055175
O'ShinW
2013-02-28 16:39
2013.07.14
Как кодировку определить?


15-1362040901
Дмитрий С
2013-02-28 12:41
2013.07.14
Вопрос любителям DevExpress


15-1361608048
oldman
2013-02-23 12:27
2013.07.14
Кстати, с праздником, мужики!


2-1353266673
Tcount
2012-11-18 23:24
2013.07.14
Как распечатать файлы RTF


2-1353028451
Abcdef123
2012-11-16 05:14
2013.07.14
как контролировать ShortCut клавиши?