Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IRC-Nachrichten (https://www.delphipraxis.net/55425-irc-nachrichten.html)

Coldice111 20. Okt 2005 18:25

Re: IRC-Nachrichten
 
ok danke :D

Net7 20. Okt 2005 19:12

Re: IRC-Nachrichten
 
Liste der Anhänge anzeigen (Anzahl: 1)
So geschafft... :-D

Delphi-Quellcode:

 
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.
Beispiel liegt bei mit funktionierendem Clienten. Wenn auch primitiv. :mrgreen:

Wenn du fragen hast... na du weißt ja :)

Coldice111 20. Okt 2005 19:50

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

Net7 20. Okt 2005 20:04

Re: IRC-Nachrichten
 
Zitat:

Zitat von Coldice111
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

Ohh das ist einfach.

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

Coldice111 21. Okt 2005 09:31

Re: IRC-Nachrichten
 
Kapier ich nicht also muss ich immer PRIVMSG vorsetzen ;(?

Net7 21. Okt 2005 13:57

Re: IRC-Nachrichten
 
Zitat:

Zitat von Coldice111
Kapier ich nicht also muss ich immer PRIVMSG vorsetzen ;(?


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.

imag 18. Jun 2008 15:00

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 00:03 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz