![]() |
problem mit dynamischem array
hallo zusammen,
ich habe ein kleines problem mit einem dynamischen array. ich will ein dyn. array in einer for-schleife mit dem jeweiligen indexwert füllen(array[i]:=i). dies funktioniert für alle werte bis auf den letzten, egal wie lang das array ist. der letzte wert des array steht immer bei 118. wie kommt das?? ich hoffe es kann mir jemand helfen schon mal danke im voraus! |
Re: problem mit dynamischem array
Ich nehme an es liegt daran, dass der Index von 0 bis 117 geht.
|
Re: problem mit dynamischem array
Der Index eines dyn. array beginnt immer bei 0
Delphi-Quellcode:
array[i-1]:=i;
|
Re: problem mit dynamischem array
Herzlich willkommen in der Delphi-PRAXiS, chamop87.
Wie sieht denn deine FOR-Schleife aus?
Delphi-Quellcode:
Freundliche Grüße
uses
Types; var i: Integer; ida: TIntegerDynArray; begin SetLength(ida, 119); for i := Low(ida) to High(ida) do ida[i] := i; end; |
Re: problem mit dynamischem array
Liste der Anhänge anzeigen (Anzahl: 1)
ich habs gleich mal ausprobiert mit dem low-high aber das problem besteht weiterhin (0,1,....10,118).
ich ahb mal die dateien angehängt... ich hoffe das hilft beid er problemlösung |
Re: problem mit dynamischem array
Delphi-Quellcode:
Das versteh ich schon nicht. Was soll die 2. Zeile?
for fa:=low(randoms) to high(randoms) do randoms[fa]:=fa;
randoms[11]:=11; |
Re: problem mit dynamischem array
oh, schuldigung, die zweite zeile war nur zu testzwecken da.
11 ist bei mir der höchste wert des array. eignedlich sollte sie den wert von randoms[11]=118 eben auf 11 setzten, aber selbst das funtioniert nicht, keine ahnung wieso |
Re: problem mit dynamischem array
Hallo,
keine Ahnung, was du dir dabei gedacht hast, aber die Anzahl der Bilder ist wie sie ist - da darfst du nicht einfach eins abziehen:
Delphi-Quellcode:
Freundliche Grüße
procedure TForm1.FormCreate(Sender: TObject);
var fa: Integer; begin Randomize; zaehl := 0; filelistbox1.Directory := 'D:\Eigene Dateien\Eigene Bilder\'; filelistbox1.Mask := '*.bmp;*.jpg;*.jpeg'; SetLength(randoms, filelistbox1.Items.Count {- 1}); bildanzahl := filelistbox1.items.count {- 1}; ca := 0; memo1.lines.add(inttostr(filelistbox1.Items.count)); for fa :=low(randoms) to high(randoms) do randoms[fa] := fa; end; |
Re: problem mit dynamischem array
ich ziehe dort jeweils einen ab, weil das array ja zwangsweise bei null losgeht.
beispiel anzahl der bilder=10 wenn ich dann schreibe setlength(array,10) habe ich elf speicherplatze, ich brauche aber nur zehn. ich habe das problem jetzt umgangen, indem ich einen zusätzlichen letzten speicherplatz erstelle den ich aber nicht verwende. in diesem platz hat dann immer den (für mich immer noch unerklärlcihen) wert 118, den ich dann aber nie verwende. über mich würde trotzdem mal interessieren, wie es zu diesem wert kommt, auch wenn ich das problem jetzt umgehen kann. ich habe das programm wie von meinem vorgänger vorgeschlagen verändert und zudem diese zeilen verändert: [/delphi]randoms[zufall]:=randoms[bildanzahl-1]; und [delphi]if bildanzahl=0 then begin danke nochmal für die tipps |
Re: problem mit dynamischem array
Dadurch verändert sich aber die Anzahl nicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 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