Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.006 c
2-1205494091
Strate
2008-03-14 14:28
2008.04.06
Как определить куда выпадет popup


11-1186549479
Alexey_k
2007-08-08 09:04
2008.04.06
подсчёт трафика


2-1205174994
Wowa
2008-03-10 21:49
2008.04.06
Время бездействия


3-1195200086
opoloXAI
2007-11-16 11:01
2008.04.06
Microsoft.Jet.OLEDB.4.0 : ошибка в строке "Sum()"


4-1172758557
Человек С вопросом
2007-03-01 17:15
2008.04.06
Замена обработчика события в чужом окне





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский