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;