AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Irc mit Indy

Irc mit Indy

Ein Tutorial von MSSSSM · begonnen am 13. Mai 2008 · letzter Beitrag vom 2. Aug 2018
Antwort Antwort
Seite 3 von 4     123 4   
Benutzerbild von MSSSSM
MSSSSM
Registriert seit: 18. Apr 2008
Hallo, herzlich Willkommen!

In diesem Beitrag geht es um die Indy IRC-Komponente

Du kannst sie hier downloaden.
Mann, war ich doof, da sind doch noch die 9er!


Fangen wir an:

Zuerst, ziehe eine Iindy-IRC Komponente (IdIRC) auf das Formular

Dann sollte im Form.Create folgendes stehen:
Delphi-Quellcode:
IdIRC1.Nick:='MyNick'; // Legt den Nick fest

IdIRC1.Host:='irc.server.org'; // Gibt den Server an

IdIRC1.Port:=6667; //Irc Port
Damit legst du die Einstellungen für das Verbinden fest.

Nun, müssen wir uns nur noch verbinden:

Ziehe einen Button auf das Formular, und erstelle ein OnClick Ereignis
Caption sollte 'Verbinden' lauten

Folgender Code kommt hinein:
Delphi-Quellcode:
try //versuche
IdIRC1.Connect(); //zu verbinden
except //wenn Fehler
showMessage('Fehler beim Verbinden!'); //Meldung zeigen
end;
Du solltest einen Button erstellen, mit folgendem Code im Ereignis onClick:
IdIRC1.Join('#lima-city'); Nun kannst du schon Verbinden und einen Channel joinen.
Damit aber später aber auch Nachrichten angezeigt werden, solltest du noch eine Memo-Komponente auf das Formular ziehen.

Dann musst du noch zwei Ereignisse, OnReceive und OnMessage, hinzufügen

OnReceive (Bei mit hat es nur mit diesem zusätzlichen Ereignis geklappt):
Memo1.lines.add(ACommand); //zum Memo hinzufügen OnMessage:
Memo1.lines.add(AUser.Nick+': '+Content); // Nachricht in Form Nick: Nachricht zum Memo hinzufügen

Jetzt kannst du schon Nachrichten empfangen, fehlt nur noch das Schreiben:

Ziehe eine Edit- und eine Button-Komponente auf das Formular.

Die Button-Komponente bekommt die Caption "Senden".

Die OnClick-Ereignis Routine lautet:

Delphi-Quellcode:
IdIRC1.Say('#CHANNEL',Edit1.Text); //Nachricht zum Channel schicken
Memo1.Lines.Add(IdIRC1.Nick+': '+Edit1.Text); //Zum Memo hinzufügen, denn durch eigene Nachrichten wird das OnMessage-Ereignis nicht ausgelöst
Damit kannst du jetzt Nachrichten empfangen und senden.

Schreibe in das OnClose Ereignis des Formulars:

IdIRC1.Disconnect(); //Zum stoppen

Zusatzcode:
Erstelle eine Listbox.
Erstelle das OnNames Ereignis und schreibe dorthin:
Delphi-Quellcode:
var
 i: integer;
//begin
for i:=0 to AUsers.Count-1 do //führe sooft aus wie User im Channel sind
ListBox1.Items.Add(AUsers.Items[i].Nick); //Adde diese zu ListBox
//end
Nun hast du schon einen funktionierenden IRC-Client.

Tipp: Baue einen IRC-Bot, du brauchst nur den Content bei OnMessage überprüfen!
Angehängte Dateien
Dateityp: zip ircindy_179.zip (4,0 KB, 149x aufgerufen)
 
dangerduck
 
#21
  Alt 20. Dez 2008, 20:34
i dont understand this :
http://www.shrani.si/t/1z/zb/3t7a3Q2m/problem.jpg
  Mit Zitat antworten Zitat
dangerduck
 
#22
  Alt 20. Dez 2008, 21:52
  Mit Zitat antworten Zitat
dangerduck
 
#23
  Alt 20. Dez 2008, 23:09
anyone?
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#24
  Alt 20. Dez 2008, 23:39
It's Private Message. Double click on "OnPrivateMesssage" and you should get the text there
Nikolai Wyderka
  Mit Zitat antworten Zitat
dangerduck
 
#25
  Alt 21. Dez 2008, 14:58
Thx man
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

 
Delphi 2005 Personal
 
#26
  Alt 21. Dez 2008, 15:41
Ich bekommt wenn ich Verbinden will immer die Meldung "Zugriffsverletzung bei Adresse 00466A19 in Modul 'Project1.exe'. Lesen von Adresse 00000000' auf getreten." Das kommt immer an der Quelltetstelle:
Delphi-Quellcode:
procedure TIdReply.UpdateText;
begin
  FReplyTexts.UpdateText(Self);
end;
in der Unit IdReplay

Ich hab Indy 10 und Delphy 2k5 Personal

Weiss jemand woran das liegt?
Robin W.
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

 
Turbo Delphi für Win32
 
#27
  Alt 21. Dez 2008, 16:08

In Zeile 42 fehlt ein "if Assigned"






ohne Sourcecode können wir es nicht wissen. Aber das gehört hier nicht her, mach dafür ein eigenes Thema auf!
Nikolai Wyderka
  Mit Zitat antworten Zitat
dangerduck
 
#28
  Alt 21. Dez 2008, 16:31
Nothing work i will try with socekts now thx anyway
  Mit Zitat antworten Zitat
sh0xX
 
#29
  Alt 18. Apr 2009, 23:42
Hey
Habe da eine kleine frage:

Ich habe mich genau an das gehalten, was du in deinem tutorial geschrieben hast.

Wenn ich nun allerdings auf den Conenctbutton klicke, verbindet er zu dem server.

Einen channel allerdings will er nicht joinen.. Hier mein source:

Delphi-Quellcode:
procedure TForm1.btConnectClick(Sender: TObject);
begin
try
  IdIRC1.connect();
except
 showmessage('Verbidnung fehlgeschlagen');
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
IdIRC1.Nickname:='sh0xXb0t';
IdIRC1.Host:='irc.3dl.am';
IdIrc1.Port:=6667;
end;
Den join-button habe ich weggelassen da auf dem server autojoin an ist, habe ihn zu testzwecken mal hinzugefüht, bringt allerdings auch kein ergebnis..

Würde mich über hilfe freuen

Edit: Nutze Codeagear RAD studio 2009 (Demo-Version), soweit ichs erkennen kann nutzt diese Indy 12
Edit2: durch die andere indy-version steht bei mir statt "nick" auch "nickname" etc. und ich kann deinen source leider nicht benutzen.

mfg
sh0xX
  Mit Zitat antworten Zitat
ford42

 
Delphi 10.2 Tokyo Professional
 
#30
  Alt 2. Aug 2018, 08:25
Hey,

Ich komme gerade einfach nicht weiter und habe dazu auch schon einen Thread eröffnet... https://www.delphipraxis.net/197331-...ml#post1409330

LG ford
  Mit Zitat antworten Zitat
Themen-Optionen Tutorial durchsuchen
Tutorial durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf