"extern", also "nicht im Source" wird das wohl kaum gehen... wie denn auch? Du erstellst die Checkbox erst zur Laufzeit, sie ist also erst zur Laufzeit verfügbar (also nix mit
OI). Da eine Checkbox keine Methoden zur änderung der Caption mitbringt (wie zB ein Edit/Memo) kannst du die Caption also auch nur über den Quellcode ändern.
Dafür bieten sich verschiedene Möglichkeiten an:
Du hast einen Zeiger auf das erstellte Objekt:
Delphi-Quellcode:
var MeineCheckBox: TCheckBox;
{...}
MeineCheckBox := TCheckBox.Create(self);
with MeineCheckBox do
begin
Parent := self;
Top := 10;
Left := 10;
Height := 10;
Width := 10;
end;
// Jetzt zeigt MeineCheckBox auf die eben erstellte Checkbox
MeineCheckBox := TCheckBox.Create(self);
with MeineCheckBox do
begin
Parent := self;
Top := 10;
Left := 10;
Height := 10;
Width := 10;
end;
// Und jetzt zeigt MeineCheckBox auf die 2. erstellte CheckBox
Ob MeineCheckBox auf eine CheckBox zeigt kannst du mit Assigned(MeineCheckbox) überprüfen. Aber achtung: damit das klappt mit FreeAndNil freigeben!
Wenn du mehrere Checkboxen dynamisch erstellen willst bietet sich hier ein Array oder eine ObjectList an.
Du gibst der CheckBox einen Namen und wenn du darauf zugreifen willst suchst du nach diesem namen:
Delphi-Quellcode:
with TCheckBox.Create(self) do
begin
Parent := self;
Top := 10;
Left := 10;
Height := 10;
Width := 10;
name := 'MeineCheckBox';
end;
with (FindComponent('MeineCheckBox') as TCheckBox).Caption := 'bla';
Du verwendest Nachrichten... SendMessage und so... Dazu brauchst du aber das
Handle von der CheckBox... hab ich auch noch nie gemacht^^