Текущий архив: 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.46 MB
Время: 0.008 c