On 09/02/15 22:07, Mattias Gaertner wrote:
On Mon, 09 Feb 2015 21:55:59 +0200
patspiper <[email protected]> wrote:

I have finally found the trigger, though not the cause, of the dreaded
'TWinControl.WMSize loop detected' exception that prevents the use of
TCalendarDialog, TDateEdit, and TDateTimePicker with WinCE
(http://bugs.freepascal.org/view.php?id=21282). These 3 controls consist
of a TCalendar (with either Autosize=True or Align<>alNone) embedded on
a form. It is this particular autosizing/aligning which triggers the
exception as setting Autosize to False and Align to AlNone works well.

TCalendar's width is 220 while the screen's width is 240 (my WinCE
device). I tried to reproduce the error on a Linux desktop by enlarging
TCalendar to be almost as wide as the screen with no success.

Any hints/ideas on what might be going on here?
Maybe on WinCE the calendar is limited to some Width, but the WinCE
interface does not report the correct constraints.

Calendar1.Constraints.Min/MaxInterfaceWidth

In this case the LCL sets a Width and the WinCE sets another creating a
loop.
I put a TCalendar with no autosizing/aligning and a TEdit with Align=AlBottom on the main form. xxx.Constraints.Min/MaxInterfaceWidth for both components are 0/0 on WinCE and 1/0 on Linux (I used a button to trigger the output of the values).

Note that setting the calendar's autosize to true will cause the WMSize loop on program startup. This is not the case for the TEdit (setting Align to AlBottom works fine).

Stephano

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to