TRxCustomDateRangeEdit - fix set month, add new events

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3245 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2014-06-27 05:35:30 +00:00
parent 42c3fcce2b
commit 37ab39c47d

View File

@ -14,6 +14,9 @@ type
TRxCustomDateRangeEdit = class(TCustomControl) TRxCustomDateRangeEdit = class(TCustomControl)
private private
FOnEditChange: TNotifyEvent; FOnEditChange: TNotifyEvent;
FOnEditClick: TNotifyEvent;
FOnEditEnter: TNotifyEvent;
FOnEditExit: TNotifyEvent;
FsbDecYear: TSpeedButton; FsbDecYear: TSpeedButton;
FsbDecMonth: TSpeedButton; FsbDecMonth: TSpeedButton;
FsbIncYear: TSpeedButton; FsbIncYear: TSpeedButton;
@ -31,11 +34,17 @@ type
procedure SetPeriod(AValue: TDateTime); procedure SetPeriod(AValue: TDateTime);
procedure SetYear(AValue: word); procedure SetYear(AValue: word);
procedure InternalOnEditChange(Sender: TObject); procedure InternalOnEditChange(Sender: TObject);
procedure InternalOnEditClick(Sender: TObject);
procedure InternalOnEditEnter(Sender: TObject);
procedure InternalOnEditExit(Sender: TObject);
protected protected
class function GetControlClassDefaultSize: TSize; override; class function GetControlClassDefaultSize: TSize; override;
procedure FillMonthNames; procedure FillMonthNames;
procedure SetAutoSize(AValue: Boolean); override; procedure SetAutoSize(AValue: Boolean); override;
procedure EditChange; virtual; procedure EditChange; virtual;
procedure EditClick; virtual;
procedure EditEnter; virtual;
procedure EditExit; virtual;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
destructor Destroy; override; destructor Destroy; override;
@ -43,6 +52,9 @@ type
property Month:word read GetMonth write SetMonth; property Month:word read GetMonth write SetMonth;
property Period:TDateTime read GetPeriod write SetPeriod; property Period:TDateTime read GetPeriod write SetPeriod;
property OnChange: TNotifyEvent read FOnEditChange write FOnEditChange; property OnChange: TNotifyEvent read FOnEditChange write FOnEditChange;
property OnClick: TNotifyEvent read FOnEditClick write FOnEditClick;
property OnEnter: TNotifyEvent read FOnEditEnter write FOnEditEnter;
property OnExit: TNotifyEvent read FOnEditExit write FOnEditExit;
end; end;
type type
@ -52,6 +64,9 @@ type
property Year; property Year;
property Month; property Month;
property OnChange; property OnChange;
property OnClick;
property OnEnter;
property OnExit;
end; end;
implementation implementation
@ -108,7 +123,7 @@ end;
procedure TRxCustomDateRangeEdit.SetMonth(AValue: word); procedure TRxCustomDateRangeEdit.SetMonth(AValue: word);
begin begin
if (AValue>0) and (AValue < 13) then if (AValue>0) and (AValue < 13) then
FEditMonth.ItemIndex:=AValue; FEditMonth.ItemIndex:=AValue-1;
end; end;
procedure TRxCustomDateRangeEdit.SetPeriod(AValue: TDateTime); procedure TRxCustomDateRangeEdit.SetPeriod(AValue: TDateTime);
@ -130,6 +145,21 @@ begin
EditChange; EditChange;
end; end;
procedure TRxCustomDateRangeEdit.InternalOnEditClick(Sender: TObject);
begin
EditClick;
end;
procedure TRxCustomDateRangeEdit.InternalOnEditEnter(Sender: TObject);
begin
EditEnter;
end;
procedure TRxCustomDateRangeEdit.InternalOnEditExit(Sender: TObject);
begin
EditExit;
end;
class function TRxCustomDateRangeEdit.GetControlClassDefaultSize: TSize; class function TRxCustomDateRangeEdit.GetControlClassDefaultSize: TSize;
begin begin
Result.CX := 80 + 70 + 23 * 4; Result.CX := 80 + 70 + 23 * 4;
@ -158,6 +188,21 @@ begin
if Assigned(FOnEditChange) then FOnEditChange(Self); if Assigned(FOnEditChange) then FOnEditChange(Self);
end; end;
procedure TRxCustomDateRangeEdit.EditClick;
begin
if Assigned(FOnEditClick) then FOnEditClick(Self);
end;
procedure TRxCustomDateRangeEdit.EditEnter;
begin
if Assigned(FOnEditEnter) then FOnEditEnter(Self);
end;
procedure TRxCustomDateRangeEdit.EditExit;
begin
if Assigned(FOnEditExit) then FOnEditExit(Self);
end;
constructor TRxCustomDateRangeEdit.Create(AOwner: TComponent); constructor TRxCustomDateRangeEdit.Create(AOwner: TComponent);
begin begin
inherited Create(AOwner); inherited Create(AOwner);
@ -219,6 +264,15 @@ begin
FEditMonth.OnChange:=@InternalOnEditChange; FEditMonth.OnChange:=@InternalOnEditChange;
FEditYear.OnChange:=@InternalOnEditChange; FEditYear.OnChange:=@InternalOnEditChange;
FEditMonth.OnClick:=@InternalOnEditClick;
FEditYear.OnClick:=@InternalOnEditClick;
FEditMonth.OnEnter:=@InternalOnEditEnter;
FEditYear.OnEnter:=@InternalOnEditEnter;
FEditMonth.OnExit:=@InternalOnEditExit;
FEditYear.OnExit:=@InternalOnEditExit;
end; end;
destructor TRxCustomDateRangeEdit.Destroy; destructor TRxCustomDateRangeEdit.Destroy;