Hallo erstmal.
Ich programmiere in letzter Zeit gerne mit
Indy Komponenten, am liebsten mit der
IRC Komponente.
Allerdings habe ich folgendes Problem:
- Beim Ereignis "OnPrivateMessage" wird der Text ab 1 Zeichen vor dem ersten Leerzeichen abgeschnitten.
- Deswegen wollte ich alles per "OnRaw" machen. Allerdings finde ich dort nirgendswo einen Nicknamen Parameter:
Delphi-Quellcode:
procedure TForm16.IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
AMessage: string);
begin
memo3.lines.add(AMessage);
end;
In AIn kann es nicht sein, in Boolean passt ja kein Nick rein. In AMessage ist es nicht, das ganze gibt mir folgendes aus:
Zitat:
PRIVMSG #CHANNEL :TEXT
obwohl ja eigentlich:
Zitat:
NICK PRIVMSG #CHANNEL :TEXT
die richtige Ausgabe wäre.
Bleibt nur noch ASender, dort vermute ich es aber auch nicht.
Wenn ich das ganze mit:
Delphi-Quellcode:
procedure TForm16.IdIRC1PrivateMessage(ASender: TIdContext; const ANicknameFrom,
AHost, ANicknameTo, AMessage: string);
begin
memo3.lines.add(ANicknameFrom+' >> '+AMessage);
end;
ausgebe, bekomme ich folgendes:
Zitat:
:NICK >> TEX
Toll, da ist der Nick drin, allerdings wird der Text abgeschnitten. Nun habe ich in früheren Projekten das ganze umgangen, indem ich bei OnRaw die Message in eine Variable gespeichert habe und bei OnPrivateMessage wieder zusammen mit dem Nick ausgegeben habe. Allerdings treten dabei Bugs auf, wenn wirklich Private Nachrichten gesendet werden, ausserdem ist das ganze recht umständlich.
Ich bitte um Hilfe,
FireOfSorrow