blume283 - Di 12.09.06 12:54
Titel: statischer, konstanter array deklarieren
hallo!
ich habe eine frage, auf die ich im forum noch keine antwort gefunden habe, und zwar:
sagen wir ich habe folgende konstante:
Delphi-Quelltext
1: 2:
| const anzahl_hallo = 2; const wert_hallo : Array[0..anzahl_hallo-1] of Byte = (2,3); |
nun möchte ich einen weiteren, konstanten array deklarieren (sagen wir mal groesse_hallo), der eben genau die länge von wert_hallo hat, also:
groesse_hallo[0] hat 2 einträge,
groesse_hallo[1] hat 3 einträge .. etc..
Delphi-Quelltext
1:
| const groesse_hallo : Array[0..anzahl_hallo-1, ] of Byte = ( (10,15) , (25,36,49) ); |
und ich wollte ihm natürlich direkt werte zuweisen (da konstant), ist so etwas möglich?
( die alternative wäre ja , einfach groesse_hallo[0] und groesse_hallo[1] gleichlang zu machen , nämlich das maximum von 2 und 3 also > 3, aber das muss doch eleganter gehen!?!)
dankeschön!
Allesquarks - Di 12.09.06 13:06
Das ist aber dann ein array eines arrays nich:
groeße_hallo:array of array [0..anzahl-1] of integer; hierbei geht dann aber wahrscheinlich nicht, dass anzahl für jede Zeile unterschiedlich ist. Das oben dürfte ein rechteckiges Feld deklarieren. Entweder du nimmst einfach den maximalwert von anzahl, dann ist das Feld zwar zu groß (Speicherverschwendung) oder du musst das dir erst vorher bauen. Dann würde ich dir aber dynamische arrays empfehlen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| type Tgroßfeld = array of array of integer;
var großfeld:TGroßfeld
initialization
For i:=0 to length(großfeld)-1 do begin setlength(großfeld[i],i+1); end; |
pennyWISE - Mo 04.12.06 19:21
hallo! ich weiß nicht genau ob es wirklich hier reingehört...aber egal^^
ich würde gern ein konstantes Feld benutzen...da ich bisher nicht wusste, wie, hab ich erstmal ein variables gemacht und die werte in einer FormCreate-Prozedur an das array übergeben... quelltext wie folgt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| var farben: array[1..6] of string[7];
procedure TForm1.FormCreate(Sender: TObject); begin farben[1]:='blau'; farben[2]:='gelb'; farben[3]:='gruen'; farben[4]:='lila'; farben[5]:='rot'; farben[6]:='tuerkis'; end; |
so...da die farben immer gleich bleiben, soll das ganze also konstant werden... freue mich auf antworten!
-pennyWISE-