[Lazarus] QT bindings as defalt (was Release 1.0, part 2)

Phil Hess macpgmr at fastermac.net
Tue Dec 1 15:35:56 CET 2009


Good to know that PtInRegion is now part of LclIntf - it wasn't when I ported this and there's no way of knowing when new functions are added without monitoring closely every commit!

However, the current code works with other widgetsets. Do you know why it didn't work with Qt?

I'll look at this tonight.

Thanks for your investigation.

-Phil

----- "zeljko" <zeljko at holobit.net> wrote:

> On Monday 30 November 2009 18:17, Phil Hess wrote:
> > I wish I knew! I really don't have time (or patience) to do more
> than test
> > Orpheus against each widgetset for the stable release of Lazarus.
> >
> > A couple observations are in order:
> >
> > (1) Although once in a while I stumble across something in the
> Orpheus code
> > that allows me to fix a problem (as in the expression "Even a blind
> sow
> > occasionally finds an acorn"), in general improvements in Orpheus
> are due
> > to improvements in the LCL and widgetsets. Or in some cases, as
> happened
> > with 0.9.28, Orpheus gets worse over time through no fault of its
> own.
> 
> My fast observations & qt fixes from last night:
> 1.I've fixed crash in getRegionType function (qt) which happens when
> someone 
> create region with negative width or height.
> 
> 2.Orpheus spinner control (and maybe others) crashed under qt because
> of 
> MyMisc.ptInRegion() implementation.
> 
> function PtInRegion(RGN: HRGN; X, Y: Integer) : Boolean;
> {$IFDEF MSWINDOWS}
> begin
>   Result := Windows.PtInRegion(RGN, X, Y);
> {$ELSE}
> var
>   ARect : TRect;
>   APt   : TPoint;
> begin
>   GetRgnBox(RGN, @ARect);
>   APt.X := X;
>   APt.Y := Y;
>   Result := LclIntf.PtInRect(ARect, APt);
> {$ENDIF}
> end;
> 
>  Why is it implemented in such way when we have
>   Result := LCLIntf.ptInRegion(RGN, X, Y);
>  which doesn't crash orpheus controls under qt even
>  with buggy(was until last night) TQtRegion constructor.
> Anyway, it does not crash anymore.
> 
> 
> 
> >
> > (2) It's apparent that the LCL and widgetset maintainers never test
> their
> > changes against the CCR packages. The attitude seems to be that
> package
> > maintainers will test daily against SVN and notify of any breaks.
> Sorry,
> > can't do that.
> 
> Yes, they do that, but orpheus isn't often used seem so.I'm using
> virtualtrees 
> and it work w/o problems. From my observations (eg. ptInRegion() 
> implementation), some things need to be changed in orpheus , not in 
> widgetsets or LCL.
> 
> zeljko
> 
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus




More information about the Lazarus mailing list