You've already forked lazarus-ccr
Add property Cascade (patch by teejaydub - #22989)
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2598 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -108,6 +108,7 @@ type
|
||||
accidentally added in first release. }
|
||||
property DateMode;
|
||||
property UseDefaultSeparators;
|
||||
property Cascade;
|
||||
//events:
|
||||
property OnChange;
|
||||
property OnCheckBoxChange;
|
||||
|
@ -115,6 +115,7 @@ type
|
||||
|
||||
TCustomZVDateTimePicker = class(TCustomControl)
|
||||
private
|
||||
FCascade: Boolean;
|
||||
FCenturyFrom, FEffectiveCenturyFrom: Word;
|
||||
FDateDisplayOrder: TDateDisplayOrder;
|
||||
FKind: TDateTimeKind;
|
||||
@ -341,6 +342,7 @@ type
|
||||
property Time: TTime read GetTime write SetTime;
|
||||
property Date: TDate read GetDate write SetDate;
|
||||
property DateMode: TDTDateMode read FDateMode write SetDateMode;
|
||||
property Cascade: Boolean read FCascade write FCascade default False;
|
||||
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
@ -401,6 +403,7 @@ type
|
||||
property Date;
|
||||
property Time;
|
||||
property UseDefaultSeparators;
|
||||
property Cascade;
|
||||
// events:
|
||||
property OnChange;
|
||||
property OnCheckBoxChange;
|
||||
@ -430,6 +433,8 @@ function IsNullDate(DT: TDateTime): Boolean;
|
||||
|
||||
implementation
|
||||
|
||||
uses DateUtils;
|
||||
|
||||
function NumberOfDaysInMonth(const Month, Year: Word): Word;
|
||||
begin
|
||||
Result := 0;
|
||||
@ -2059,6 +2064,9 @@ var
|
||||
N: Word;
|
||||
begin
|
||||
SelectMonth;
|
||||
if Cascade then
|
||||
SetDateTime(IncMonth(DateTime))
|
||||
else begin
|
||||
YMD := GetYYYYMMDD(True);
|
||||
|
||||
if YMD.Month >= 12 then
|
||||
@ -2072,6 +2080,7 @@ begin
|
||||
|
||||
SetYYYYMMDD(YMD);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.IncreaseYear;
|
||||
var
|
||||
@ -2092,6 +2101,9 @@ var
|
||||
YMD: TYMD;
|
||||
begin
|
||||
SelectDay;
|
||||
if Cascade then
|
||||
SetDateTime(IncDay(DateTime))
|
||||
else begin
|
||||
YMD := GetYYYYMMDD(True);
|
||||
|
||||
if YMD.Day >= NumberOfDaysInMonth(YMD.Month, YMD.Year) then
|
||||
@ -2101,6 +2113,7 @@ begin
|
||||
|
||||
SetYYYYMMDD(YMD);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.DecreaseMonth;
|
||||
var
|
||||
@ -2108,6 +2121,9 @@ var
|
||||
N: Word;
|
||||
begin
|
||||
SelectMonth;
|
||||
if Cascade then
|
||||
SetDateTime(IncMonth(DateTime, -1))
|
||||
else begin
|
||||
YMD := GetYYYYMMDD(True);
|
||||
|
||||
if YMD.Month <= 1 then
|
||||
@ -2121,6 +2137,7 @@ begin
|
||||
|
||||
SetYYYYMMDD(YMD);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.DecreaseYear;
|
||||
var
|
||||
@ -2139,6 +2156,9 @@ var
|
||||
YMD: TYMD;
|
||||
begin
|
||||
SelectDay;
|
||||
if Cascade then
|
||||
SetDateTime(IncDay(DateTime, -1))
|
||||
else begin
|
||||
YMD := GetYYYYMMDD(True);
|
||||
|
||||
if YMD.Day <= 1 then
|
||||
@ -2148,12 +2168,16 @@ begin
|
||||
|
||||
SetYYYYMMDD(YMD);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.IncreaseHour;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectHour;
|
||||
if Cascade then
|
||||
SetDateTime(IncHour(DateTime))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.Hour >= 23 then
|
||||
@ -2163,12 +2187,16 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.IncreaseMinute;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectMinute;
|
||||
if Cascade then
|
||||
SetDateTime(IncMinute(DateTime))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.Minute >= 59 then
|
||||
@ -2178,12 +2206,16 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.IncreaseSecond;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectSecond;
|
||||
if Cascade then
|
||||
SetDateTime(IncSecond(DateTime))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.Second >= 59 then
|
||||
@ -2193,12 +2225,16 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.IncreaseMiliSec;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectMiliSec;
|
||||
if Cascade then
|
||||
SetDateTime(IncMilliSecond(DateTime))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.MiliSec >= 999 then
|
||||
@ -2208,12 +2244,16 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.DecreaseHour;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectHour;
|
||||
if Cascade then
|
||||
SetDateTime(IncHour(DateTime, -1))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.Hour <= 0 then
|
||||
@ -2223,12 +2263,16 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.DecreaseMinute;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectMinute;
|
||||
if Cascade then
|
||||
SetDateTime(IncMinute(DateTime, -1))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.Minute <= 0 then
|
||||
@ -2238,12 +2282,16 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.DecreaseSecond;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectSecond;
|
||||
if Cascade then
|
||||
SetDateTime(IncSecond(DateTime, -1))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.Second <= 0 then
|
||||
@ -2253,12 +2301,16 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.DecreaseMiliSec;
|
||||
var
|
||||
HMSMs: THMSMs;
|
||||
begin
|
||||
SelectMiliSec;
|
||||
if Cascade then
|
||||
SetDateTime(IncMilliSecond(DateTime, -1))
|
||||
else begin
|
||||
HMSMs := GetHMSMs(True);
|
||||
|
||||
if HMSMs.MiliSec <= 0 then
|
||||
@ -2268,6 +2320,7 @@ begin
|
||||
|
||||
SetHMSMs(HMSMs);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TCustomZVDateTimePicker.ChangeAMPM;
|
||||
var
|
||||
@ -3253,6 +3306,7 @@ begin
|
||||
FTextEnabled := True;
|
||||
FCalendarForm := nil;
|
||||
FDoNotArrangeControls := True;
|
||||
FCascade := False;
|
||||
|
||||
AdjustEffectiveDateDisplayOrder;
|
||||
|
||||
|
Reference in New Issue
Block a user