Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi For-Schleife verursacht Zugriffsverletzung (https://www.delphipraxis.net/21474-schleife-verursacht-zugriffsverletzung.html)

faux 3. Mai 2004 15:59


For-Schleife verursacht Zugriffsverletzung
 
Hallo!

Ich habe folgenden code:

Delphi-Quellcode:
var
  Form31: TForm31;
  NIM: TNotifyIconData;
  OpenUIN: TList;
  UINName, UINList: TStringList;
  Status: TICQStateType;
  SSL: TOnChangeResponse;
...

Delphi-Quellcode:
procedure TForm31.Senden1Click(Sender: TObject);
var
  i: Integer;
  open: boolean;
  {OpenUIN: TList;
  UINName: TStringList;}
begin
  open := true;
  if UINName.Count > 0 then
    for i := 0 to UINName.Count do //Hier tritt die Exception auf....
      if UINList.Strings[ContactList.ItemIndex] = UINName.Strings[i] then
        open := false;
  if open then
  begin
    ShowMessage('Öffnen!');
    UINName.Strings[i] := UINList.Strings[ContactList.ItemIndex];
  end
  else
    ShowMessage('Net!');
end;
beim gekennzeichneten Punkt tritt folgene Meldung auf:

Code:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt CQ.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0047DE9F in Modul 'CQ.exe'. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK
---------------------------
Wieso??

Stanlay Hanks 3. Mai 2004 16:01

Re: For-Schleife verursacht Zugriffsverletzung
 
Hi. Hast du schonmal probiert, statt dem x.Count eine feste Zahl einzusetzen, also nur so zum Probieren?

MrSpock 3. Mai 2004 16:03

Re: For-Schleife verursacht Zugriffsverletzung
 
Hallo faux,

du darfst nur bis Count-1 zählen, weil Listen mit dem Index 0 anfangen.

fkerber 3. Mai 2004 16:03

Re: For-Schleife verursacht Zugriffsverletzung
 
Hi!

Schreib vielleicht mal

Delphi-Quellcode:
UinName.Count-1;
Ciao fkerber

faux 3. Mai 2004 16:07

Re: For-Schleife verursacht Zugriffsverletzung
 
@MrSpock & fkerber: Hab ich vor dem Post auch schon probiert... geht auch nicht...
Aber danke, hab ich vergessen... muss ich wieder zuschreiben...
[edit]Aber deswegen tritt doch keine Zugriffsverletzung auf...[/edit]

Zitat:

Zitat von Stanlay Hanks
Hi. Hast du schonmal probiert, statt dem x.Count eine feste Zahl einzusetzen, also nur so zum Probieren?

Dann tritt die Zugriffsverletzung in der nächsten Zeile auf:
Delphi-Quellcode:
if UINList.Strings[ContactList.ItemIndex] = UINName.Strings[i] then //usw (siehe oben)

fkerber 3. Mai 2004 16:09

Re: For-Schleife verursacht Zugriffsverletzung
 
Hi!

Es klingt wirklich so, als würde der Listenindex "überreizt", aber dann müsste unsere Lösung funktionieren.
Seltsam :gruebel:

Ciao fkerber

faux 3. Mai 2004 16:22

Re: For-Schleife verursacht Zugriffsverletzung
 
Naja, und was kann ich jetzt machen????

Treffnix 3. Mai 2004 16:25

Re: For-Schleife verursacht Zugriffsverletzung
 
Ich würde mal tippen, du hast das
Delphi-Quellcode:
UInName := TStringlist.Create;
vergessen

MrSpock 3. Mai 2004 16:26

Re: For-Schleife verursacht Zugriffsverletzung
 
Hallo faux,

dann ist ja noch UINList.Strings[ContactList.ItemIndex] ein Kandidat für die Listenindexüberschreitung!?
Stelle im debug Mode doch einmal fest, was UINList.Count ist und welchen Wert ContactList.ItemIndex hat.

Tyrael Y. 3. Mai 2004 16:27

Re: For-Schleife verursacht Zugriffsverletzung
 
ähm nur mal so ne blöde Frage weil Adresse 00000000 Zugriffsverletzung


..ist UInName schon überhaupt kreiert worden ?

Edit: Mist zu spät.
Aber wegem dem 000000000 denke ich die StringListe ist gar nicht kreiert


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:08 Uhr.
Seite 1 von 2  1 2      

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