[Lazarus] Return of Frame3D issue

Frank Church vfclists at gmail.com
Tue May 1 14:43:04 CEST 2012


On 1 May 2012 13:14, patspiper <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> 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
> 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.

-- 
Frank Church

=======================
http://devblog.brahmancreations.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20120501/e51c8ecb/attachment-0003.html>


More information about the Lazarus mailing list