Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
ВнизFormActivate Найти похожие ветки
← →
Георгий (2008-03-07 06:40) [0]Всем привет. Помогите найти ответы на 2 вопроса.
1) У меня в программе 2 формы, в которой первая форма вызывает вторую. В событии OnActivate у второй формы, у меня существует некий код. После его выполнения форма-2 должна закрыться.
Пример:
procedure TForm2.FormActivate(Sender: TObject);
begin
ShowMessage("FormActivate");
Close;
end;
В данном случае после выполнения ShowMessage() форма не хочет закрываться. Подскажите, что делать?
2) Если установить для формы-2: Form2.FormStyle := fsStayOnTop;
Форма все равно не поверх всех окон т.к эта форма не главня думаю. Как это можно реализовать, что бы форма была по верх всех окон???
Надеюсь, что смог объяснить то что мне надо и надеюсь на полезные ответы :)
← →
Palladin © (2008-03-07 08:34) [1]1.
а с чего это она будет закрываться? пока пользователь не нажмет на ShowMessage OK обработка метода OnActivate не продолжится. вариант: сделать свою форму для сообщений и показывать ее, примерно так:procedure TForm2.FormActivate(Sender: TObject);
begin
If Not m_isAct Then
Begin
m_isAct:=True; // поле класса формы, флаг о том, что форма уже в режиме активации, в OnCreate должен быть выставлен в False
With TForm3.Create(Application) Do
Begin
Label1.Caption:="1234567890";
Show;
End;
Release;
End;
end;
нужно так же не забыть в TForm3.OnClose сказать ему что Action:=caFree;
2.
> Форма все равно не поверх всех окон т.к эта форма не главня
> думаю.
глупость думаешь, думай лучше что у каких то других окон тоже установленно fsStayOnTop
← →
Георгий (2008-03-07 11:23) [2]
> глупость думаешь, думай лучше что у каких то других окон
> тоже установленно fsStayOnTop
Нет, у меня всего 2 формы. У первой формы "fsNormal" у второй "fsStayOnTop" Вторая форма все равно не поверх всех окон. :(
← →
easy © (2008-03-07 11:41) [3]http://dfc.com.ru/download.php?d=formactivate
← →
Георгий (2008-03-07 12:16) [4]
> http://dfc.com.ru/download.php?d=formactivate
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := GetDesktopWindow();
end;
Так вот в чем дело. Спасибо огромное.
← →
Leonid Troyanovsky © (2008-03-07 12:26) [5]
> Георгий (07.03.08 11:23) [2]
> Нет, у меня всего 2 формы. У первой формы "fsNormal" у
> второй "fsStayOnTop" Вторая форма все равно не поверх всех
> окон. :(
http://www.rsdn.ru/Forum/Message.aspx?mid=466741&only=1
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.04.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c