Einzelnen Beitrag anzeigen

Noobinator

Registriert seit: 9. Mai 2006
147 Beiträge
 
Delphi 7 Personal
 
#7

Re: Per Befehl Checkbox erstellen

  Alt 17. Feb 2008, 14:38
Du kannst den Namen im Objektinspektor ganricht ändern, denn die Checkbox existiert noch garnicht vor Programmstart.

wie du mehrere Erstellen kannst?

ganz einfach:

entweder du legst dir ein Array an, mit allen Checkboxen.
Oder du gehst über den Namen und lässt einen Integer mitlaufen.

1.weg:

Delphi-Quellcode:
var Mycheckboxes: array of Tcheckbox;

//im Formcreate dann ganz am Anfang Arraylänge auf 0 setzen
Setlength(mycheckboxes,0);
...
//Checkbox erstellen /z.B. per Buttonklick:

setlength(mycheckboxes,length(mycheckboxes ) + 1); //neues Element hinten an unser Array
mycheckboxes[high(mycheckboxes)]:= Tcheckbox.create(self); //in das neue Element eine Checkbox setzen

//checkbox initialisieren
with mycheckboxes[high(mycheckboxes)] do
begin
    Parent := self;
    Top := 10* length(mycheckboxes); // damit nicht alle übereinanderliegen
    Left := 10;
    Height := 10;
    Width := 100; // hier 100 oder mehr angeben, damit dein Text auch angezeigt wird
    Caption := 'Checkbox' + intttostr(length(mycheckboxes));
end;
// Zugriff ist hier ein ganz normaler Arrayzugriff:
mycheckboxes[0].checked := false; //1. Box auf false setzen zum Beispiel
2. Weg:

Delphi-Quellcode:
var boxcount:integer;
// IM Formcreate:
Boxcount := 0;

// Erstellen z.B. per Buttonklick
inc(Boxcount,1); // 1 Hochzählen

with mTcheckbox.create(self) do
begin
    Parent := self;
    Top := 10 * boxcount;
    Left := 10;
    Height := 10;
    Width := 100;
    Caption := 'Checkbox' + intttostr(boxcount);
    Name := 'Checkbox' + intttostr(boxcount);
end;

//Zugriff hier per findcomponent
Tcheckbox(findcomponent('Checkbox1')).checked := not Tcheckbox(findcomponent('checkbox1')).checked;
  Mit Zitat antworten Zitat