Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - array problem...
kabizolis - Mi 15.06.05 15:51
Titel: array problem...
ich lege in meiner form 2 arrays fest:
Delphi-Quelltext
1: 2: 3:
| var Labell: array of TLabel; Editl: array of TEdit; |
dann lege ich in formcreate die länge der arrays fest:
Delphi-Quelltext
1: 2: 3:
| setlength(Editl, 10); setlength(Labell, 10); |
ich weise dann bestehende buttons resp. labels den arrayeinträgen zu:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| Editl[0] := Form2.Edit32; Editl[1] := Form2.Edit33; Editl[2] := Form2.Edit34; Editl[3] := Form2.Edit35; Editl[4] := Form2.Edit36; Editl[5] := Form2.Edit37; Editl[6] := Form2.Edit38; Editl[7] := Form2.Edit39; Editl[8] := Form2.Edit40; Editl[9] := Form2.Edit41;
Labell[0] := Form2.Label17; Labell[1] := Form2.Label44; Labell[2] := Form2.Label45; Labell[3] := Form2.Label46; Labell[4] := Form2.Label47; Labell[5] := Form2.Label48; Labell[6] := Form2.Label49; Labell[7] := Form2.Label50; Labell[8] := Form2.Label51; Labell[9] := Form2.Label52; |
die labels und buttons sind standardmässig aus "visible := false" gesetzt
wenn ich sie anzeigen will:
Delphi-Quelltext
1: 2: 3: 4: 5:
| for n := 0 to 9 do begin Labell[n].Visible := true; Editl[n].Visible := true; end; |
werden nur die labels angezeigt....
wo liegt mein fehler? ich hab' schon etliche methoden versucht...
jaenicke - Mi 15.06.05 15:57
Das kannst du aber viel einfacher machen!
Delphi-Quelltext
1: 2: 3: 4: 5:
| for i := 0 to Self.ComponentCount - 1 do if Self.Components[i] is TEdit then (Self.Components[i] as TEdit).Visible := True else if Self.Components[i] is TLabel then (Self.Components[i] as TLabel).Visible := True; |
Falls nur bestimmte Edits oder Labels angesprochen werden sollen, kannst du bei denen im Objektinspektor Tag auf einen bestimmten Wert setzen und nur, wenn der stimmt, Visible ändern...
//edit:
Vielleicht noch ne kurze Erklärung dazu...
In der for-Schleife geht man durch alle Komponenten auf dem aktuellen Formular (Self) und wenn es ein TEdit ist macht man was, wobei man mit as sagt, dass die Komponente als TEdit behandelt werden soll. (Sonst weiss Delphi nicht, welche Eigenschaften usw. die Komponente hat...)
kabizolis - Mi 15.06.05 16:28
ehm...
das hab' ich mit meinen beschränkten kentnisse wohl noch nicht ganz verstanden...
aber danke!
jaenicke - Mi 15.06.05 16:35
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| for i := 0 to Self.ComponentCount - 1 do if Self.Components[i] is TEdit then (Self.Components[i] as TEdit).Visible := True else if Self.Components[i] is TLabel then (Self.Components[i] as TLabel).Visible := True; |
Und wenn du das nicht verstehst dann frag weiter nach, denn es geht hier ja vor allem darum, etwas zu lernen! :dance2:
Wenn du etwas nicht sofort verstehst :nixweiss: , ist das auch normal, aber gib dann nicht einfach auf sondern frag nach den Dingen die du nicht verstehst :wink: .
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!