Вниз
Скачать: 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.022 c
4-2416
Les
2003-11-25 11:01
2004.02.02
Чтение файла шрифта


1-2215
Anton.
2004-01-20 17:54
2004.02.02
PrintDialog.Create


1-2170
такой же циник
2004-01-21 14:29
2004.02.02
изменение разрешения экрана


14-2322
ZDima
2004-01-11 18:21
2004.02.02
Помогите


14-2370
Андреев
2004-01-09 21:37
2004.02.02
Оплата




   Наверх