Zitat von
LuckySpacy:
Wenn ich im Objektinspektor die Caption des Labels in 'Hurra' verändere,
dann wird auch während der Entwicklung die Caption von 'Hallo Welt' in 'Hurra' verändert.
Nach dem Starten der Form steht jetzt 'Hurra'.
Wenn ich im Objektinspektor die Caption des Labels in '' verändere,
dann wird auch während der Entwicklung die Caption von (jetzt) 'Hurra' in '' verändert.
Nach dem Starten der Form wird aber 'Hallo Welt' angezeigt.
Du darfst das Property
LabelCaption nicht an 2 Stellen (
im LabelObjekt und in Objektvariablen FLabelCaption) speichern !
Dazu folgende Änderungen am Sourcecode:
Delphi-Quellcode:
type
TTestKompo1 = class(TWinControl)
private
FLabel: TLabel;
FLabelCaption: TCaption; // Zeile löschen !
procedure SetLabelCaption(const Value: TCaption);
function GetLabelCaption:TCaption;
protected
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
// jetzt gibt es Get- & Set-Methode
property LabelCaption: TCaption read GetLabelCaption write SetLabelCaption;
end;
implementation
constructor TTestKompo1.Create(AOwner: TComponent);
begin
inherited;
FLabel := TLabel.Create(Self);
FLabel.Parent := Self;
FLabel.Top := 0;
FLabel.Left := 0;
LabelCaption := 'Hallo Welt'; // <-----
end;
destructor TTestKompo1.Destroy;
begin
FreeAndNil(FLabel);
inherited;
end;
procedure TTestKompo1.SetLabelCaption(const Value: TCaption);
begin
FLabel.Caption := Value;
end;
function TTestKompo1.GetLabelCaption: TCaption;
begin
Result := FLabel.Caption;
end;