tvplanit: Refactor TVpDayView.SetTimeIntervals
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4781 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
parent
8cd357069e
commit
f4e4f7fb99
@ -50,3 +50,4 @@ msgstr "Info"
|
||||
#: tmainform.tabtasks.caption
|
||||
msgid "Tasks"
|
||||
msgstr "Aufgaben"
|
||||
|
||||
|
@ -1480,258 +1480,21 @@ end;
|
||||
procedure TVpDayView.SetTimeIntervals(UseGran: TVpGranularity);
|
||||
var
|
||||
I, J: Integer;
|
||||
grPerHour: Integer;
|
||||
begin
|
||||
case UseGran of
|
||||
gr60Min:
|
||||
begin
|
||||
FLineCount := 24;
|
||||
dvTimeIncSize := 60 / MinutesInDay;
|
||||
end;
|
||||
gr30Min:
|
||||
begin
|
||||
FLineCount := 48;
|
||||
dvTimeIncSize := 30 / MinutesInDay;
|
||||
end;
|
||||
gr20Min:
|
||||
begin
|
||||
FLineCount := 72;
|
||||
dvTimeIncSize := 20 / MinutesInDay;
|
||||
end;
|
||||
gr15Min:
|
||||
begin
|
||||
FLineCount := 96;
|
||||
dvTimeIncSize := 15 / MinutesInDay;
|
||||
end;
|
||||
gr10Min:
|
||||
begin
|
||||
FLineCount := 144;
|
||||
dvTimeIncSize := 10 / MinutesInDay;
|
||||
end;
|
||||
gr06Min:
|
||||
begin
|
||||
FLineCount := 240;
|
||||
dvTimeIncSize := 6 / MinutesInDay;
|
||||
end;
|
||||
gr05Min:
|
||||
begin
|
||||
FLineCount := 288;
|
||||
dvTimeIncSize := 5 / MinutesInDay;
|
||||
end;
|
||||
end;
|
||||
FLineCount := MinutesInDay div GranularityMinutes[UseGran];
|
||||
dvTimeIncSize := GranularityMinutes[UseGran] / MinutesInDay;
|
||||
grPerHour := 60 div GranularityMinutes[UseGran];
|
||||
|
||||
SetLength(dvLineMatrix, NumDays);
|
||||
for I := 0 to pred(NumDays) do
|
||||
SetLength(dvLineMatrix[I], LineCount + 1);
|
||||
|
||||
for I := 0 to pred(NumDays) do begin
|
||||
SetLength(dvLineMatrix[I], LineCount);
|
||||
for J := 0 to pred(LineCount) do begin
|
||||
dvLineMatrix[I,J].Time := 0.0;
|
||||
if J = 0 then begin
|
||||
dvLineMatrix[I,J].Hour := TVpHours(0);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end
|
||||
else begin
|
||||
case UseGran of
|
||||
gr60Min:
|
||||
begin
|
||||
dvLineMatrix[I,J].Time := J * (60 / MinutesInDay);
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end;
|
||||
|
||||
gr30Min:
|
||||
begin
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J div 2);
|
||||
case (J mod 2) of
|
||||
0: begin
|
||||
dvLineMatrix[I,J].Time := (J div 2) * (60 / MinutesInDay);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end;
|
||||
1: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize;
|
||||
dvLineMatrix[I,J].Minute := 30;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
gr20Min:
|
||||
begin
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J div 3);
|
||||
case (J mod 3) of
|
||||
0: begin
|
||||
dvLineMatrix[I,J].Time := (J div 3) * (60 / MinutesInDay);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end;
|
||||
1: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize;
|
||||
dvLineMatrix[I,J].Minute := 20;
|
||||
end;
|
||||
2: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 2;
|
||||
dvLineMatrix[I,J].Minute := 40;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
gr15Min:
|
||||
begin
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J div 4);
|
||||
case J mod 4 of
|
||||
0: begin
|
||||
dvLineMatrix[I,J].Time := (J div 4) * (60 / MinutesInDay);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end;
|
||||
1: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize;
|
||||
dvLineMatrix[I,J].Minute := 15;
|
||||
end;
|
||||
2: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 2;
|
||||
dvLineMatrix[I,J].Minute := 30;
|
||||
end;
|
||||
3: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 3;
|
||||
dvLineMatrix[I,J].Minute := 45;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
gr10Min:
|
||||
begin
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J div 6);
|
||||
case (J mod 6) of
|
||||
0: begin
|
||||
dvLineMatrix[I,J].Time := (J div 6) * (60 / MinutesInDay);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end;
|
||||
1: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize;
|
||||
dvLineMatrix[I,J].Minute := 10;
|
||||
end;
|
||||
2: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 2;
|
||||
dvLineMatrix[I,J].Minute := 20;
|
||||
end;
|
||||
3: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 3;
|
||||
dvLineMatrix[I,J].Minute := 30;
|
||||
end;
|
||||
4: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 4;
|
||||
dvLineMatrix[I,J].Minute := 40;
|
||||
end;
|
||||
5: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 5;
|
||||
dvLineMatrix[I,J].Minute := 50;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
gr06Min:
|
||||
begin
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J div 10);
|
||||
case (J mod 10) of
|
||||
0: begin
|
||||
dvLineMatrix[I,J].Time := (J div 10) * (60 / MinutesInDay);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end;
|
||||
1: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize;
|
||||
dvLineMatrix[I,J].Minute := 6;
|
||||
end;
|
||||
2: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 2;
|
||||
dvLineMatrix[I,J].Minute := 12;
|
||||
end;
|
||||
3: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 3;
|
||||
dvLineMatrix[I,J].Minute := 18;
|
||||
end;
|
||||
4: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 4;
|
||||
dvLineMatrix[I,J].Minute := 24;
|
||||
end;
|
||||
5: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 5;
|
||||
dvLineMatrix[I,J].Minute := 30;
|
||||
end;
|
||||
6: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 6;
|
||||
dvLineMatrix[I,J].Minute := 36;
|
||||
end;
|
||||
7: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 7;
|
||||
dvLineMatrix[I,J].Minute := 42;
|
||||
end;
|
||||
8: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 8;
|
||||
dvLineMatrix[I,J].Minute := 48;
|
||||
end;
|
||||
9: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 9;
|
||||
dvLineMatrix[I,J].Minute := 54;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
gr05Min:
|
||||
begin
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J div 12);
|
||||
case J mod 12 of
|
||||
0: begin
|
||||
dvLineMatrix[I,J].Time := (J div 12) * (60 / MinutesInDay);
|
||||
dvLineMatrix[I,J].Minute := 0;
|
||||
end;
|
||||
1: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize;
|
||||
dvLineMatrix[I,J].Minute := 5;
|
||||
end;
|
||||
2: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 2;
|
||||
dvLineMatrix[I,J].Minute := 10;
|
||||
end;
|
||||
3: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 3;
|
||||
dvLineMatrix[I,J].Minute := 15;
|
||||
end;
|
||||
4: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 4;
|
||||
dvLineMatrix[I,J].Minute := 20;
|
||||
end;
|
||||
5: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 5;
|
||||
dvLineMatrix[I,J].Minute := 25;
|
||||
end;
|
||||
6: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 6;
|
||||
dvLineMatrix[I,J].Minute := 30;
|
||||
end;
|
||||
7: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 7;
|
||||
dvLineMatrix[I,J].Minute := 35;
|
||||
end;
|
||||
8: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 8;
|
||||
dvLineMatrix[I,J].Minute := 40;
|
||||
end;
|
||||
9: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 9;
|
||||
dvLineMatrix[I,J].Minute := 45;
|
||||
end;
|
||||
10: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 10;
|
||||
dvLineMatrix[I,J].Minute := 50;
|
||||
end;
|
||||
11: begin
|
||||
dvLineMatrix[I,J].Time := Ord(dvLineMatrix[I,J].Hour) * (60 / MinutesInDay) + dvTimeIncSize * 11;
|
||||
dvLineMatrix[I,J].Minute := 55;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end; {for J...}
|
||||
end; {for I...}
|
||||
dvLineMatrix[I,J].Hour := TVpHours(J div grPerHour);
|
||||
dvLineMatrix[I,J].Minute := (J mod grPerHour) * GranularityMinutes[UseGran];
|
||||
dvLineMatrix[I,J].Time := ord(dvLineMatrix[I,J].Hour) / 24 + dvTimeIncSize * (J mod grPerHour);
|
||||
end;
|
||||
end;
|
||||
|
||||
if FLineCount <= FVisibleLines then
|
||||
FTopLine := HourToLine(h_00, FGranularity);
|
||||
|
@ -58,6 +58,8 @@ const
|
||||
((31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
|
||||
(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31));
|
||||
|
||||
GranularityMinutes: Array[TVpGranularity] of Integer = (5, 6, 10, 15, 20, 30, 60);
|
||||
|
||||
function DaysInMonth(Year, Month : Integer) : Integer;
|
||||
{-return the number of days in the specified month of a given year}
|
||||
function DefaultEpoch : Integer;
|
||||
|
Loading…
Reference in New Issue
Block a user