Folgendes Problem:
Ich versuche eine neue Komponente basierend auf TPanel zu erstellen.
Diese Komponente soll unter anderem ein TLabel haben.
Die Eigenschaften dieses Labels möchte ich im Objektinspektor verändern können.
Das funktioniert auch.
Nur wenn ich dann mein Programm starte, gehen die eingestellten Eigenschaften verloren.
Also ich trage in Caption "Hallo hier bin ich" ein.
"Hallo hier bin ich" ist auch sofort auf dem Panel zu sehen.
Nach dem Programmstart steht da nix mehr.
Was mache ich falsch?
Code:
interface
uses
System.SysUtils, System.Classes,
Vcl.Controls,
Vcl.ExtCtrls,
Vcl.StdCtrls;
type
TTestComponent = class(TPanel)
private
FLabel: TLabel;
protected
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property MyLabel: TLabel read FLabel write FLabel;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TTestComponent]);
end;
{ TTestComponent }
constructor TTestComponent.Create(AOwner: TComponent);
begin
inherited;
FLabel := TLabel.Create(Self);
FLabel.Parent := Self;
FLabel.Align := alClient;
end;
destructor TTestComponent.Destroy;
begin
FreeAndNil(FLabel);
inherited;
end;
end.