Вниз
Скачать: CL | DM;

Проблемы с событием Activate   Найти похожие ветки 

← →
Крутыш ©   (2004-01-21 18:12) [0]

Добрый вечер дельфисты-программисты!!!
Вызываю модальную форму из другого окна.
Когда модальную форму закрываю, событие Activate формы откуда
была вызвана модальная форма не происходит.
Почему???


← →
YuRock ©   (2004-01-21 18:20) [1]

Это известный глюк VCL - для главной формы OnActivate не работает...

Обход: перекройте метод WndProc класса "формы откуда
была вызвана модальная форма" и там ловите сообщение WM_ACTIVATE


← →
Крутыш ©   (2004-01-21 18:56) [2]

Братан поясни пожалуйста код.
Я чо то не въехал в слова типа перекройте.
Объясни пожалуйста новичку, если тебе не внапряг конечно.
Заранее очень благодарен.


← →
YuRock ©   (2004-01-21 19:13) [3]


unit Unit1;

interface

uses
Windows, Classes, Controls, StdCtrls, Forms, Messages;

type

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
protected
procedure WndProc(var Msg: TMessage); override;
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.WndProc(var Msg: TMessage);
begin
inherited;

if Msg.Msg = WM_ACTIVATE then begin
if Msg.WParamLo = WA_ACTIVE then Caption := "Окно активно"
else Caption := "Окно не активно";
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal;
end;

end.


Надеюсь понятно, что это текст модуля, с которым должна идти Unit1.dfm.
Так же должна быть форма Form2 (причем autocreate)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
6-2243
scr
2003-11-26 15:37
2004.02.02
TidSMTP (INDY) и прокси!


4-2420
Вадим
2003-11-25 10:00
2004.02.02
Поверх всех окон


14-2365
endeavor
2004-01-10 11:03
2004.02.02
ДОЛОЙ ГРУБИЯНОВ!!!


14-2352
Soft
2004-01-09 00:44
2004.02.02
Ящик для идиотов. Защита против зомбирования.


14-2323
Думкин
2004-01-11 05:50
2004.02.02
С днем рождения! 11 января.




   Наверх