Einzelnen Beitrag anzeigen

Nic2012

Registriert seit: 2. Mai 2012
62 Beiträge
 
#1

TLabeledEdit ableiten

  Alt 12. Jun 2012, 14:53
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.
  Mit Zitat antworten Zitat