Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
ВнизКак выполнять одинаковый код для всех окон проекта? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c