Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Fehlermeldung... (https://www.delphipraxis.net/13039-fehlermeldung.html)

Nightfighter 9. Dez 2003 20:41


Fehlermeldung...
 
Also folgende Fehlermeldung tritt auf: Exception der Klasse EAccessViolation ist aufgetreten. Zugriffsverletzung bei Adresse 0041.... in Modul Project1.exe . Schreiben von Adresse 000005F38.

und hab bis jetzt den fehler nach stundelangem suchen nicht gefunden.... könnt ihr mir ca. sagen was da falsch lief?
thx im voraus!!

cu NIghtFighter

Luckie 9. Dez 2003 20:46

Re: Fehlermeldung...
 
Greifst du auf ein O=bjekt zu welches nicht mehr existiert? Läuft eine Schleife über die array-Grenzen hinaus?

Zeig mal den Code, wo das apssiert, sonst können wir hier nur rumraten.

Nightfighter 10. Dez 2003 18:19

Re: Fehlermeldung...
 
hmm sorry das ich nicht mehr geschrieben hab. Also ich hab nen Server und der soll anfragen annehmen (Indy Komponente). Beim ersten Connect des Clienten ist alles ok. wenn man dann aber disconnectet und nachher wieder connectet gibts genau diesen fehler :(

nailor 10. Dez 2003 18:36

Re: Fehlermeldung...
 
das klingt nach dem, was Luckie schon gesagt hat. Zerstörst du vielleicht beim disconnect ein Object, das bei Erstellen der Form erstellt wird, aber nicht beim connecten?
Oder hast du irgend einen Zähler, der verwendet wird, und beim zweiten Durchlauf irgend ein array überschreitet?

Stanlay Hanks 10. Dez 2003 18:38

Re: Fehlermeldung...
 
Wie Luckie schon sagte: Ein bisschen Code wäre nicht schlecht ... :wink:

Man liest sich, Stanlay :hi:

Nightfighter 10. Dez 2003 18:59

Re: Fehlermeldung...
 
okok war einfach zu faul sorrrry! ;)
Delphi-Quellcode:
procedure TServer.tcpServerConnect(AThread: TIdPeerThread);
var Client:Tclient;
begin
Client.IP := Athread.Connection.Binding.PeerIP;
Client.Name := 'Connected';
Client.ListLink := Form1.Listbox1.items.Count;
Client.Thread := Athread;
Athread.Data := Client;
Clientsliste.Add(Client);
listbox.Items.Add('asdf');
Athread.Connection.WriteLn(Welcmsg);
end;

procedure TServer.tcpServerDisconnect(AThread: TIdPeerThread);
var Client:TClient;
begin
  Client := @AThread.Data;
  Memofeld.Lines.Add(Client.Name + ' hat uns verlassen');
  Clientsliste.Delete(Client.ListLink);
  Listbox.Items.Delete(Listbox.Items.IndexOf(Client.Name));
  Client.Free;
  AThread.Data := nil;
end;
so das wärs... hoffentlich kann mir jemand helfen :)

Kamil 10. Dez 2003 19:12

Re: Fehlermeldung...
 
wie ist TClient definiert? Müsste nicht Speicher reserviert bzw das Objekt erstellt werden?

SirThornberry 10. Dez 2003 19:42

Re: Fehlermeldung...
 
du kannst nicht einfach
client.free
machen.
schließlich gibst du damit einen teil des speichers frei der bei TidTCPServer.Create (oder wie das object auch immer heißt) angefordert wird. Nach dem dein onDisconnect ausgeführt ist arbeitet die klasse ja eigentlich weiter, nur geht das nicht korrekt weil du schon einen teil des speichers freigegeben hast

Kamil 10. Dez 2003 19:47

Re: Fehlermeldung...
 
@SirThornberry: Client ist doch ne lokale Variable. Sie muss in tcpServerConnect mit Client:=TClient.Create erstellt werden, damit sie in tcpServerDisconnect freigegeben werden kann.

Nightfighter 10. Dez 2003 20:35

Re: Fehlermeldung...
 
so allso um noch etwas konkreter zu werden...
ich kann zwar ne stop marke beim connect hinsetzen, aber er gibt mir schon vorher nen fehler aus, und kapier wirklich nicht warum :(

Nightfighter 10. Dez 2003 20:54

Re: Fehlermeldung...
 
habs gerade selber rausgefunden....
@kamil du hast recht gehabt musste zuerst erstellen....
aber warum der nicht vorher gemekkert hat ist mir ein rätsel.. naja
hab jetzt nur noch ein fehler und zwar: Format '%p' ungültig oder nicht kompatibel mit Argument. Ist irgendwas mit den Poitnern... weiss nur noch net was

Luckie 10. Dez 2003 20:58

Re: Fehlermeldung...
 
Neue Frage, neuer Thread bitte.

Nightfighter 10. Dez 2003 21:49

Re: Fehlermeldung...
 
ok habs wieder selber rausgefunden.. muss es nur ein bisschen genauer anschauen, und nicht sofort aufgeben :)
THX an alle die mir geholfen haben ;)

cu NightFighter


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 Uhr.

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