AW: IRC-Bot als Anfänger?
Delphi-Quellcode:
Wenn ich auf Verbinden klicke muss ich erst paar Sec warten und dann kommt
unit UnitIRCBot;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdCmdTCPClient, IdIRC, IdContext, Vcl.StdCtrls; type TForm1 = class(TForm) IdIRC1: TIdIRC; Bt_Connect: TButton; Bt_JoinChannel: TButton; Memo1: TMemo; Edit1: TEdit; Bt_Send: TButton; procedure FormCreate(Sender: TObject); procedure Bt_ConnectClick(Sender: TObject); procedure Bt_JoinChannelClick(Sender: TObject); procedure Bt_SendClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure IdIRC1PrivateMessage(ASender: TIdContext; const ANickname, AHost, ATarget, AMessage: string); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Bt_ConnectClick(Sender: TObject); begin try //versuche IdIRC1.Connect(); //zu verbinden except //wenn Fehler showMessage('Fehler beim Verbinden!'); //Meldung zeigen end; end; procedure TForm1.Bt_JoinChannelClick(Sender: TObject); begin IdIRC1.Join('#botty-channel'); end; procedure TForm1.Bt_SendClick(Sender: TObject); begin IdIRC1.Say('#botty-channel',Edit1.Text); //Nachricht zum Channel schicken Memo1.Lines.Add(IdIRC1.Nickname+': '+Edit1.Text); //Zum Memo hinzufügen, denn durch eigene Nachrichten wird das OnMessage-Ereignis nicht ausgelöst end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin IdIRC1.Disconnect(); end; procedure TForm1.FormCreate(Sender: TObject); begin IdIRC1.Nickname:='botty'; // Legt den Nick fest IdIRC1.Host:='chat.freenode.net'; // Gibt den Server an IdIRC1.Port:=6667; //Irc Port end; procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANickname, AHost, ATarget, AMessage: string); begin Memo1.lines.add(ANickname+': '+AMessage); end; end.
Code:
Fehler beim Verbinden!
Weiß jemand an was das liegen kann? |
AW: IRC-Bot als Anfänger?
Moin,
Du hängst an dieser Stelle beim Thema "Exceptions" fest und bei der Behandlung selbiger. Da rate ich Dir, mal die Hilfe zu konsultieren oder einschlägige Tutorials zu lesen. Diese Arbeit wird keinesfalls umsonst sein, denn Exceptions werden Dir in (so gut wie) jeder Programmiersprache begegnen. |
AW: IRC-Bot als Anfänger?
Danke, ich weiß glaub schon was die Excption tut, aber ich weiß nicht warum die Verbindung nicht klappt.
Oder meinst du, dass ich was einbauen kann, das mir aufzeigt warum er nicht verbinden kann? |
AW: IRC-Bot als Anfänger?
Zitat:
Wenn du das so änderst:
Delphi-Quellcode:
bekommst du schon deutlich mehr Informationen.
procedure TForm1.Bt_ConnectClick(Sender: TObject);
begin try //versuche IdIRC1.Connect(); //zu verbinden except //wenn Fehler on E: Exception do showMessage('Fehler: ' + E.Message); //Meldung zeigen end; end; |
AW: IRC-Bot als Anfänger?
(wurd schon gesagt)
|
AW: IRC-Bot als Anfänger?
Danke!
Habe den Proxyserver der hier vorliegt vergessen... |
AW: IRC-Bot als Anfänger?
Hmh, in duckduckgo finde ich nicht wie man da einen Proxy einstellen kann. Geht das überhaupt?
|
AW: IRC-Bot als Anfänger?
Zitat:
|
AW: IRC-Bot als Anfänger?
Hmh, irgendwie finde ich dazu nichts, nicht einmal im docwiki :o
EDIT: Habe es nun im IDE gefunden, aber ich bekomme es nicht zum laufen... Mein Code sieht nun so aus, es geht aber immer noch nicht
Delphi-Quellcode:
unit UnitIRCBot;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdCmdTCPClient, IdIRC, IdContext, Vcl.StdCtrls, IdCustomTransparentProxy, IdConnectThroughHttpProxy; type TForm1 = class(TForm) IdIRC1: TIdIRC; Bt_Connect: TButton; Bt_JoinChannel: TButton; Memo1: TMemo; Edit1: TEdit; Bt_Send: TButton; IdConnectThroughHttpProxy1: TIdConnectThroughHttpProxy; procedure FormCreate(Sender: TObject); procedure Bt_ConnectClick(Sender: TObject); procedure Bt_JoinChannelClick(Sender: TObject); procedure Bt_SendClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure IdIRC1PrivateMessage(ASender: TIdContext; const ANickname, AHost, ATarget, AMessage: string); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Bt_ConnectClick(Sender: TObject); begin try //versuche IdIRC1.Connect(); //zu verbinden except //wenn Fehler on E: Exception do showMessage('Fehler: ' + E.Message); //Meldung zeigen end; end; procedure TForm1.Bt_JoinChannelClick(Sender: TObject); begin IdIRC1.Join('#botty-channel'); end; procedure TForm1.Bt_SendClick(Sender: TObject); begin IdIRC1.Say('#botty-channel',Edit1.Text); //Nachricht zum Channel schicken Memo1.Lines.Add(IdIRC1.Nickname+': '+Edit1.Text); //Zum Memo hinzufügen, denn durch eigene Nachrichten wird das OnMessage-Ereignis nicht ausgelöst end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin IdIRC1.Disconnect(); end; procedure TForm1.FormCreate(Sender: TObject); begin IdConnectThroughHttpProxy1.Enabled := True; IdConnectThroughHttpProxy1.Host := 'Hongkong'; IdConnectThroughHttpProxy1.Port := 80; IdIRC1.Nickname:='botty'; // Legt den Nick fest IdIRC1.Host:='chat.freenode.net'; // Gibt den Server an IdIRC1.Port:=6667; //Irc Port end; procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANickname, AHost, ATarget, AMessage: string); begin Memo1.lines.add(ANickname+': '+AMessage); end; end. |
AW: IRC-Bot als Anfänger?
So der Pro bin ich leider nicht, aber soweit ich mich erinnern kann muss man für Proxy Nutzung IdIOHandler einrichten und miteinander verbinden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 Uhr. |
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