![]() |
IRC-Nachrichten
Hi!
Ich arbeite zurzeit an einem kleinen irc client für mich! Er connectet alles wunderbar aber wie kann ich die nachrichten empfangen per memo und wie kann ich sie schicken mit einem Edit? Ich habe INDY 10 cu coldice111 |
Re: IRC-Nachrichten
Wäre es dir auch recht wenn ich es dir über Client socket zeigen würde??
Weil mit Indy arbeite ich grundsätzlich nicht, sind mir zu überladen. |
Re: IRC-Nachrichten
muss ich das dann alles nochmal neu schreiben oder kann ich nur für messages clientsocket nehmen und idirc connect nehmen ?
|
Re: IRC-Nachrichten
Zitat:
Aber wäre dir das eine Hilfe??
Delphi-Quellcode:
procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;
AChannel: TIdIRCChannel; Content: String); begin Memo1.lines.Add(content); end; |
Re: IRC-Nachrichten
onmessage hat indy 10 leider nicht :(
gibt es noch eine Möglichkeit nachrichten zu empfangen/senden? |
Re: IRC-Nachrichten
Zitat:
|
Re: IRC-Nachrichten
schade :(
|
Re: IRC-Nachrichten
Zitat:
|
Re: IRC-Nachrichten
Wenn du es mir erklären würdest wie es alles mit clientsocket geht dann würde ich es machen :D
|
Re: IRC-Nachrichten
Zitat:
//Edit werde dir mal schnell was zusammenclicken ;) und kommentieren. |
Re: IRC-Nachrichten
ok danke :D
|
Re: IRC-Nachrichten
Liste der Anhänge anzeigen (Anzahl: 1)
So geschafft... :-D
Delphi-Quellcode:
Beispiel liegt bei mit funktionierendem Clienten. Wenn auch primitiv. :mrgreen:var Form1: TForm1; Anmeldung:string; NachrichtvonServer:string; Nachrichtanserver:string; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin // Das ist der Anmeldestring damit der IRCserver weiß wer du bist // sonst schmeißt er uns wieder raus Anmeldung:='USER delphipraxis123 "" "localhost" :delphipraxis123'+char(13)+'NICK delphipraxis'+char(13); { Das Char(13) ist der Druck auf die Entertaste das must du mitsenden. Das verlangt das IRC-Protokoll. Ansonsten versteht dich der IRC server nicht. } edit1.Clear; memo1.Clear; end; // Verbindung aufbauen procedure TForm1.Button1Click(Sender: TObject); begin if clientsocket1.Active=false then begin clientsocket1.Host:='ircchat.freenet.de'; //Chatserver clientsocket1.Port:=6667; //Port clientsocket1.Active := true; //Verbindung öffnen end; end; //sende Anmeldestring wenn Verbindung aufgebaut, an IRC server senden. procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); begin // den Anmeldestring senden clientsocket1.Socket.SendText(anmeldung); end; //Nachricht empfangen procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); begin //Nachricht aus dem Socket lesen ,also das was vom Server kommt Nachrichtvonserver:= clientsocket1.Socket.ReceiveText; Memo1.Lines.Add(Nachrichtvonserver); end; // Text verschicken procedure TForm1.Button2Click(Sender: TObject); begin // Text in die Variable Entertaste simulieren ;) Nachrichtanserver:=edit1.Text+char(13); edit1.Clear; // eigene Nachricht anzeigen Memo1.Lines.Add(Nachrichtanserver); // Text verschicken if clientsocket1.Active=true then begin clientsocket1.Socket.SendText(Nachrichtanserver) ; end; end; // Verbindung trennen procedure TForm1.Button3Click(Sender: TObject); begin clientsocket1.Active:=false; end; end. Wenn du fragen hast... na du weißt ja :) |
Re: IRC-Nachrichten
Hi!
Funktioniert alles nur noch eine frage wie kann mann es auch machen das mann NICHT Privmsg... eingeben muss sondern einfach nur "Hallo"??? cu coldice111 PS DANKKKEEEEEEEEEEEEEEEEEEEEEE |
Re: IRC-Nachrichten
Zitat:
Mal als kleine Denkhilfe :mrgreen: Du hast doch sicherlich schon einige IRC Clients gesehen, und hast festgestellt das du zb. /join #channel oder /nick haste nicht gesehen eintippen mustest, also bei Befehlen immer ein '/' davor stellen must. Daraus folgt, du kannst immer ein Privmsg.... vorsetzen ausser es würde ein bestimmtes Zeichen auftauchen zb. '/'. im Editfeld, somit wüstest du das du nicht Privmsg... setzen darfst. :roll: Mfg Net7 |
Re: IRC-Nachrichten
Kapier ich nicht also muss ich immer PRIVMSG vorsetzen ;(?
|
Re: IRC-Nachrichten
Zitat:
Naja, nur mal als primitives Beispiel
Delphi-Quellcode:
// Text verschicken procedure TForm1.Button2Click(Sender: TObject); begin //wenn an der ersten stelle des Strings '/' auftaucht // zb. bei Befehlseingabe joinen usw. nun musst du aber ein '/' vorsetzen // also /join ... bei Befehlen. if edit1.Text[1]='/' then begin Nachrichtanserver:=edit1.Text+char(13); Delete(Nachrichtanserver, 1, 1); // löscht das '/' edit1.Clear; end else // wenn nicht, dann PRIVMSG vorsetzen begin Nachrichtanserver:='PRIVMSG #freakzroom :'+edit1.Text+char(13); edit1.Clear; end; // eigene Nachricht anzeigen Memo1.Lines.Add(Nachrichtanserver); // Text verschicken if clientsocket1.Active=true then begin clientsocket1.Socket.SendText(Nachrichtanserver) ; end; end; Natürlich kannst du das auch in einer procedure packen und alles mögliche noch abfragen. Es wäre auch nicht schlecht wenn der Raum den du gewählt hast, auch automatisch gesetzt wird. |
Re: IRC-Nachrichten
So, um diese Frage zu klaeren:
Messages an einen Channel sind ja auch nur PivMsgs an den Channel... Und, TADAAAAAA, bei Indy10 gibt es ein Event OnPrivateMessage! Da kriegt man dann auch die Channelmessages... Hab auch ne Weile gebraucht bis ich das hatte... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 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