mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-12 06:16:05 +02:00
Qt: fixed events when month and year are changed in TCalendar. issue #23528
git-svn-id: trunk@39625 -
This commit is contained in:
parent
73d6a41ca5
commit
49e77dd55e
@ -15377,6 +15377,8 @@ end;
|
|||||||
procedure TQtCalendar.signalCurrentPageChanged(p1, p2: Integer); cdecl;
|
procedure TQtCalendar.signalCurrentPageChanged(p1, p2: Integer); cdecl;
|
||||||
var
|
var
|
||||||
Msg: TLMessage;
|
Msg: TLMessage;
|
||||||
|
ADate: QDateH;
|
||||||
|
HasChanges: Boolean;
|
||||||
begin
|
begin
|
||||||
{$IFDEF VerboseQt}
|
{$IFDEF VerboseQt}
|
||||||
writeln('TQtCalendar.SignalCurrentPageChanged p1=',p1,' p2=',p2);
|
writeln('TQtCalendar.SignalCurrentPageChanged p1=',p1,' p2=',p2);
|
||||||
@ -15384,16 +15386,33 @@ begin
|
|||||||
if InUpdate then
|
if InUpdate then
|
||||||
exit;
|
exit;
|
||||||
FillChar(Msg, SizeOf(Msg), #0);
|
FillChar(Msg, SizeOf(Msg), #0);
|
||||||
|
HasChanges := (AYear <> p1) or (AMonth <> p2);
|
||||||
if AYear <> p1 then
|
if AYear <> p1 then
|
||||||
begin
|
begin
|
||||||
Msg.Msg := LM_YEARCHANGED;
|
Msg.Msg := LM_YEARCHANGED;
|
||||||
DeliverMessage(Msg);
|
DeliverMessage(Msg);
|
||||||
|
Msg.Msg := LM_CHANGED;
|
||||||
|
DeliverMessage(Msg);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if AMonth <> p2 then
|
if AMonth <> p2 then
|
||||||
begin
|
begin
|
||||||
Msg.Msg := LM_MONTHCHANGED;
|
Msg.Msg := LM_MONTHCHANGED;
|
||||||
DeliverMessage(Msg);
|
DeliverMessage(Msg);
|
||||||
|
Msg.Msg := LM_CHANGED;
|
||||||
|
DeliverMessage(Msg);
|
||||||
|
end;
|
||||||
|
|
||||||
|
if HasChanges then
|
||||||
|
begin
|
||||||
|
ADate := QDate_create();
|
||||||
|
try
|
||||||
|
QCalendarWidget_selectedDate(QCalendarWidgetH(Widget), ADate);
|
||||||
|
QDate_setYMD(ADate, p1, p2, QDate_day(ADate));
|
||||||
|
SetSelectedDate(ADate);
|
||||||
|
finally
|
||||||
|
QDate_destroy(ADate);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user