You've already forked lazarus-ccr
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:
@ -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;
|
||||||
|
Reference in New Issue
Block a user