So ich habe das ganze jetzt noch um ein Label erweitert:
Code:
type
TRealEdit = class(TEdit)
private
fAlignment:TAlignment;
fOnlyReals:boolean;
fLabel:TLabel;
procedure SetAlignment(Value:TAlignment);
procedure SetOnlyReals(Value:boolean);
protected
procedure SetLabel(Value:TLabel);
procedure CreateParams(var Params:TCreateParams); override;
procedure KeyPress(var Key:Char); override;
public
constructor Create(AOwner: TComponent); override;
destructor destroy; override;
published
property Alignment: TAlignment read fAlignment write SetAlignment;
property OnlyReals: Boolean read fOnlyReals write SetOnlyReals;
property RealLabel: TLabel read fLabel write SetLabel;
end;
implementation
procedure TRealEdit.SetLabel (Value : TLabel);
begin
fLabel := value;
flabel.SetSubComponent(true);
end;
constructor TRealEdit.Create(AOwner: TComponent);
begin
inherited;
FAlignment := taRightJustify;
OnlyReals := true;
FLabel := TLabel.Create(AOwner);
FLabel.Caption := 'CAPTION';
end;
destructor TRealEdit.Destroy;
begin
FLabel.Destroy;
inherited;
end;
Die Caption ist explizit gesetzt als CAPTION und steht so auch im
OI. Der Haken an der Sache ist aber, daß das Label zwar offensichtlich existiert, aber nirgends in Erscheinung tritt. Das hängt irgendwo im Nirwana. Wieso das ?