Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Dyn Array vielleicht???? (https://www.delphipraxis.net/129677-dyn-array-vielleicht.html)

Fussball-Robby 23. Feb 2009 21:30

Re: Dyn Array vielleicht????
 
Zitat:

Zitat von foerster7892
wie definiere ich nen 2d array wenn ich es dyn haben will???

Guck doch einfach meinen Beitrag an :roll: Da dann noch Integer in String ändern und fertig...

foerster7892 23. Feb 2009 21:33

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

Fussball-Robby 23. Feb 2009 21:36

Re: Dyn Array vielleicht????
 
Zitat:

Zitat von foerster7892
sorry das sah mir aus wien schreibfehler weils nicht funzte :-D
denn jetzt kommt ne fehlermeldung bei der definition:
bezeichner erwartet aber array gefunden

Zeig mal deinen bisherigen Code. Eventuell musst du das unter type deklarieren, dazu gibts hier aber auch genug Themen..

foerster7892 23. Feb 2009 21:38

Re: Dyn Array vielleicht????
 
Delphi-Quellcode:
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;
das is die procedure

Meflin 23. Feb 2009 21:41

Re: Dyn Array vielleicht????
 
Delphi-Quellcode:
type
  TStrArr: array of array of string

...

procedure Blubb(Werte: TStrArray);
begin
...

foerster7892 23. Feb 2009 21:56

Re: Dyn Array vielleicht????
 
okay thx an alle :dp: :dp: :dp:

Hawkeye219 23. Feb 2009 22:47

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:14 Uhr.
Seite 2 von 2     12   

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