Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - array of edit


Stutz - Di 26.06.07 22:32
Titel: array of edit
hi

ich bin gerade dabei meine delphi pause zu beenden in der ich java programmiert hab. jetzt würd ich gern ein projekt von java zu delphi übersetzten welches sudokus erstellt.
nun hab ich das problem dass ich dazu 81 Textfelder brauche die eigentlich am besten als array erstellt werden. kann mir irgendjemand sagen wie ich so ein array erstelle???
meine ursprüngliche idee war

Delphi-Quelltext
1:
2:
var
   sudoku: array of TEdit;


allerdings hat mein delphi da probleme mit dem Tedit. kann mir jemand sagen wie ich so ein Array erstelle??

vielen dank im vorraus
gruß Stutz

PS: ich hoffe die frage ist bisher noch net aufgetaucht


Blackheart666 - Di 26.06.07 22:35

var
sudoku: array[1..81] of TEdit;
Benutz doch einfach ein StringGrid. :wink:


Stutz - Di 26.06.07 22:51

leider kommt immernoch die meldung "E2003 Undeclared identifier:'Tedit' ", wobei im source das "Tedit" immer rot unterstrichen wird.
gibt es irgendne andere version??

TStringgrid find ich net so gut, da es einfach net so schön aussieht für ein sudoku (da kann man die 3X3 kästchen net so gut hervorheben)


Jann1k - Di 26.06.07 22:57

schreib mal unter Uses das hier:

StdCtrls


Stutz - Di 26.06.07 23:52

cool, jetzt bringt er mal keine fehlermeldungen mehr :D
allerdings kann ich diese dinger noch net ansprechen (hab arrays bisher nur in java gelernt), habs mit
sudoku[i].create
in ner for schleife schon versucht, aber da hängt er sich auf. diese edits werden nicht mal angezeigt :(
wär echt nett wenn jemand darauf auch noch ne antwort wüsste (mir is es fast schon peinlich solche fragen zu stellen, aber nachdem ich mir delphi selbst beibringen muss is es einfach manchmal besser nachzufragen :oops: )


Christian S. - Mi 27.06.07 00:20

Hallo!

Schau mal hier: http://www.delphi-library.de/topic_Komponenten+dynamisch+im+Array+verwalten_43052.html :-)

Grüße
Christian


Jann1k - Mi 27.06.07 00:24

okay, also in delphi gibt es dynamische und statische array:

ein statisches array besitzt feste grenzen (soduku:array[1..6] of tedit) die Länge eines dynamischen arrays ist variabel und wird mit der prozedur setlength(arrayname,arraylänge) festgelegt (näheres in der hilfedatei).

Benutzt du zB setlength(sudoku,5) ist sudoku nun ein array mit 5 Speicherplätzen (0,1,2,3,4).

Wenn du deine edits erzeugst, musst du unbedingt die eigenschaft parent JEDES (!!!) Edits auf den namen der form setzen wo das edit angezeigt werden soll. Also standardmäßig wäre das


Delphi-Quelltext
1:
edit1.parent:=form1;                    


setz am besten auch noch left und top des edits auf die gewünschten werte, sonst kann es sein, dass die position des edits ausserhalb deines formulars liegt.

Achso und zum erzeugen der Edits:


Delphi-Quelltext
1:
soduku[i]:=tedit.create(form1);                    


Gute Nacht

Der BiBaBasti


Stutz - Mi 27.06.07 00:34

super, vielen dank funktioniert nun alles prima