Ich sehe zurzeit den Wald vor Lauter Bäumen nicht mehr ich kriege immer ein "Identifier not found" error bei allen befehlen also username,nickname,... . Weiß jemand zufällig wo der fehlerliegt. Indy ist unter den abhängigkeiten vorhanden also kanns daran eig nicht liegen
program Project1;
{$mode objfpc}{$H+}
uses {$IFDEF UNIX} {$IFDEF UseCThreads}
cthreads, {$ENDIF} {$ENDIF}
Classes,
SysUtils,
IdIRC;
{ you can add units after this }
var
a: string;
begin
ReadLn(a);
if a = 'Connect' then
begin
begin
IdIRC.username := 'Bot';
IdIRC.nickname := 'Bot';
IdIRC.Host := '127.0.0.1';
IdIRC.Port := 6667;
try
IdIRC.Connect();
IdIRC.Join('#test');
except
ShowMessage('Fehler beim Verbinden!');
end;
end;
end;
end.
Zuletzt geändert von Dragon am Sa 23. Jan 2016, 22:05, insgesamt 1-mal geändert.
Du verwendest den Unit Namen, als wäre er eine Instanz einer Klasse.
Denk nochmal nach, da fehlt irgendwo etwas wie MyIdIRC=TIdIRC.Create...
(obwohl ich diese Unit nicht kenne).
program Project1;
{$mode objfpc}{$H+}
uses {$IFDEF UNIX} {$IFDEF UseCThreads}
cthreads, {$ENDIF} {$ENDIF}
Classes,
SysUtils,
IdIRC;
{ you can add units after this }
var
a: string;
MyIdIRC: TIdIRC; // Vllt. heißt es auch anders, musst du mal schauen
begin
ReadLn(a);
if a = 'Connect' then
begin
begin
MyIdIRC := TIdIRC.Create // Kann sein dass da noch ein Parameter hin muss, aber du musst erst das Objekt konstruieren
MyIdIRC.username := 'Bot';
MyIdIRC.nickname := 'Bot';
MyIdIRC.Host := '127.0.0.1';
MyIdIRC.Port := 6667;
try
MyIdIRC.Connect();
MyIdIRC.Join('#test');
except
ShowMessage('Fehler beim Verbinden!');
end;
FreeAndNil(MyIdIRC); // Objekt wieder freigeben
end;
end;
end.
Zuletzt geändert von compmgmt am Sa 23. Jan 2016, 21:01, insgesamt 2-mal geändert.
Dragon hat geschrieben:DA gibs je eben nichts zum ausführen weil bei "ShowMessage" der kompiler mosert
ich kommentiere es mal es und teste es dann
Was ist denn die Fehlermeldung. "Access Violation" oder "Blabla.exe hat eine Exception vom Typ..."?
Du darfst das Programm nicht mit der F9-Taste starten, sondern musst es wie der Endbenutzer über den Explorer bzw. Dateimanager ausführen. Sonst meckert natürlich der Debugger.
Zuletzt geändert von compmgmt am Sa 23. Jan 2016, 21:12, insgesamt 1-mal geändert.
so hab das show mesage mal geg ein writeln getauscht.
Er kompiliert es auch anstandslos, aber wenn ich dann provoziere das er die Meldung ausgeben müsste, gibt er die Meldung nicht aus,
sondern beendet das programm direkt ohne die meldung vorher auszugeben.
...
try
MyIdIRC := TIdIRC.Create // Kann sein dass da noch ein Parameter hin muss, aber du musst erst das Objekt konstruieren
MyIdIRC.username := 'Bot';
MyIdIRC.nickname := 'Bot';
MyIdIRC.Host := '127.0.0.1';
MyIdIRC.Port := 6667;
try
MyIdIRC.Connect();
MyIdIRC.Join('#test');
except
WriteLn('Fehler beim Verbinden!');
end;
finally
FreeAndNil(MyIdIRC);
end;
...