Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.02;
Скачать: 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 вся ветка

Текущий архив: 2006.04.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.039 c
3-1139481919
yk
2006-02-09 13:45
2006.04.02
Украшение dbGrid


2-1142958679
Anton22
2006-03-21 19:31
2006.04.02
MainMenu


1-1141139914
Cybernik
2006-02-28 18:18
2006.04.02
Не стартует тред в вынь98. В XP всё нормально.


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


1-1141040367
serguar
2006-02-27 14:39
2006.04.02
отладка сервисов NT