Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi automatisch Checkboxen aus ARRAY erzeugen (https://www.delphipraxis.net/120752-automatisch-checkboxen-aus-array-erzeugen.html)

hgiel 16. Sep 2008 09:16


automatisch Checkboxen aus ARRAY erzeugen
 
Hallo,

ich hab folgendes Problem:

Ich habe ein variables (bzgl. Anzahl) Array von Textfelder (z.B. rot, grün, weiss, ...). Dieses lese ich ein, so daß mir die Felder als Textwerte in farbe[i] zur "Verfügung" stehen. Nun möchte ich diese Felder als Checkboxen darstellen, d.h. für jeden gelesenen Wert soll - automatisch - eine Checkbox auf meiner Form angelegt werden, die dann mit dem Textwert "gecaptuered" werden soll. Alle resultierenden Checkboxen sollen dann noch in einer Groupbox zusammengefasst arrangiert werden!

Wie macht man dies - möglichst flexibel?

Gruß,

Heinz

mkinzler 16. Sep 2008 09:18

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Indem man durch den array iteriert und die Checkboxn manuell erzeugt

rollstuhlfahrer 16. Sep 2008 09:24

Re: automatisch Checkboxen aus ARRAY erzeugen
 
HI,

du erstellst als erstes eine Groupbox, der du einen Titel und die Punkte Top und Left zuweist.
Dann gahst du in den Code und erstellst deine Checkboxen. Die Größe der Groupbox ergibt sich aus der Menge der Checkboxen.

Delphi-Quellcode:
//... hier kommt dein Lesevorgang an.
var
  posxCheckbox: Integer;

for i := 1 to Anzahl do
begin
  With TCheckbox.Create(Self) do
  begin
    Name := 'CheckBox' + IntToStr(i); // damit es keine 2 doppelten gibt.
    Caption := Titel; // aus deinem Array
    Left := 10;
    Top := (i-1) * 20 + 5;
    Checked := true; {false;}
    Parent := Groupbox1;
  end;
end;
Bernhard

mkinzler 16. Sep 2008 09:27

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Ich würde die Komponenten-Referenzen speichern und Namen weglassen und sttatdessen .Tag auf den Index setzen.

hgiel 16. Sep 2008 10:06

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Hi Rollstuhlfahrer,

Dein Tipp hat mir schon sehr geholfen - alle CHECKBOXEN wurden richtig angelegt!
Leider alle untereinander und nicht an die Groupboxgröße angepasst ;-(
Ich habe die Groupbox schon fertig auf die Form gelegt: LEFT 32 TOP 88 HEIGHT 121 WITDH 1033

mkinzler 16. Sep 2008 10:09

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Dann musst du die Position bei der Erzeugung setzen

rollstuhlfahrer 16. Sep 2008 10:12

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Ich glaub, dass du die Komponentennamen brauchst, damit es keine sollelten Checkboxem gibt.

mkinzler 16. Sep 2008 10:22

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Nein, wenn man keinen setzt geht es -> Zugriff über .Tag

hgiel 16. Sep 2008 10:35

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Hallo,

irgendwie klappt es noch nicht:
Delphi-Quellcode:
  Groupbox1.Caption:=' Länder ';
  Groupbox1.Left:=32;
  Groupbox1.Top:=88;
  Groupbox1.Height:=121;
  Groupbox1.Width:=1033;

  for i := 1 to l_anz do
  begin
    With TCheckbox.Create(Self) do
    begin
      Name := 'CheckBox' + IntToStr(i); // damit es keine 2 doppelten gibt.
      Caption := land[i]; // aus deinem Array
      Left := 20;
      Top := (i-1) * 20 + 5;
      Checked := false;
      Parent := Groupbox1;
    end;
  end;
sag mal rollstuhlfahrer, wofür und wie wird in deinem Code die Variable "posxCheckbox: Integer;" genutzt - vielleicht liegt da der Schlüssel?

[edit=SirThornberry]Delphi Tags gesetzt - nächstes mal bitte selbst machen - Mfg, SirThornberry[/edit]

mkinzler 16. Sep 2008 10:49

Re: automatisch Checkboxen aus ARRAY erzeugen
 
Setz mal den Parent gleich nach dem Create
.Top ist Relativ zum Parent


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz