Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизConsole + TNotifyEvent (... of Object) Найти похожие ветки
← →
mkmkm (2006-11-23 13:30) [0]Есть не визуальный компонент, который я собрался использовать в консольном приложении.
делаю такvar
myComp: TmyComp;
begin
myComp := TmyComp.Create(nil);
myComp.MyValue := 10;
myComp.OnMyEvent := HereOnMyEvent;
...
...
procedure HereOnMyEvent(Sender: TObject);
begin
//
end;
В TMyComp, OnMyEvent представлен, как FOnMyEvent: TNotifyEvent;
При попытке использовать это код myComp.OnMyEvent := HereOnMyEvent возникает ошибка: Incompatible types: "method pointer and regular procedure". Что делать в таком случае?
← →
Сергей М. © (2006-11-23 13:31) [1]
> Что делать в таком случае?
Понять различие между регулярной процедурой и процедурным методом объекта.
← →
Сергей М. © (2006-11-23 13:33) [2]
> Console +
+ Console здесь вовсе ни при чем
← →
Anatoly Podgoretsky © (2006-11-23 13:44) [3]> Сергей М. (23.11.2006 13:33:02) [2]
> Console здесь вовсе ни при чем
И ГУИ тоже!
← →
Джо © (2006-11-23 13:49) [4]> [0] mkmkm (23.11.06 13:30)
См. [1].
А решение простое. Традиционное, я бы даже сказал.type
TEventHandlerClass = class
private
procedure OnMyEvent (Sender: TObject);
end;
procedure TEventHandlerClass.OnMyEvent(Sender: TObject);
begin
//
end;
var
MyEventHandlerObject: TEventHandlerClass;
...
begin
...
MyEventHandlerObject := TEventHandlerClass.Create;
try
MyComp.OnEvent := MyEventHandlerObject.OnMyEvent;
finally
MyEventHandlerObject.Free
end;
end.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c