Главная страница
    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.007 c
2-1205398187
Julia
2008-03-13 11:49
2008.04.06
CreateDBF


2-1205050404
WD
2008-03-09 11:13
2008.04.06
Отрисовка из ImageList


15-1203689334
NaRuTo
2008-02-22 17:08
2008.04.06
Компилятор Delphi


2-1205181672
philinsul
2008-03-10 23:41
2008.04.06
сортировка шелла


15-1203878793
NaRuTo
2008-02-24 21:46
2008.04.06
DirectX!





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