TComponent::Components[int Index]
-
Hallo Leutz, ich hab nen Problem:
Ich habe in meinem Programm ne ScrollBox und dort sind lauter Objekte drin, die um 100 Pixeln nach Links verschoben werden sollen, und dann wieder zurück (also Kurzzeitig verschieben). Ich wollte das so lösen:
void __fascall Button1Click(TObject *Sender) { for (int i=0; i<ScrollBox1->ComponentCount;i++) ScrollBox1->Components[i]->Left+=100; } void __fascall Button2Click(TObject *Sender) { for (int i=0; i<ScrollBox1->ComponentCount;i++) ScrollBox1->Components[i]->Left-=100; }
Aber das geht nicht, Left soll undefiniert sein, wie macht man das sonst?
-
Hi,
Left und Top usw sind von TControl bzw TWinControl geerbt. Entweder merkst du dir die einzelnen Steuerelemente beim aufbau der Form selber in irgendeinem Container oder du musst casten.
CU
-
Hmm, also ich hab irgendwo mal was mit TLabels gelesen, wo die die Caption von jedem Label in einer Schleife geändert haben, sowas bräuchte ich.
-
Hi,
benutz doch an stelle von Components, die eigenschaft Controls von der Scrollbox
CU
-
Hallo,
Da wirst du schon casten müssen. Ich denke das du in der FAQ einiges dazu finden wirst. Ich habe z. Bsp. das hier http://www.c-plusplus.net/forum/viewtopic.php?t=39207 gefunden.
Ciao
-
Also ich sag nur: FAQ u!
http://www.c-plusplus.net/forum/viewtopic.php?t=39207&start=0&postdays=0&postorder=asc&highlight=
Weiß nicht, wieviele verschiedenartige Komponenten Du hast. Im Zweifel würd ich mir halt 2 Array's aufbauen. Eines mit Ptr auf die Komponenten und ein anderes mit der Info, um welche Komponente es sich handelt. Dann kannste ja mittels cast drauf zugreifen.
Wenn es nur ein paar Kompo's sind, würd ich die aber direkt ansprechen und die Left-Eigenschaft setzen, sofern Du nichts dynamisches aufbaust.
-
Ich werd alt und langsam....
oder ist's nur die Hitze im Rheintal???
-
Also ich habe Labels, Edits, Comboboxen, DateTimePicker und Memos. Aber das mit der ScrollBox verschieben, ich glaub das liegt an der Hitze, macht alles einfacher
Danke jungs, dass ihr mein Hirn ein wenig angetrieben habt.