tvplanit: Clear TVpMonthView's event array before painting. See https://forum.lazarus.freepascal.org/index.php/topic,62366.msg471573.html

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8713 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2023-02-19 12:30:17 +00:00
parent 87a257bf41
commit 3f96acc701
3 changed files with 14 additions and 4 deletions

View File

@ -207,7 +207,7 @@ procedure LoadImageFromRCDATA(AImage: TImage; ABaseResName: String;
function GetScrollbarHeight: Integer; function GetScrollbarHeight: Integer;
function GetScrollbarWidth: Integer; function GetScrollbarWidth: Integer;
procedure FixLabels(AForm: TCustomForm); procedure FixLabels({%H-}AForm: TCustomForm);
procedure Unused(const A1); overload; procedure Unused(const A1); overload;
procedure Unused(const A1, A2); overload; procedure Unused(const A1, A2); overload;

View File

@ -278,6 +278,7 @@ type
procedure PaintToCanvas(ACanvas: TCanvas; ARect: TRect; Angle: TVpRotationAngle; procedure PaintToCanvas(ACanvas: TCanvas; ARect: TRect; Angle: TVpRotationAngle;
ADate: TDateTime); ADate: TDateTime);
} }
procedure ClearEventArray;
procedure RenderToCanvas(RenderCanvas: TCanvas; RenderIn: TRect; procedure RenderToCanvas(RenderCanvas: TCanvas; RenderIn: TRect;
Angle: TVpRotationAngle; Scale: Extended; RenderDate: TDateTime; Angle: TVpRotationAngle; Scale: Extended; RenderDate: TDateTime;
StartLine, StopLine: Integer; UseGran: TVpGranularity; StartLine, StopLine: Integer; UseGran: TVpGranularity;
@ -606,6 +607,14 @@ begin
Result := descrStr; Result := descrStr;
end; end;
procedure TVpMonthView.ClearEventArray;
var
I: Integer;
begin
for I := 0 to High(mvEventArray) do
mvEventArray[I] := Default(TVpEventRec);
end;
procedure TVpMonthView.LoadLanguage; procedure TVpMonthView.LoadLanguage;
var var
item: TMenuItem; item: TMenuItem;

View File

@ -88,6 +88,7 @@ procedure TVpMonthViewPainter.Clear;
begin begin
RenderCanvas.Brush.Color := RealColor; RenderCanvas.Brush.Color := RealColor;
RenderCanvas.FillRect(RenderIn); RenderCanvas.FillRect(RenderIn);
FMonthView.ClearEventArray;
end; end;
procedure TVpMonthViewPainter.DrawBorders; procedure TVpMonthViewPainter.DrawBorders;
@ -579,9 +580,9 @@ begin
{ Store TextRect and Event in EventArray } { Store TextRect and Event in EventArray }
with TVpMonthViewOpener(FMonthView) do begin with TVpMonthViewOpener(FMonthView) do begin
mvEventArray[visibleEvents].Rec := TextRect;
mvEventArray[visibleEvents].Event := TVpEvent(EventList.List^[j]);
Inc(visibleEvents); Inc(visibleEvents);
mvEventArray[visibleEvents - 1].Rec := TextRect;
mvEventArray[visibleEvents - 1].Event := TVpEvent(EventList.List^[j]);
end; end;
{ Move TextRect down one line for the next item... } { Move TextRect down one line for the next item... }
@ -807,7 +808,7 @@ begin
try try
SelectClipRgn(RenderCanvas.Handle, Rgn); SelectClipRgn(RenderCanvas.Handle, Rgn);
{ clear client area } { clear client area and event array }
Clear; Clear;
{ measure the row heights } { measure the row heights }