Und hier n bisschen generischer:
Delphi-Quellcode:
procedure MakeCheckBoxes(Container: TWinControl; Captions: TStrings; CBOnClick: TNotifyEvent = nil);
var i: Integer;
Size: TSize;
buf: string;
begin
for i := 0 to Captions.Count-1 do
with TCheckBox.Create(Container) do
begin
Parent := Container;
Top := i * 16; //reicht 16?
Left := 3;
Height := 16;
buf := Captions[i];
GetTextExtentPoint32(Canvas.Handle, @buf[1], Length(buf),Size);
Width := Size.cx + 16; //16 extra für die Box
Tag := i;
Caption := buf;
OnClick := CBOnClick;
end;
end;
So kannst du Checkboxes "hinklatschen". Wie viel reinpassen würd ich per Container.Height div 16 berechnen.
EDIT: So, korrekte Size dazu.