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

Вниз

Как выполнять одинаковый код для всех окон проекта?   Найти похожие ветки 

 
VovIk   (2007-12-12 13:41) [0]

В моем проекте есть много форм. Все они, кроме главного окна, вызываются с помощью TForm.ShowModal, в т.ч. одна из другой. Мне нужно, чтобы при открытии и закрытии всех таких форм, в т.ч. главной формы, выполнялись некие куски кода. Конечно, можно эти два куска кода оформить в виде двух процедур и для каждой формы в OnShow и OnClose вставить вызов таких процедур.

Но нельзя ли как-то один раз описать вызов таких процедур, чтобы они выполнялись для всех окон при их открытии и закрытии? Может де-то на уровне TApplication?


 
clickmaker ©   (2007-12-12 13:46) [1]


> VovIk   (12.12.07 13:41)

сделать наследника TForm с переопределенными ShowModal и Close, туда вставить все, что нужно, а формы наследовать уже от него.


 
VovIk   (2007-12-12 13:51) [2]

clickmaker ©   (12.12.07 13:46) [1]

Верно, только проект большой - 59 форм. Если начинать переносить весь функционал на нового наследника...


 
KSergey ©   (2007-12-12 13:54) [3]

> VovIk   (12.12.07 13:51) [2]
> Верно, только проект большой - 59 форм. Если начинать переносить
> весь функционал на нового наследника...

Это легко сделать обычной заменой текстовых шаблонов в pas и dfm файлах


 
VovIk   (2007-12-12 14:01) [4]

KSergey ©   (12.12.07 13:54) [3]

Ага, значит я сделал наследника стандартной TForm и обозвал ее TFormX. Потом в pas-ах поменял:

type
 TMyForm = class(TForm)
...

на

type
 TMyForm = class(TFormX)
...

А что я должен делать с dfm-ками? Не достаточно ли просто перекомпилировать проект?


 
clickmaker ©   (2007-12-12 14:12) [5]


> А что я должен делать с dfm-ками?

inherited TMyForm: TFormX
вместо первой строки


 
clickmaker ©   (2007-12-12 14:14) [6]

тьфу, то есть
inherited MyForm: TMyForm


 
VovIk   (2007-12-12 14:14) [7]

clickmaker ©   (12.12.07 14:12) [5]
KSergey ©   (12.12.07 13:54) [3]

Большое спасибо :)



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
6-1178027712
denissoft
2007-05-01 17:55
2008.01.13
программно отключить соединение по локальной


15-1197281577
LoDr
2007-12-10 13:12
2008.01.13
переименовать названия пакетов


2-1197616605
dumka
2007-12-14 10:16
2008.01.13
функции


2-1197452945
Steep
2007-12-12 12:49
2008.01.13
Отловить выключение компьютера


15-1197236307
leonidus
2007-12-10 00:38
2008.01.13
Inno setup и запуск файла с параметрами