Da saß ich jetzt ein paar Stunden an meinem Delphi-Projekt und meine zur Laufzeit erzeugte Komponente (ein einfaches TLabel) wollte einfach nicht angezeigt werden.
Die Zuweisung von lblText.Parent := AOwner brachte eine Access Violation und weitere komische Nebeneffekte.
Die Lösung ist an sich ganz einfach (Pseudocode)

unit main;
....

procedure AddControl;
var lblMyControl: TMyControl
begin
  lblMyControl.Create(self);
  lblMyControl.Add;
end;

----

unit MyControl
....

constructor Create(AOwner: TComponent);
begin
  Self.FOwner := AOwner;
end;

procedure Add;
begin
  lblTemp := TLabel.Create(self.FOwner);
  lblTemp.Caption := 'Geilofaxiger Test';
  lblTemp.Parent := TWinControl(self.FOwner); // DARAUF kommts an!
end

0 Comments

Leave a Reply