[Lazarus] Return of Frame3D issue

patspiper patspiper at gmail.com
Tue May 1 14:47:36 CEST 2012


On 01/05/12 15:43, Frank Church wrote:
>
>
> On 1 May 2012 13:14, patspiper <patspiper at gmail.com 
> <mailto:patspiper at gmail.com>> wrote:
>
>     On 01/05/12 14:56, Juha Manninen wrote:
>>     On Mon, Apr 30, 2012 at 11:15 PM, Frank Church
>>     <vfclists at gmail.com <mailto:vfclists at gmail.com>> wrote:
>>
>>         In 0.9.30 it is defined in lclintf.h as
>>
>>         function Frame3d(DC: HDC; var ARect: TRect; const FrameWidth
>>         : integer; const Style : TGraphicsBevelCut): Boolean; {$IFDEF
>>         IF_BASE_MEMBER}virtual;{$ENDIF} and is also in the Graphics
>>         unit as     procedure Frame3d(var ARect: TRect; const
>>         FrameWidth: integer; const Style: TGraphicsBevelCut); virtual;
>>
>>         The control I am working with, TJanPanelButton uses the
>>         signature in lclintfh.inc calling it as Frame3d(
>>         Self.Canvas.Handle, R, FFrameWidth, bvRaised );
>>
>>         Juha Mahinnen added a patch to Extctrls to match the Delphi
>>         implementation here -
>>         http://docwiki.embarcadero.com/Libraries/en/Vcl.ExtCtrls.Frame3D.
>>         Although it matches the Delphi definition is it in the wrong
>>         place as it affects the apparently original Lazarus
>>         implementation?
>>
>>         In the mean time I have to ifdef it and call
>>         Self.Canvas.Frame3D(R, FFrameWidth, bvRaised ) instead of
>>         Frame3d( Self.Canvas.Handle, R, FFrameWidth, bvRaised ) which
>>         matches the definition of TCanvas in Graphics. Is that any good?
>>
>>
>>     I am not sure if I understand the problem. Is there an ambiguity
>>     between this :
>>       Frame3d( Self.Canvas.Handle, R, FFrameWidth, bvRaised );
>>     and this :
>>       Self.Canvas.Frame3D(R, FFrameWidth, bvRaised );
>
>     I think he wants to use
>     LCLIntf.Frame3d(DC: HDC; var ARect: TRect; const FrameWidth :
>     integer; const Style : TGraphicsBevelCut): Boolean
>
>     In that case, he must add LCLIntf to his uses clause.
>
>     Stephano
>
>     --
>     _______________________________________________
>     Lazarus mailing list
>     Lazarus at lists.lazarus.freepascal.org
>     <mailto:Lazarus at lists.lazarus.freepascal.org>
>     http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
>
> Both LCLIntf and Extctrls are already declared in the uses clause, but 
> it appears that definining the new Frame3D procedure in ExtCtrls 
> overrides the definition in LCLIntf, so it raises the question of 
> whether the new Frame3D definition should be in another unit in order 
> not to override the other definition.
Which frame3d in ExtCtrls is hiding LCLIntf.frame3d?

In any case, you can qualify it by using LCLIntf.frame3d(...)

Stepahno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20120501/85afec7c/attachment-0003.html>


More information about the Lazarus mailing list