Möchte ein TLabeledEdit ableiten, um ähnlich wie z.B. bei einem SpinEdit nur numerische Werte mit Angabe von Min und Max zu verwalten.
Wie bekomme ich es aber hin, wenn in das Text-Property ein Wert eingetragen wird, das neue Value-Prop auch aktualisiert wird.
Gibt es ein SetText im Vorfahr, den ich überschreiben könnte ?
Alternativ könnte man das Text-Property auch ganz ausblenden, wie macht man das in der Ableitung ?
Code:
unit LabeledEditNumeric;
interface
uses
SysUtils, Classes, Controls, StdCtrls, ExtCtrls;
type
TLabeledEditNumeric = class(TLabeledEdit)
private
protected
FValue: Integer;
FMin: Integer;
FMax: Integer;
FInc: Integer;
procedure SetValue(value: Integer);
procedure SetText(value: String);
public
published
property Value: Integer read FValue write SetValue;
property Min: Integer read FMin write FMin;
property Max: Integer read FMax write FMax;
property Increment: Integer read FInc write FInc;
end;
procedure Register;
implementation
uses dialogs;
procedure Register;
begin
RegisterComponents('LabeledEditNumeric', [TLabeledEditNumeric]);
end;
procedure TLabeledEditNumeric.SetText(value: String);
begin
Text := value;
FValue := StrToInt(value);
end;
procedure TLabeledEditNumeric.SetValue(value: Integer);
begin
FValue := value;
Text := IntToStr(FValue);
end;
end.