Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdIRC Fehler mit der Userliste (https://www.delphipraxis.net/36705-tidirc-fehler-mit-der-userliste.html)

Koma-Code 23. Dez 2004 20:53


TIdIRC Fehler mit der Userliste
 
Hi,

ich habe ein paar Fragen zu TIdIRC.

Ich schaffe es, dass es sich zum Server connected, jedoch kann ich nicht auf die Channelliste zugreifen
(ist immer leer) und ich bin der einzige User auf dem Server (obwohl im Begrüßungstext 479 steht).

Zum connecten verwende ich:

Delphi-Quellcode:
Caption := Settings.Name;
 IdIRC1.Username := Settings.Username;
 IDIRC1.RealName := Settings.Realname;
 IDIRC1.Nick := Settings.Nickname;
 IDIRC1.Password := Settings.PWD;
 IDIRC1.Port := Settings.Port;
 IDIRC1.Host := Settings.Server;

 IDIRC1.Connect (4000);
 First := false;
und der Zugriff auf die Userlist:

Delphi-Quellcode:
For e := 0 To IDIRC1.Users.Count-1 Do
 ComboBox1.Items.Add(IDIRC1.Users.Items[e].Nick)
Was mach ich falsch?

Ach und beim Beenden des Programms kommt auch immer ein Fehler ...

Koma-Code 23. Dez 2004 22:33

Re: TIdIRC Fehler mit der Userliste
 
So, die User und Channelliste habe ich :)

War etwas zu ungeduldig :)

Jetzt ist nur noch der Fehler beim Beenden:

Delphi-Quellcode:
 Timer1.Enabled:= false;
 If IdIRC1.Connected then
  begin
   IdIRC1.Disconnect(true);
  end;
 IdIRC1.Free;
 Free;

supermuckl 23. Dez 2004 22:34

Re: TIdIRC Fehler mit der Userliste
 
das letzte free ?!

Koma-Code 23. Dez 2004 22:36

Re: TIdIRC Fehler mit der Userliste
 
Das stimmt schon, im letzten Free wird der Fehler erzeugt,
aber wenn ich das nicht verwende wird das Fenster nicht richtig geschlossen (mdi)

supermuckl 23. Dez 2004 22:43

Re: TIdIRC Fehler mit der Userliste
 
fenster.close oder fenster.visible := false ?!

Koma-Code 23. Dez 2004 22:50

Re: TIdIRC Fehler mit der Userliste
 
der tritt in jedem Fall auf. Verwende jetzt nur folgendes zum Schließen

Timer1.Enabled := false;
Action := caFree;

supermuckl 23. Dez 2004 22:51

Re: TIdIRC Fehler mit der Userliste
 
na dann :)
wo wird denn der code ausgeführt ?

Koma-Code 23. Dez 2004 22:55

Re: TIdIRC Fehler mit der Userliste
 
in der onClose routine vom mdi-fenster

supermuckl 23. Dez 2004 22:59

Re: TIdIRC Fehler mit der Userliste
 
hmm
wenn du dort das ding free'st will delphi aber noch das ding closen.. da ja die OnClose vor dem closen kommt und du da aber schon das fenster vernichtest, kann delphi nimmer closen -> exception weil zugriff auf nicht vorhandenes objekt

Koma-Code 23. Dez 2004 23:03

Re: TIdIRC Fehler mit der Userliste
 
Ich verwende halt diesen Quelltext
http://www.delphipraxis.net/internal...di+schlie%DFen

Er gibt ja nicht eine exception aus, sondern idIRC beschwert sichm dass es nicht mehr verbunden ist ...

supermuckl 23. Dez 2004 23:09

Re: TIdIRC Fehler mit der Userliste
 
Zitat:

Er gibt ja nicht eine exception aus, sondern idIRC beschwert sichm dass es nicht mehr verbunden ist ...
und wieso sagste das nicht gleich ?

debug mal und schau wo der fehler genau kommt und was genau geschrieben wird und wo der idirc noch was machen will, nach dem disconnecten

Koma-Code 23. Dez 2004 23:21

Re: TIdIRC Fehler mit der Userliste
 
Habe ich probiert, daraufhin stürzt immer mein PC komplett ab
(Jetzt gerade wieder)

Ich denke das Indy noch nach dem Beenden noch senden will
und deshalb einen Fehler produziert.

supermuckl 23. Dez 2004 23:24

Re: TIdIRC Fehler mit der Userliste
 
ich glaub du hast da den selben fehler wie ich immer hatte..

und den hab ich nur, wenn ich einen thread debugge und delphi an dem breakpoint in einem thread stoppt..

dann friert mir die GUI ein (windows komplett) und der rest von windows rennt normal weiter
nach 10-20 minuten geht dann alles wieder

das ist ein ziemlich komischer fehler.. den ich aber in vergangener zeit oft hervorgerufen hab, als ich netzwerk programme gecoded hab.. client und server zeugs

und nur wenn ich debuggt habe.. also breakpoints benutzt hab

Koma-Code 23. Dez 2004 23:31

Re: TIdIRC Fehler mit der Userliste
 
Du bist den Fehler nicht zufällig losgeworden?

supermuckl 23. Dez 2004 23:34

Re: TIdIRC Fehler mit der Userliste
 
ähm ich hab es einfach vermieden, in thread code breakpoints zu setzen ^^

mehr hab ich nicht testen können, da es echt oft geknallt hat, und mir die gui eingefrohren ist.

überprüf beim nächsten mal, ob deine applikationen weiter laufen im hintergrund

und warte mal so 10 minuten .. dann müsste es wieder funzen ( die gui hat sehr sehr sehr langsam aufgebaut )
alsob ich 1 mhz hätte

//nachtrag
das ist mir auf winXP und win2k3 und win2000 so schon passiert.. mit delphi 7 und 6

und auch verschiedenen projekten.. aber alle mit indy (wobei es nicht damit zusammen hängen muss wenn es nur mit threads zu tun hat wie ich vermute)

Koma-Code 24. Dez 2004 12:28

Re: TIdIRC Fehler mit der Userliste
 
Bis auf den Fehler habe ich alles in Grif gekriegt :)

Ich probiere mal eine andere Indy-Version aus, vielleicht haben die dort den Bug behoben ...

Übrigens hat es wirklich so funktioniert wie du gesagt hast, nach ca. 10 Minuten hat der PC wieder reagiert.

Koma-Code 24. Dez 2004 14:01

Re: TIdIRC Fehler mit der Userliste
 
Klappt jetzt übrigens auch, für alle anderen die ähnliche Probleme haben:

Delphi-Quellcode:
procedure TForm3.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
 if idIRC1.Connected then
  begin
   if ExitStr = '' then
    ExitStr := InputBox ('Reason', 'Reason:', '');

   CanClose := false;
   IDIRC1.Quit(ExitStr);
   Timer3.Enabled := true;
  end;
end;

procedure TForm3.Timer3Timer(Sender: TObject);
begin
 Timer3.Enabled := false;
 Close;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:15 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