Форум: "Начинающим";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c