AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

problem mit dynamischem array

Ein Thema von chamop87 · begonnen am 20. Feb 2008 · letzter Beitrag vom 20. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
chamop87

Registriert seit: 10. Feb 2008
11 Beiträge
 
Delphi 7 Enterprise
 
#1

problem mit dynamischem array

  Alt 20. Feb 2008, 20:01
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!
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 20:05
Ich nehme an es liegt daran, dass der Index von 0 bis 117 geht.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 20:06
Der Index eines dyn. array beginnt immer bei 0
array[i-1]:=i;
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 20:07
Herzlich willkommen in der Delphi-PRAXiS, chamop87.

Wie sieht denn deine FOR-Schleife aus?

Delphi-Quellcode:
uses
  Types;

var
  i: Integer;
  ida: TIntegerDynArray;

begin
  SetLength(ida, 119);
  for i := Low(ida) to High(ida) do
    ida[i] := i;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
chamop87

Registriert seit: 10. Feb 2008
11 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 20:21
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
Angehängte Dateien
Dateityp: zip jpganzeigen02_206.zip (274,8 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 20:25
Delphi-Quellcode:
for fa:=low(randoms) to high(randoms) do randoms[fa]:=fa;
randoms[11]:=11;
Das versteh ich schon nicht. Was soll die 2. Zeile?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
chamop87

Registriert seit: 10. Feb 2008
11 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 20:30
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 21:18
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:
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;
Freundliche Grüße
  Mit Zitat antworten Zitat
chamop87

Registriert seit: 10. Feb 2008
11 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 21:36
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: problem mit dynamischem array

  Alt 20. Feb 2008, 21:39
Dadurch verändert sich aber die Anzahl nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:39 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