![]() |
Delphi-Version: 5
Ereignis in einer Unit zuweisen
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag,
Ich möchte eine Unit schreiben die ich danach bei anderen Projekten wieder verwenden kann. Diese Unit benutzt TidTCPServer. Bei dem TidTCPServer gibt es ein OnExecute Event/Ereignis. Wie lässt sich ein Ereignis im Programmcode zuweisen ? (Siehe Bild) Da ich mich in einer Unit befinde kann ich den Objektinspektor nicht benutzen. Ich möchte kein DataModul verwenden. Dies Hilft meinem verständniss der Programmiersprachem, daher möchte ich dies hier ausprogrammieren.
Delphi-Quellcode:
Danke für die Hilfe,
procedure TServer.tcpServerExecute(AContext: TIdContext);
begin try AContext.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8; // uses IdGlobal AContext.Connection.IOHandler.ReadStrings(memMessage.Lines); AContext.Connection.IOHandler.WriteLn('#OK#'); finally AContext.Connection.Disconnect; end; end; Int3g3r |
AW: Ereignis in einer Unit zuweisen
Delphi-Quellcode:
deinServer := TServer.Create();
deinTcpServer.OnExecute := deinServer.tcpServerExecute; |
AW: Ereignis in einer Unit zuweisen
Vielen Dank Günther,
Das was mich verwirrt hat ist die übergabe des Parameters. procedure TServer.tcpServerExecute(AContext: TIdContext); Habe es nie versucht ohne Parameter zuzuweisen. Dazu wusste ich nicht was ich übergeben sollte. Gruss, Int3g3r |
AW: Ereignis in einer Unit zuweisen
Du willst ja nicht tcpServerExecute mit dem Parameter aufrufen, du willst ja eine Referenz auf tcpServerExecute "an sich" und dies dem OnExecute zuweisen.
|
AW: Ereignis in einer Unit zuweisen
In meinen Youtube Kanal gibt es etwas was hier ganz gut passt:
![]() Kannst ja mal schreiben ob es dir hilft. |
AW: Ereignis in einer Unit zuweisen
Du kannst natürlich in deiner eigenen Unit einen eigenen Event definieren
Delphi-Quellcode:
und dann im
TOnServerExecute=procedure(AContext: TIdContext) of object;
Type TServer=class private FOnServerExecute: TOnServerExecute; published property OnServerExecute: TOnServerExecute read FOnServerExecute write FOnServerExecute; end; . . .
Delphi-Quellcode:
über dieses Event das weitergeben.
procedure TServer.tcpServerExecute(AContext: TIdContext);
begin try AContext.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8; // uses IdGlobal AContext.Connection.IOHandler.ReadStrings(memMessage.Lines); AContext.Connection.IOHandler.WriteLn('#OK#'); if Assigned(FOnServerExecute) then FOnServerExecute(AContext); finally AContext.Connection.Disconnect; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz