On January 6, 2018 8:14:30 PM GMT+01:00, Alexander Hofmann via Lazarus <[email protected]> wrote: >Dear all, > >I spend some time debugging a programming error (read: >misinterpretation >of available documentation) and though I should share my findings... > >I wanted to have a TChart series drawn with a dashed line, the >pen-style >"psDashed" had two short dashes for my eyes, so I used "psPattern" and >set the Pen-Pattern as such: > >const > Pattern:array [0..7] of longint=(1, 1, 1, 1, 0, 0, 0, 0) > >This is wrong of course; however reading some google I thought that >each >array element in the TPenPattern array describes one pixel. The problem >now was, that Qt produces quite reasonable results: a 4-pixel dashed >line. Also GTK2 did the job - if the line was drawn _outside_ any >Paint-Message. > >In that case (e.g. when actually setting this as a Pen-Pattern for a >Chart series), the X-Function 58 (SetDashes) produced the Errorcode 2 >(Out of range) and the Program ended directly at the 1st Paint-Event - >leaving Lazarus and GDB in the wild with no backtrace or alike. > >Of course it works now with the Pattern > >const > Pattern:array [0..1] of longint=(4, 4) > >But: I think that, if this is the correct way to do it, and the value >"0" for any portion of the pattern is indeed not allowed (as stated in >the X-Documentation e.g. here: >https://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#requests:SetDashes), >shouldn't TPen.SetPattern raise an exception when an invalid pattern is >given?
Don't think so. The gtk implementation should have checked this and probably skip the 0 >I don't know about other OSes / Widgestsets, if there are the same >"rules". Imo the QT implementation should be adapted to behave the same. Wat does Delphi in this case? >I could try to file a bugreport / try to provide a patch; but maybe >it's >enough to cite the X-Docs somewhere in the Lazarus-Documentation? What >do you think? We shouldn't "copy"the x behaviour, but behave the same as Delphi. Marc -- _______________________________________________ Lazarus mailing list [email protected] https://lists.lazarus-ide.org/listinfo/lazarus
