Entwickler-Ecke

Sonstiges (Delphi) - Eigendschaft: Text von Edit-Feld nach nil ändern?


hmmm - Mo 23.10.06 19:34
Titel: Eigendschaft: Text von Edit-Feld nach nil ändern?
Hallo nochmal,

ich habe nun einige Edit-Felder mit 'nil' initialisiert:

Delphi-Quelltext
1:
2:
3:
Edit1 := nil;
Edit2 := nil;
Edit3 := nil;


Nun muss aber nachdem initialisieren die Eigenschaft 'Text' des Feldes geändert werden.

Wenn ich dies versuche, wird zwar beim Compilieren kein Fehler gemeldet, aber die Text-Eigendschaft wird nicht geändert.


Delphi-Quelltext
1:
Edit1.text := inttostr(Random(9)+1);                    


Was kann man da tun?


Saubäär - Mo 23.10.06 19:38


Delphi-Quelltext
1:
Edit1.Text := inttostr(...);                    


Gruß

Saubäär


hmmm - Mo 23.10.06 19:42

Oh sorry, habe ich beim Thema erstellen vergessen ;-(

In meinem Programm steht natürlich:


Delphi-Quelltext
1:
Edit1.Text := inttostr(Random(9)+1);                    



An meinem Problem änderts also leider nichts.


Narses - Mo 23.10.06 19:48

Moin!

Wenn du Edit1 auf NIL setzt, kannst du nicht mehr darauf zugreifen! :shock: Es ist also kein "Initialisieren".

Vielleicht erklärst du mal etwas mehr von dem, was du da machen willst; mir scheint, du hast da so einige grundlegende Dinge noch nicht verstanden. ;)

cu
Narses


Saubäär - Mo 23.10.06 19:58

Ich frage mich, warum du ein Edit- Feld auf NIL setzen willst?

Gruß

Saubäär


hmmm - Mo 23.10.06 20:07

Alsooo,

ich erkäre mal was ich machen will:

1. Ich habe ein Array:


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


2. Ich habe diesem Array Edit-Felder zugeordnet:



Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  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;
und weitere ...


So, in der Array Definition oben steht ja Array[1..9,1..9,1..9], sprich ich könnte hunderte von Editfelder bestimmen. Ich habe aber nur 81.

Nun möchte ich ein zufälliges Element aus dem Array auswählen und die Text-Eigendschaft verändern.

Also habe ich drei Zufallszahlen zwischen 1-9 erzeugt (i,j,k) und möchte jetz Prüfen ob die Kombination Feld[i,j,k] in dem Array als Edit-Feld vorhanden ist oder nicht.

In einem anderen Thema habe ich die Lösung gefunden:


Delphi-Quelltext
1:
If Assigned (Feld[i,j,k]} Then                    


Damit das funktioniert, müssen aber alle Edit-Felder nil sein.


Narses - Mo 23.10.06 20:13

Moin!

user profile iconhmmm hat folgendes geschrieben:
Damit das funktioniert, müssen aber alle Edit-Felder nil sein.

:gruebel: Also so wie ich das sehe, müssen nur die NIL sein, die du nicht verwenden willst. ;)

Fazit: Erst das Edit-Array auf NIL setzen und dann die Edits zuweisen, die du verwenden willst. Dann klappt´s auch mit der Abfrage. :D

cu
Narses


hmmm - Mo 23.10.06 20:19

Zitat:
Erst das Edit-Array auf NIL setzen


Ok, aber wie tu ich das?

Wenn ich


Delphi-Quelltext
1:
Feld := Nil;                    


schreibe, kommt die Meldung:

Inkompatible Typen "Array" und "Pointer"


Narses - Mo 23.10.06 20:21

Moin!

Du hast im anderen Thread doch schon eine Schleife, die das macht, gezeigt bekommen. Warum machst du dann jetzt wieder sowas wie "Feld := NIL"? :nixweiss: ;)

cu
Narses


hmmm - Mo 23.10.06 20:35

Meinst Du die?


Delphi-Quelltext
1:
2:
3:
4:
For i:=0 to 9 do 
  For j:=0 to 9 do
    For k:=0 to 9 do
      Feld[i,j,k] := nil;


Aber die bewirkt doch das ALLE möglichen Kombinationen auf nil gestzt werden. Auch die, die die Edit-Felder beinhalten?

Oder seh ich das falsch??? :(


Narses - Mo 23.10.06 20:39

Moin!

user profile iconNarses hat folgendes geschrieben:
Erst das Edit-Array auf NIL setzen und dann die Edits zuweisen, die du verwenden willst.

cu
Narses


hmmm - Mo 23.10.06 20:47

Ahhh, jetzt.... Ok funktioniert. ;-)

Vielen Dank für die Antworten