Registriert seit: 22. Feb 2017
955 Beiträge
|
Methode in Consolenanwendung erstellen
26. Mai 2020, 13:34
Hi,
ich habe ein Consolenanwendung. In der erzeuge ich ein Object und möchte nun einem Event des Objects eine Methode zuweisen. Geht nicht, weil ich nur prozeduren habe.
Wie erstellt man in einer Cosolenanwendung eine Methode?
Object:
Delphi-Quellcode:
unit uTestObject;
interface
type
TOnLog=procedure(Sender: TObject; LogText: string) of object;
TTestObject=class
private
FOnLog: TOnLog;
procedure DoLog(LogText: string);
public
procdure MachWas;
published
property OnLog: TOnLog read FOnLog write FOnLog;
end;
Implementation
proceudre TTestObject.DoLog(LogText: string);
begin
if Assigned(FOnLog) then
FOnLog(self, LogText);
end;
procedure TTestObject.MachWas;
begin
DoLog(' TestLogText');
end;
end.
Consolenanwendung:
Delphi-Quellcode:
program CMDTest;
{$APPTYPE CONSOLE}
{$R *.res}
uses
uTestObject in 'uTestObject.pas';
var
TestObject: TTestObject;
proceudre LogMsg(Sender: TObject; LogText: string);
begin
MachIrgendwasMitLogText;
end;
begin
TestObject:=TTestObject.Create;
try
TestObject.OnLog:=LogMsg; //<---Das wird nicht compiliert: [dcc32 Fehler] CMDTest.dpr(104): E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
TestObject.MachWas;
finally
TestObject.free;
end;
end.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
Geändert von Hobbycoder (26. Mai 2020 um 16:09 Uhr)
|