Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2013.07.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1353323720
Данилыч
2012-11-19 15:15
2013.07.14
Глюк StringGrid


15-1361901394
O'ShinW
2013-02-26 21:56
2013.07.14
Подскажите про ТЭН для WD-10130N. Мощность интересует


15-1360858297
alexdn
2013-02-14 20:11
2013.07.14
Мозг как процессор


15-1361910606
Юрий
2013-02-27 00:30
2013.07.14
С днем рождения ! 27 февраля 2013 среда


15-1361963106
Dimka Maslov
2013-02-27 15:05
2013.07.14
О рекламе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский