Zum Inhalt springen

[Delphi]: Checkboxen als statisches Array


Empfohlene Beiträge

Hi,

ich bekomme in einem Delphiprogramm eine word übergeben. Das word enthällt ja bekanntlich 16 Bits, in meinem Fall sind das Flags.

Jetzt soll ich auf meinem Form für jedes Flag eine Checkbox darstellen, wobei natürlich jede Checkbox einen anderen Text (Caption) hat.

Jetzt wäre es sehr praktisch, wenn man diese 16 Checkboxen in einem Array hätte.

Kann man denn die Checkboxen irgendwie in ein Array packen, ohne gleich alles dynamisch zu erzeugen?

Die Positionierung bleibt ja immer gleich, genauso wie die Captions....

Im Grunde sind es immer genau die selben Checkboxen, nur bei der Verarbeitung wäre halt ein Array günstiger, weil man die Checkboxen dann in einer Schleife setzen, und wieder lesen könnte.

Het jemand eine Idee?

PS: Ich habe schon ein paar Stunden deswegegen gegooglet, aber ich finde nur Lösungen, bei denen die Checkboxen erst komplett dynamisch erzeugt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du kannst die Checkboxen ja identifizieren...entweder über die Property "Name", oder über "Tag".

Ich würd die Checkboxen bei "Tag" mit 1 bis 16 durchnummerieren.

 

[...]

var

  aChkBox: TCheckBox;

for i:=0 to ComponentCount-1 do

  if Components[i] is TCheckBox then 

  begin

    aChkBox := TCheckBox(Components[i])

    case aChkBox.Tag of

       1: aCheckBox.Checked := Wert1; //Wert1 ist hier natürlich nur ein Beispiel

       //für die anderen 15 natürlich genauso ;-)

    end;

  end;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann man denn die Checkboxen irgendwie in ein Array packen, ohne gleich alles dynamisch zu erzeugen?

Zusammen mit dem Components-Array:


...

var MyChkArray: Array[0..15] of TCheckBox;

...

for i:=0 to ComponentCount-1 do

  if Components[i] is TCheckBox then 

  begin

    if (Components[i] as TCheckBox).Tag > 0) then

    begin

      MyChkArray[(Components[i] as TCheckBox).Tag]:=

        (Components[i] as TCheckBox);

    end;

  end;


Damit hast du dann ein Array, dass nur noch deine Checkboxen enthält und das auch noch in der "richtigen" Reihenfolge. Vorraussetzung ist halt, dass du die Tags entsprechend setzt und sie auch bei den anderen auf dem Default-Wert (0) sind.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...