Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.24;
Скачать: CL | DM;

Вниз

Обработка сообщений VCL компонента   Найти похожие ветки 

 
Alex Shulg ©   (2003-03-12 11:06) [0]

Народ, подскажите:
Есть VCL компонент на форме, имеет обработчики событий. Во время выполнения делаю дестрой, а потом снова создаю этот VCL компонент. Как у вновь созданного восстановить обработчики событий, которые я создал в режиме проектирования?
Зарание благодарю.


 
Roma ©   (2003-03-12 11:12) [1]

Его свойствам OnXXX присвоить значения:
NewRuntimeButton.OnClick := DesigntimeButtonOnClick;

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


 
KA_   (2003-03-12 11:20) [2]

У компонента обработчик события - это свойство. Посмотри сырцы VCL, например TWinControl

TWinControl = class(TControl)
private
...
FOnKeyDown: TKeyEvent;
...
protected
...
property OnKeyUp: TKeyEvent read FOnKeyUp write FOnKeyUp;
...
end;

Значит что? После создания компонента присвой значение свойству.
Например:

TMyForm = class(TForm)
...
private
...
procedure ClickMyshyuNaKnopke(Sender: TObject);
...
end;

var
my_form: TMyForm;
...
implementation
...
var
btn: TButton;
...
begin
btn := TButton.Create(My_Form);
btn.Caption := "Ето кнопка";
btn.OnClick := my_form.ClickMyshyuNaKnopke;
end;


 
Alex Shulg ©   (2003-03-12 11:41) [3]

Спасибо, все получилось!


 
REA ©   (2003-03-12 12:35) [4]

А зачем делать Destroy, если потом опять создавать?
Логичнее сделать visible false.
Если нужно сохранить все published свойства, то можно записать в поток и потом считать из потока.


 
Alex Shulg ©   (2003-03-12 16:27) [5]

Этот компонент обрабатывает некоторые данные в цикле, а когда возникает исключительная ошибка при одном из прохождений, остальные прохождения тоже проходят с ошибкой. Удаляя, а потом создавая компонент, я добиваюсь того, что последующие прохождения цикла выполняются корректно. (Какой-то глюк остается в компоненте после искл.ситуации)


 
Sheriff   (2003-03-12 16:32) [6]

беготня от исключений устойчивости программе не добавит. :)


 
REA ©   (2003-03-12 17:32) [7]

Как одна моя знакомая делала - у нее на выходе функции результат получался на 1 больше. Не долго думая после функции был вставлен оператор Dec(i). Чего разбираться то?


 
KA_   (2003-03-13 10:49) [8]

2 Alex Shulg:
Поднимите мне глюки :) В смысле - код в студию !



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
8-76527
ДокКир
2002-12-14 15:18
2003.03.24
Графика


3-76335
Совенок
2003-03-05 07:43
2003.03.24
Хранение текста с верхними и нижними индексами


1-76377
_stranger_
2003-03-13 03:59
2003.03.24
Отчеты!!!!!!!!


3-76326
AlexanderSK
2003-03-05 17:13
2003.03.24
TDCOMConnection и Service


3-76321
KoluChi
2003-03-05 13:16
2003.03.24
Чувствительность у регистру в MS Access