Autor Beitrag
rolX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25


D5
BeitragVerfasst: Di 04.01.05 12:31 
Hallo zusammen,

ich komme von der VB-Ecke und möchte gerne in Delphi einsteigen. Die Tutorials auf diesen Sites sind dafür wirklich prima!

Zum Thema:
Ich möchte gerne Control-Arrays erstellen, geht das und wenn ja, wie in Delphi?

Ich stelle mir z.B. ein Controll Array aus Checkboxen vor, die ich per Index abfragen kann:

...

if Checkbox(1).Checked = true then ...
if Checkbox(2).Checked = true then ...

...

das Gleiche natürlich auch für Buttons, Radio-Buttons, Edit Felder etc.

Wie gehe ich vor?

Vielen Dank im Voraus schonmal,

rolX


--
sage mir Deinen Namen und ich sage Dir wie Du heisst
cartridge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 209

Win XP
D4 Prof,D6 Prof
BeitragVerfasst: Di 04.01.05 19:17 
Hi!

Ich weiß zwar nicht, wozu das gut sein soll, aber Du kannst einen Type deklarieren
type
ControlArray = Array[0..maxCtrl] of TControl

wobei maxCtrl die (maximale) Anzahl von Kontrollelementen -1 sei.
Du kannst natürlich auch TCheckbox statt TControl nehmen, wenn Du nur Checkboxen verwenden willst. Sonst musst Du einen Typcast vornehmen:
TCheckBox(ControlArray[1]).Checked //als Beispiel

Dabei ist darauf zu achten, dasss Du nur Eigenschaften abfragst, die zum Kontrollelement passen!

Gruß
Ingo
rolX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 25


D5
BeitragVerfasst: Mi 05.01.05 07:35 
Titel: Kann schon Sinn machen
Hallo Ingo,

cartridge hat folgendes geschrieben:

Ich weiß zwar nicht, wozu das gut sein soll, ...


das kann durchaus Sinn machen, wenn man eine größere Menge an Checkboxen hat, diese Per Schleife zu durchlaufen und über einen Zähler anzusprechen um deren Wert auszulesen und in der gleichen Schleife z.B. in ein Boolean-Array zu übertrtagen.

Meine Anwendung soll in diese Richtung gehen:

Eine Frage mit vier möglichen Antworten (wie z.B. bei einer Führerscheinprüfung). Die Lösung liegt in einem Array, nun kann ich die abgehakten Controls mit dem Array über eine Schleife vergleichen.

Das geht natürlich auch zu Fuß, aber man wills ja schön haben :-)

Also - Danke erst mal für Deinen Vorschlag, ich werd' mich mal dran versuchen. Es soll ja auch nur eine Übung sein, um Delphi kennen zu lernen.

Gruß, rolX

--
Fussballerzitate (Andreas Moeller): Ich hatte vom Feeling her ein gutes Gefuehl.
cartridge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 209

Win XP
D4 Prof,D6 Prof
BeitragVerfasst: Mi 05.01.05 20:45 
Bei deinem Vorhaben kann man es aber auch einfacher gestalten, als Du es vorhast:

Man fragt den Parent (Panel oder Form oder dergl.) nach den enthaltenen Controls ab, erfragt, ob es sich dabei um Checkboxen handelt und fragt nach der Eigenschaft mit Typcast:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
for i:= 0 to Panel1.ControlCount -1 do
begin
if Panel1.Controls[i] is TCheckbox then
if (Panel1.Controls[i] as TCheckbox).Checked the
begin
//DoSomething
end;
end;