Dyn Array vielleicht????
Hi
ich wollte ein 2dimensionales Array erstellen bei dem beide Größen von Variablen abhängig sind. Wie geht das??? würde mich sehr über nen einfaches Bsp freuen :) thx im vorraus |
Re: Dyn Array vielleicht????
Delphi-Quellcode:
Gruß
var
A: Array of Array of Integer; X, Y: Integer; begin X := 15; Y := 3; SetLength(A, X, Y); end; |
Re: Dyn Array vielleicht????
so hatte ich mir das vor 5min auch noch gedacht:
SetLength(Werte, Anzahl, Varianten); aber da kommt ne Fehlermeldung (Werte:array of string; Anzahl, Varianten :integer;) |
Re: Dyn Array vielleicht????
Zitat:
|
Re: Dyn Array vielleicht????
ne das in klammern is nur wie ich die variablen definiert hab
|
Re: Dyn Array vielleicht????
Zitat:
|
Re: Dyn Array vielleicht????
incompatible typen
|
Re: Dyn Array vielleicht????
Zitat:
|
Re: Dyn Array vielleicht????
wie definiere ich nen 2d array wenn ich es dyn haben will???
|
Re: Dyn Array vielleicht????
Delphi-Quellcode:
DynArray: array of array of Datentyp;
|
Re: Dyn Array vielleicht????
Zitat:
|
Re: Dyn Array vielleicht????
sorry das sah mir aus wien schreibfehler weils nicht funzte :-D
denn jetzt kommt ne fehlermeldung bei der definition: bezeichner erwartet aber array gefunden |
Re: Dyn Array vielleicht????
Zitat:
|
Re: Dyn Array vielleicht????
Delphi-Quellcode:
das is die procedure
procedure Moeglichkeiten(Werte : array of array of string);
var Stabe1, Stabe2, Stabe3 :string; i, g, h, j, Anzahl, Varianten :integer; begin if Taste1 then begin Stabe1:='A'; Stabe2:='B'; Stabe3:='C'; Anzahl:=Anzahl + 1; end; if Taste2 then begin Stabe1:='D'; Stabe2:='E'; Stabe3:='F'; Anzahl:=Anzahl + 1; end; if Taste3 then begin Stabe1:='G'; Stabe2:='H'; Stabe3:='I'; Anzahl:=Anzahl + 1; end; if Taste4 then begin Stabe1:='J'; Stabe2:='K'; Stabe3:='L'; Anzahl:=Anzahl + 1; end; if Taste5 then begin Stabe1:='M'; Stabe2:='N'; Stabe3:='O'; Anzahl:=Anzahl + 1; end; if Taste6 then begin Stabe1:='P'; Stabe2:='Q'; Stabe3:='R'; Anzahl:=Anzahl + 1; end; if Taste7 then begin Stabe1:='S'; Stabe2:='T'; Stabe3:='U'; Anzahl:=Anzahl + 1; end; if Taste8 then begin Stabe1:='V'; Stabe2:='W'; Stabe3:='X'; Anzahl:=Anzahl + 1; end; Varianten := Potenzfkt(Anzahl); SetLength(Werte, Anzahl, Varianten); for i := Anzahl downto 1 do begin if i = Anzahl then begin Varianten := Varianten/3; for g := 1 to (Varianten/3) do Werte[i, Varianten]:= Stabe1; for h := (1/3*Varianten+1) to (2*Varianten/3) do Werte[i, Varianten]:= Stabe2; for j := (2/3*Varianten+1) to Varianten do Werte[i, Varianten]:= Stabe3; end else begin Stabe1 := Werte[i, Varianten/3] ; Stabe2 := Werte[i, 2*Varianten/3] ; Stabe3 := Werte[i, Varianten] ; for g := 1 to (Varianten/3) do Werte[i, Varianten]:= Stabe1; for h := (1/3*Varianten+1) to (2*Varianten/3) do Werte[i, Varianten]:= Stabe2; for j := (2/3*Varianten+1) to Varianten) do Werte[i, Varianten]:= Stabe3; end; end; end; |
Re: Dyn Array vielleicht????
Delphi-Quellcode:
type
TStrArr: array of array of string ... procedure Blubb(Werte: TStrArray); begin ... |
Re: Dyn Array vielleicht????
okay thx an alle :dp: :dp: :dp:
|
Re: Dyn Array vielleicht????
Hallo Benjamin,
es sind noch einige Fehler in deinem Quelltext enthalten, auf die dich der Compiler mit Sicherheit hinweisen wird. Wenn du das Array nur innerhalb der Routine verwenden möchtest, dann brauchst du es nicht als Parameter zu übergeben. Möchtest du es aber mit den neuen Dimensionen auch außerhalb der Routine nutzen, dann solltest du ihm in der Parameterliste der Prozedur das Wort "VAR" voranstellen. Gruß Hawkeye |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 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