You've already forked lazarus-ccr
tvplanit: Fix calculation of month count needed for TVpGanttView.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8458 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -884,12 +884,25 @@ end;
|
||||
function TVpGanttView.GetNumMonths: Integer;
|
||||
var
|
||||
dm1, dm2: Integer;
|
||||
y1, m1, d1: Word;
|
||||
y2, m2, d2: Word;
|
||||
begin
|
||||
if (FStartDate <> NO_DATE) then
|
||||
begin
|
||||
DecodeDate(FStartDate, y1, m1, d1);
|
||||
DecodeDate(FEndDate, y2, m2, d2);
|
||||
if (y1 = y2) then
|
||||
Result := m2 - m1 + 1
|
||||
else
|
||||
Result := 13 - m1 + m2 + (y2 - y1 - 1)*12;
|
||||
{
|
||||
else
|
||||
Result := (y2 - y1 - 1) * 12;
|
||||
dm1 := trunc(StartOfTheMonth(FStartDate));
|
||||
dm2 := trunc(StartOfTheMonth(FEndDate));
|
||||
dm2 := trunc(StartOfTheMonth(FEndDate)) + 1;
|
||||
writeln(datetostr(dm1), ' ', datetostr(dm2));
|
||||
Result := MonthsBetween(dm1, dm2) + 1;
|
||||
}
|
||||
end else
|
||||
Result := 0;
|
||||
end;
|
||||
@ -1268,24 +1281,34 @@ begin
|
||||
x1 := FixedColWidth;
|
||||
y1 := 0;
|
||||
y2 := FTotalColHeaderHeight;
|
||||
dm := FStartDate;
|
||||
for i := 0 to n - 1 do
|
||||
|
||||
if n > 1 then
|
||||
begin
|
||||
if i = 0 then begin
|
||||
nDays := DaysInMonth(dm) - DayOf(dm) + 1;
|
||||
dm := StartOfTheMonth(dm);
|
||||
end else
|
||||
if i = n-1 then
|
||||
nDays := DayOf(FEndDate)
|
||||
else
|
||||
nDays := DaysInMonth(dm);
|
||||
if dm + nDays > FEndDate then
|
||||
nDays := trunc(FEndDate) - trunc(dm) + 1;
|
||||
dm := FStartDate;
|
||||
for i := 0 to n - 1 do
|
||||
begin
|
||||
if i = 0 then begin
|
||||
nDays := DaysInMonth(dm) - DayOf(dm) + 1;
|
||||
dm := StartOfTheMonth(dm);
|
||||
end else
|
||||
if i = n-1 then
|
||||
nDays := DayOf(FEndDate)
|
||||
else
|
||||
nDays := DaysInMonth(dm);
|
||||
if dm + nDays > FEndDate then
|
||||
nDays := trunc(FEndDate) - trunc(dm) + 1;
|
||||
x2 := x1 + nDays * ColWidth;
|
||||
FMonthRecords[i].Rect := Rect(x1, y1, x2, y2);
|
||||
FMonthRecords[i].Date := dm;
|
||||
dm := IncMonth(dm, 1);
|
||||
x1 := x2;
|
||||
end;
|
||||
end else
|
||||
begin
|
||||
nDays := DayOf(FEndDate) - DayOf(FStartDate) + 1;
|
||||
x2 := x1 + nDays * ColWidth;
|
||||
FMonthRecords[i].Rect := Rect(x1, y1, x2, y2);
|
||||
FMonthRecords[i].Date := dm;
|
||||
dm := IncMonth(dm, 1);
|
||||
x1 := x2;
|
||||
FMonthRecords[0].Rect := Rect(x1, y1, x2, y2);
|
||||
FMonthRecords[0].Date := FStartDate;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Reference in New Issue
Block a user