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

Application.OnActivate   Найти похожие ветки 

← →
Призрак ©   (2006-03-14 21:49) [0]

Хочу сделать, чтобы при активации окна программы вызывалась моя процедура. Написал на Form1.OnActivate, потом понял что оно не вызывается когда я переключаюсь с другого приложения - вызывается Application.OnActivate. А как привесить туда что-то?.. В форме всё просто - задаётся свойство при описании и потом пишется, а объект инспектором так вообще на автомате но как сделать то же самое для приложения?..


← →
Anatoly Podgoretsky ©   (2006-03-14 21:54) [1]

Точно также


← →
Desdechado ©   (2006-03-14 21:54) [2]

1. посмотреть тип требуемой процедуры в справке
2. создать свою по образцу
3. Application.OnActivate := твоя_процедура


← →
Рамиль ©   (2006-03-14 21:56) [3]

Что бы совместить с OnActivate формы, просто

procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.OnActivate := Self.FormActivate;
end;


← →
Призрак ©   (2006-03-14 22:10) [4]

Ну я так и сделал...

property OnActivate: TNotifyEvent
вот оно.

type TNotifyEvent = procedure (Sender: TObject) of object
вот тип. обычный.

пишу:

unit unit1;

interface

...

procedure sorcery(Sender:TObject);

implementation

procedure TForm1.OnCreate(Sender: TObject);
begin
;
end;

procedure sorcery(Sender: TObject);
begin
// something
end;


...я не понимаю, где надо описать эту процедуру как часть application...
процедура которая часть класса описывается при описании класса, а описания приложения я не видел...
если здесь вместо sorcery везде поставить application.sorcery , то в описании процедура компилер смеётся над точкой => так нельзя :)
а если не ставить - то при Application.OnActivate:=sorcery говорит Incompatible types: method pointer and regular procedure.


← →
Призрак ©   (2006-03-14 22:14) [5]

Ага, как Рамиль советует - получилось. :) Но всё равно интересно...


← →
Anatoly Podgoretsky ©   (2006-03-14 22:20) [6]

Призрак ©   (14.03.06 22:10) [4]
Ее не надо как часть Application, вполне пойдет как часть TForm1


← →
Призрак ©   (2006-03-14 22:26) [7]

эмммммм...

...

а. дошло 8)

спасибо. :)


← →
Anatoly Podgoretsky ©   (2006-03-14 22:48) [8]

Только не забудь в OnDestroy сделать
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Application.OnActivate := nil;
end;


← →
Призрак ©   (2006-03-15 11:06) [9]

Ой... я забыл. :) То есть, я просто не совсем понимаю... зачем? Ну, я знаю, что всё созданное надо освобождать, но это... А, дошло. И всё-таки, что будет если не освобождать созданные объекты? Просто загаживание памяти?.. Я никогда не задумывался над этим, просто знаю что НАДО освобождать :)


← →
Плохиш ©   (2006-03-15 11:26) [10]


> И всё-таки, что будет если не освобождать созданные объекты?

Будут возникать ветки в различных форумах на тему "почему вындовс тормозит?", "куда девается память?", "вындовс - маст дай" и т.д.



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

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



Память: 0.47 MB
Время: 0.029 c
2-1142952153
DelphiLexx
2006-03-21 17:42
2006.04.02
CutToClipboard


3-1139228614
SdrCoder
2006-02-06 15:23
2006.04.02
DBExpress & Exception


1-1140940938
Mishenka
2006-02-26 11:02
2006.04.02
Автоматическое изменение размеров картинки в TImage


15-1141827843
Новичоккк
2006-03-08 17:24
2006.04.02
Можно как-нибудь это скачать?


2-1142502686
trych
2006-03-16 12:51
2006.04.02
C++ и Паскаль




   Наверх