Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.026 c
2-1164482398
koha
2006-11-25 22:19
2006.12.10
Распознавание файлов?


2-1164489332
kami
2006-11-26 00:15
2006.12.10
Потокобезопасность TStringList


15-1164262685
Elen
2006-11-23 09:18
2006.12.10
Пара вопросов


1-1162187327
Николай1984
2006-10-30 08:48
2006.12.10
Бинарные деревья (деревья поиска)


1-1161812639
VeLeS
2006-10-26 01:43
2006.12.10
Как одновременно редактировать дату и время в TDatetime?




   Наверх