|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Модальная форма открывается некорректно
Проблема собственно вот в чем...
В программе есть главная форма и несколько модальных... При нажатии на кнопку "Открыть модальную форму_1" открывается модальная_форма_1... На модальной_форме_1 есть еще кнопка "Открыть модальную форму_2"... Так вот при нажатии на эту кнопку модальная_форма_2 открывается на первый взгляд нормально, но при использовании встроенного отладчика (после установки breakpoint) заметил, что сначала вызывается событие OnActicvate главной формы... Небольшой пример...с начала работы программы... Код:
//Активация главного Procedure Main_FormOnactivate; begin ... end; ... //В главной форме procedure Button_ModalForm1Click begin Form_Print := TForm_Modal1.Create(Self); try Form_Modal1.ShowModal;//Модальное окно 1 finally Form_Modal1.Free; end; end; ... //В модальной_форме_1 procedure Button_ModalForm2Click begin Form_Print := TForm_Modal2.Create(Self); try Form_Modal2.ShowModal; //Модальное окно 2 В этом месте отладчик прыгает на Procedure Main_FormOnactivate делает все процедуры активации главной формы, затем делает все процедуры активации модальной_формы_2 и потом появляется окно finally Form_Modal2.Free; end; end; В начале был Бит, потом Байт и только потом появилось Слово... |
#2
|
||||
|
||||
Какой версии делфи? В 2009 подобного не было замечено, вообще если хочешь обработать код в OnActivate единожды то используй это:
Код:
procedure TForm1.FormActivate(Sender: TObject); begin if(Tag=0) begin //тут чо надо делаеш Tag := 1; end; end; TAleD = class(TUser) public function HelpMe(ASubject, ARequest: String): String; function GiveMeExample(ASubject: String): TStringList; procedure WriteReview(APost: Integer; ADescription: TStringList); end; |