Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

OnBefore/AfterChangeComponentCount(Sender: TObject);   Найти похожие ветки 

 
Silver_   (2004-02-19 16:00) [0]

OnBefore/AfterChangeComponentCount(Sender: TObject);
или OnBefore/AfterObjCreate/Destroy(Sender: TObject);
как отловить момент когда меняется значение ComponentCount
т.е. Знать что, где, когда добавляется/удаляется (в смысле контролов)
вобше-то на данном этапе меня интересует конкретно формы
какие и когда создаются что-то Типа OnBefore/AfterCreate; OnBefore/AfterDestroy
Типа как есть у TApplicationEvents.OnActivate а мне нужно OnCreate/Destroy


 
Владислав   (2004-02-19 16:04) [1]

Переопределяй метод Notification


 
Silver_   (2004-02-19 19:19) [2]


> Переопределяй метод Notification

У кого, мне надо по всему приложеню ловить (из одного места) ну чтоб всем формам в OnCreate не писать чего нибудь да и потом у них самих в OnCreate может чего есть мне надо до/после этого чего-то сделать а потом/до пусть себе личный OnCreate срабатывает. Типа так.


 
Владислав   (2004-02-19 19:21) [3]

> Silver_ © (19.02.04 19:19) [2]

Ну дык пересмотрите подход к решению изначальной проблемы. На 99 % уверен, что "как отловить момент когда меняется значение ComponentCount" лишь следствие.


 
Юрий Зотов   (2004-02-19 19:34) [4]

> Silver_ © (19.02.04 19:19) [2]

Сделайте свой класс TBaseForm (строку {$R *.dfm} из модуля можно и нужно убрать). В нем переопределите Notification и DoCreate. А все формы проекта порождайте от этого класса TBaseForm - тогда переопределенные в нем Notification и DoCreate и будут теми самыми централизованными местами отлова, которые Вам нужны. Вот и все.


 
Silver_   (2004-02-20 17:05) [5]

правельно понял ???
unit MySuperForm;

interface

type
TBaseForm = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
constructor Create; override;
end;

implementation

constructor TBaseForm.Create;
begin
//... Tipa OnBeforeCreate ...
inherited;
//... Tipa OnAfterCreate ...
end;

end.


А в проге
interface

uses MySuperForm;

type
TAnyForm = class( TBaseForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
AnyForm: TAnyform;

implementation

{$R *.dfm}
...


 
Юрий Зотов   (2004-02-20 19:30) [6]

type
TBaseForm = class(TForm)
...
protected
procedure Notification(...); override;
procedure DoCreate; override;
...
end;

Notification - относится вот к чему:
"как отловить момент когда меняется значение ComponentCount"

DoCreate - относится вот к чему:
"ну чтоб всем формам в OnCreate не писать чего нибудь да и потом у них самих в OnCreate может чего есть мне надо до/после этого чего-то сделать а потом/до пусть себе личный OnCreate срабатывает"


 
Silver_   (2004-02-20 20:50) [7]


> когда меняется значение ComponentCount

ну вобшет это мне для одного и надо было
отловить момент создания/Удаления всех форм ну так когда ComponentCount меняется вот тогда и создается/убивается форма (по мёему)

Как я показал так перекрывал Create у TFrame и подумал что у формы так-же проыдет а про DoCreate и вовсе не знал.
Кстати откуда вобще узнать что перекривать DoCreate/Create. Вот ты например откуда узнал чтоб сделать что-нить перед/сразу после создания (нормальный OnCreate) надо перекрыть именно DoCreate а не constructor Create. Это чтоб знать куда рыть а не вопросы таке плодить)


 
KSergey   (2004-02-21 10:33) [8]

По-моему, для задачи "сделать что-то при создании формы" перекрытие конструктора или AfterConstruction (он просто без параметра) - в общем-то фиолетово. Равно как и DoCreate (хотя, наверняка можно найти некие хитрые "штучки", конечно, где это будет критично).
Однако именно если ставить вопрос "сделать чтото как в OnCreate" - то видимо эквивалентным будет конечно DoCreate.
Откуда? С.м. исходники VCL, в частности где происходит вызов обработчика, вписанного в OnCreate - и сразу станет понятно ;)



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

Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
14-6188
Анонимщик
2004-02-11 14:45
2004.03.03
Шахматы


1-6060
Drozdov A
2004-02-18 15:22
2004.03.03
If ....Then


3-5971
ivs13
2004-02-05 14:09
2004.03.03
Бесплатная лицензия на Yaffil


1-6153
dr Tr0jan
2004-02-16 02:48
2004.03.03
TPageControl без закладок.


14-6208
Style
2004-02-10 15:52
2004.03.03
Stack Overflow при компиляции 8)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский