Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизМетоды компонентов Найти похожие ветки
← →
Карлмаркс (2005-05-20 03:25) [0]Привет!
Допустим, я создал в runtime компонент. как задать ему метод? процедуры ведь не катят, там надо procedure of object.. Но эти of object какие-то странные. где их взять?? Насколько я понял, их можно только копировать от уже созданных объектов? или можно как-то ещё?
← →
Defunct © (2005-05-20 04:57) [1]> как задать ему метод?
with TSomeComponent.Create(...) do
OnSomething := DoSomething;
> Но эти of object какие-то странные. где их взять??
Описать например в шапке формы.
TForm1 = class(TForm)
...
...
private
procedure MyClick( Sender: TObject); // <<-- Вот и требуемый метод
...
end;
Если компонент твой тогда ты волен написать:
TMyProc = procedure;
TMyComponent = class(TComponent)
..
property OnSomething: TMyProc ....
end;
> или можно как-то ещё?
можно, но не нужно.
Тебе лень в описании TForm1 включить назначаемые методы?
> Насколько я понял, их можно только копировать от уже созданных объектов?
А ты хотел чтобы программа также динамически создавала за тебя все обработчики? Конечно, назначаемые методы должны быть где-то заранее описаны.
← →
Карлмаркс (2005-05-20 07:21) [2]Да, действительно, с формой я как-то не догадался.. :)
спасибо, буду пробовать!
← →
Digitman © (2005-05-20 09:09) [3]
> процедуры ведь не катят
и процедуры "катят"
procedure MyEventHandler(..);
begin
..//здесь можно все, но нельзя обращаться к Self, если Data:nil (см.ниже) !
end;
var //const
Method: TMethod = (Code: @MyEventHandler; Data:nil);
..
with TSomeComponent.Create(...) do
OnSomething := TSomeComponentEvent(Method);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c