Autor |
Beitrag |
hmmm
Hält's aus hier
Beiträge: 12
|
Verfasst: So 22.10.06 19:24
Hallo,
folgende Situation:
1. Mehrdimensionales Array wiefolgt angelegt:
Delphi-Quelltext 1:
| Feld: Array[1..9,1..9,1..9] of TEdit; |
2. Mehrere Elemente fest zugewiesen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Feld[1,1,1]:= Edit1; Feld[2,1,1]:= Edit2; Feld[3,1,1]:= Edit3;
Feld[4,1,2]:= Edit4; Feld[5,1,2]:= Edit5; Feld[6,1,2]:= Edit6;
Feld[7,1,3]:= Edit7; Feld[8,1,3]:= Edit8; Feld[9,1,3]:= Edit9;
Feld[1,2,1]:= Edit10; Feld[2,2,1]:= Edit11; Feld[3,2,1]:= Edit12; |
Meine Frage ist nun, wie ich prüfen kann, ob z.B Feld[8,8,8] in dem Array existiert.
Ich möchte also wissen, ob in dem Array, dem Feld[8,8,8] ein Edit-Feld zugewiesen ist.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: So 22.10.06 19:30
Vorher hast Du das Feld mit 'nil' initialisiert. Und dann fragst Du einfach ab:
Delphi-Quelltext 1: 2: 3: 4:
| If Assigned (Feld[8,8,8]} Then ShowMessage('In Feld[8,8,8} steht etwas drin'); If Feld[8,8,8] is TEdit Then ShowMessage('In Feld[8,8,8} ist ein TEdit oder ein Abkömling davon'); |
Achtung! Wenn das Editfeld freigegeben ist (also nicht mehr existiert), steht in Feld[8,8,8] immer noch etwas drin. Vermutlich sogar ein TEdit. Nur darauf zugreifen würde ich nicht.
_________________ Na denn, dann. Bis dann, denn.
|
|
hmmm 
Hält's aus hier
Beiträge: 12
|
Verfasst: So 22.10.06 19:49
Zitat: | Achtung! Wenn das Editfeld freigegeben ist (also nicht mehr existiert), steht in Feld[8,8,8] immer noch etwas drin. Vermutlich sogar ein TEdit. Nur darauf zugreifen würde ich nicht. |
ja, das hab ich gemerkt.
Zitat: | Vorher hast Du das Feld mit 'nil' initialisiert. |
Ok, wie mach ich das? (Bin Delphi Neuling  )
Es ist ja so, dass das Feld[8,8,8] zwar TEdit ist, es aber keinem Edit-Feld zugewiesen ist.
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: So 22.10.06 20:49
So ist es richtig:
Delphi-Quelltext 1: 2: 3: 4:
| For i:=0 to 8 do For j:=0 to 8 do For k:=0 to 8 do Feld[i,j,k] := nil; |
Und so ist es schnell
Delphi-Quelltext 1:
| FillChar (Feld, SizeOf (Feld), 0); |
Das funktioniert aber nur deshalb, weil die Konstante 'nil' rein zuffällig 0 ist.
_________________ Na denn, dann. Bis dann, denn.
|
|
hmmm 
Hält's aus hier
Beiträge: 12
|
Verfasst: Mo 23.10.06 17:49
Ahh, ok danke. Nun gehts.
|
|
|