Hi,
die IdIRC Komponente ist eine der wenigen die ich noch nicht benutzt/benötigt habe,
allerdings kenne ich ansonsten recht gut mit den
Indy-Komponenten aus.
Dein Gedankengang mit dem Thread ist absolut richtig,
allerdings solltest Du alle Events von TIdIRC(somit auch OnPrivateMessage)
innerhalb des Threads behandeln und
NICHT direkt an die Form verweisen.
Für eine Interaktionen zwischen Thread(s) und
VCL-Komponenten(auch Forms)
ist die Syncronisation der Interaktion dringend zu Verwenden!
Verwende Deinen Source aus dem ersten Posting,
verweise "OnPrivateMessage" auf eine "thread interne" Methode.
Dort verarbeite die "Message" nach belieben, soll allerdings
Interaktion mit der
GUI stattfinden(z.B. Anzeige der Nachricht im Memo)
muss das ganze über
Thread.Syncronize gemacht werden.
Zu Deiner Frage bezüglich des OnExecute:
Die Procedure die Du definiert hast für OnPrivateMessage wird automatisch aufgerufen,
darum "kümmert" sich IdIrc. Deshalb musst Du, soweit ich das im Moment beurteilen kann,
im Onexecute einfach eine Schleife laufen lassen, solange die
IRC Verbindung steht den
hread einfach schlafen legen(z.b. Sleep(25)). Gibt noch andere Möglichkeiten,
aber zum Testen sollte das reichen.
Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.