![]() |
(IdIRC) Nachrichten des aktuellen Channels erhalten ?
Hi,
Mal wieder IRC: Ich habe es jetzt endlich geschaft in einen IRC chat zu connecten und so... hat ja lange nicht hingehauen :? Etwas schreiben kann ich schon und das erscheint dann auch im chat, allerdings kann ich nicht lesen was die anderen schreiben, also es erscheint nur am anfang die übliche IRC-Connection text und danach kommt nix mehr, also schreibe ich so zu sagen blind :freak: Bei welchem Ereigniss muss ich das machen, dass er mir den text zeigt ? Habe es so gemacht:
Delphi-Quellcode:
Aber da kommt wie gesagt nur der IRC-Connection text. Wie muss ichs richtig machen ?
procedure TForm1.IdIRC1Receive(Sender: TObject; ACommand: String);
begin richedit1.Lines.Add(Acommand); end; Habe schon tuts angeschaut, aber entweder ist da zu wenig drin oder es is einfach zu kompliziert zu kapieren. Wär cool wenns sich auch jemand der schon mal so nen IRC Clienten gemacht hat, mal per MSN melden würde, also als ansprechpartner oda sowas :nerd: thx mfg |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
OnMessage... aber darüber gibts auch massig
![]() |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Zitat:
Aber thx wegen dem OnMessage. Edit: Wie bekomm ich die nachrichten ? :oops:
Delphi-Quellcode:
Ich habe erst mit Replies probiert, aber da kommt bei keinem was raus :gruebel:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel; Content: String); begin RichEdit1.Lines.Add(IdIRC1.?); end; |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Hi,
wie wär's mal mit dem übergebenen Parameter Content? (engl: Inhalt) cu |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
content gibts aber nicht
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Zitat:
Delphi-Quellcode:
Im Prozedur-Kopf steht es doch. Diese Variable enthält den Text, einfach in der Prozedur verwenden.
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel; Content: String); |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Oh :oops: OK jetzt gehts... Aber mal ein anderes Problem: Wenn ich jetzt eine Nachricht bekomme, erscheint dass in meinem Chat:
Zitat:
Delphi-Quellcode:
Also die 2 und 4 zeile die ich bekomme is ok, aber wie kann ich verhindern, dass das :UserImChat!~wwwUser@GE-24093.ipt.aol.com PRIVMSG #test :test nicht kommt. Wenn ich was schreibe kommt in meinem Chat vor dem Text auch anstatt mein name nur so unwichtiges zeug und am anfang kommt im Java IRC so ein infotext, der in meinem chat ein totales chaos ist und im Java IRC garnicht erscheint bzw. nur bestimmte sachen und als richtiger text ohne so wirrwar:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel; Content: String); begin RichEdit1.Lines.Add('[' + AUser.Nick + ']:' + Content); end; Zitat:
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Kann es sein, dass du im OnReceive das hier irgendwo verarbeitest?
Delphi-Quellcode:
procedure TForm1.IdIRC1Receive(Sender: TObject; ACommand: String);
begin RichEdit1.Lines.Add(ACommand); end; |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Ja das ist vollkommen richtig:
Delphi-Quellcode:
procedure TForm1.IdIRC1Receive(Sender: TObject; ACommand: String);
begin richedit1.Lines.Add(Acommand); end; |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Dann schmeiß das raus, das zeigt dir nämlich die Server-Meldungen an. ;)
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Na dann geht aber nix mehr :cry:
Ich geb dir mal den ganzen code, sonst wird das glaube ich nix... Ahja das mit der userliste geht auch net :D...
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin IdIRC1.Nick := 'Testuser'; IdIRC1.Host := 'irc.*****.com'; IdIRC1.Port := 6667; end; procedure TForm1.Button1Click(Sender: TObject); begin IdIRC1.Connect(); end; procedure TForm1.Button2Click(Sender: TObject); begin IdIRC1.Join('#test'); end; procedure TForm1.Button3Click(Sender: TObject); begin IdIRC1.Say('#test',Edit1.Text); end; procedure TForm1.Button4Click(Sender: TObject); begin IdIRC1.Quit('Haut mal ab'); end; procedure TForm1.Button5Click(Sender: TObject); begin idirc1.Disconnect; end; procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser; AChannel: TIdIRCChannel; Content: String); begin RichEdit1.Lines.Add('[' + AUser.Nick + ']: ' + Content); end; procedure TForm1.IdIRC1Send(Sender: TObject; ACommand: String); begin RichEdit1.Lines.Add(ACommand); end; procedure TForm1.IdIRC1Join(Sender: TObject; AUser: TIdIRCUser; AChannel: TIdIRCChannel); var i:integer; begin for i := 0 to IdIRC1.Users.Count do begin ListBox1.Items.Add(AUser.Nick); end; end; procedure TForm1.IdIRC1Receive(Sender: TObject; ACommand: String); begin RichEdit1.Lines.Add(Acommand) end; |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Wenn du diese Zeile entfernst
Delphi-Quellcode:
und neu kompilierst, sollte dies ganze Proedur entfernt werden. Sie hat keinen Einfluss auf das eigentliche chatten.
RichEdit1.Lines.Add(Acommand)
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Zitat:
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Ok funktioniert einwandfrei, bloß hab ich noch fragen:
1. Wie zeige ich jetzt den willkommenstext des server ? 2. Wie mache ich das mit den Formatierungen des Chats, also wenn ich nen text im chat farbig oder fett mache, dass dies auch so in meinem Chat erscheint ? Müsste ja gehen, habe ja ne richedit. 3. Wie mache ich die Userliste ? Mein versuch steht ja da oben im code. |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Delphi-Quellcode:
Ich kenne die IdIRC Kompo zwar nicht auswendig, aber ich vermute, es muss mehr in dem Stil sein:
procedure TForm1.IdIRC1Join(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel); var i:integer; begin for i := 0 to IdIRC1.Users.Count do begin ListBox1.Items.Add(AUser.Nick); end; end;
Delphi-Quellcode:
Andernfalls addest du ja ständig den selben Namen
...
ListBox1.Items.Add(IdIRC1.Users[i].Nick); ... air |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Ne, geht net :(
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Zitat:
Was geht nicht? Fehlermeldung? |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Mal ganz davon ab, dass Spider recht hat, solltest du jedoch für jede Frage einen neuen Thread eröffnen. ;)
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Eine seite davor steht was ich will :zwinker: und was nicht geht is das:
Zitat:
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Um genau zu sein ist es:
Delphi-Quellcode:
ListBox1.Items.Add(IdIRC1.Users.Items[i].Nick);
MfG |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Also habe es jetzt so gemacht. Jetzt is es aber so, dass nur die liste geupdatet wird sobald ein aderere in den chat kommt obwohl ich diese schleife bei OnJoin und OnJoined gemacht habe... ich weiß echt nicht mehr weiter und im Java IRC werden in der userliste vor manchen namen @ oder + gezeigt, in meiner userliste nicht.
@Malo: Aber dann gibts hier nur noch IRC threads... warum kann man nicht so einen sammelthread machen !? |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
@ und + :
das @ steht auf jeden fall für die op-rechte, das kannst du sicher mit "nick.HasOpRights" oder irgendwas ähnlichem abfragen. das + wird ähnlich sein. |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Op und Voice geht hiermit:
Delphi-Quellcode:
bzw. mit IsVoice.
IdIRC.IsOp('nickname')
Das Voice erlaubt dir übrgingens in moderated channels (+m) etwas sagen zu können ;) Immer wieder gern, Spoon |
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
OK thx. Leider besteht immer noch das problem mit der userliste (2 beiträge vorher)
|
Re: (IdIRC) Nachrichten des aktuellen Channels erhalten ?
Dann beschreib doch bitte mal genau das Problem:
Wird keiner hinzugefügt? Ist die komplette Liste leer? Stehen nur manche drin? Oder ist es was total anderes? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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