Autor Beitrag
hmmm
Hält's aus hier
Beiträge: 12



BeitragVerfasst: So 22.10.06 19:24 
Hallo,

folgende Situation:

1. Mehrdimensionales Array wiefolgt angelegt:

ausblenden Delphi-Quelltext
1:
Feld: Array[1..9,1..9,1..9of TEdit;					



2. Mehrere Elemente fest zugewiesen:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 22.10.06 19:30 
Vorher hast Du das Feld mit 'nil' initialisiert. Und dann fragst Du einfach ab:
ausblenden 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,8is 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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: So 22.10.06 20:49 
So ist es richtig:
ausblenden 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
ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Mo 23.10.06 17:49 
Ahh, ok danke. Nun gehts.