Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi zugriffsverletzung (https://www.delphipraxis.net/101281-zugriffsverletzung.html)

hedie 10. Okt 2007 18:35


zugriffsverletzung
 
Hallo

Ich erhalte bei diesem Code eine zugriffsverletzung jedoch nur dann wen er das zweite mal ausgeführt wurde

Meinermeinung nach stimmt alles

Delphi-Quellcode:
procedure TForm2.Image10Click(Sender: TObject);
var
i:integer;
sln,sli:tstringlist;
begin
i := listboxm1.ItemIndex;
sln := tstringlist.Create;
sli := tstringlist.Create;
////////Listboxen säubern :D/////
listboxm2.Items.Delete(i);
listboxm1.Items.Delete(i);
////////////////////////////////
i := 0;
///tempc beinhaltet die vorherige anzahl an items also eins mehr als jetzt vorhanden sind :D
repeat
sln.Add(listboxm1.Items.Item[i].Caption);
sli.Add(listboxm1.Items.Item[i].SubItems.Strings[0]);
i := i + 1;
until i = (tempc - 1);
sln.Free;
sli.Free;
end;
listboxm1 ist ein tlistview
listboxm2 it eine Listbox


grüsse
Claudio

Wegen fragen bezüglich dem RadStudio 2007, ist nur ne Testversion für 14 Tage :mrgreen:

mkinzler 10. Okt 2007 18:41

Re: zugriffsverletzung
 
Ich wprde nicht mit der globalen Variable tempc arbeiten sondern mit listboxm1.Items.Count

hedie 10. Okt 2007 18:44

Re: zugriffsverletzung
 
stimtm super das war es :D

Is ja wenn man so denkt logisch da sich ja tempc nie verändert

marabu 10. Okt 2007 18:49

Re: zugriffsverletzung
 
Hallo Claudio,

warum überhaupt so viele Code-Zeilen? Der einzige bleibende Effekt ist doch das Löschen des ausgewählten Items:

Delphi-Quellcode:
procedure TForm2.Image10Click(Sender: TObject);
var
  i: integer;
begin
  i := listboxm1.ItemIndex;
  listboxm2.Items.Delete(i);
  listboxm1.Items.Delete(i);
end;
Grüße vom marabu

hedie 10. Okt 2007 18:51

Re: zugriffsverletzung
 
Danke für den tipp Marabu

jedoch wird, was ihr hier nicht sehen könnt, danach sie stringlist an eine DLL übergeben welche diese dan weiterverarbeitet und schlussendlich in inis speichert

marabu 10. Okt 2007 18:55

Re: zugriffsverletzung
 
Wann denn später, wenn du doch die beiden Listen sofort wieder freigibst?

hedie 10. Okt 2007 19:05

Re: zugriffsverletzung
 
nee hab das vo dem .free noch eingefugt aber erst nach dem posten :)

Hast du noch ne idee weshalb ich nichts erhalte?

Delphi-Quellcode:
sli.Add(listboxm1.Items.Item[i].SubItems.Strings[0]);
bzw es wird nichts geaddet

marabu 10. Okt 2007 19:09

Re: zugriffsverletzung
 
Keine Ahnung - vielleicht steht da gar nix?

Delphi-Quellcode:
sli.Add(listboxm1.Items[i].SubItems[0]);
Soll da wirklich nur die zweite Spalte übernommen werden?

hedie 10. Okt 2007 19:10

Re: zugriffsverletzung
 
jep die zweite spalte soll übernommen werden

Doch in der zweiten spalte steht was :D

marabu 10. Okt 2007 19:30

Re: zugriffsverletzung
 
Vergewissere dich mal:

Delphi-Quellcode:
 ShowMessage('"' + listboxm1.Items[i].SubItems[0] + '"');


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