Einzelnen Beitrag anzeigen

FireOfSorrow

Registriert seit: 21. Jun 2009
6 Beiträge
 
Delphi 2007 Professional
 
#1

INDY 10 IRC -> Raw Nickname?

  Alt 21. Jun 2009, 09:57
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
  Mit Zitat antworten Zitat