[fpc-pascal] Typechecking problem porting from D7

Florian Klaempfl florian at freepascal.org
Mon Sep 15 23:06:24 CEST 2008


Frank de Groot / Rent-a-Geek schrieb:
> Hi guys - after a decade using Delphi, I finally switched to FPC! I like 
> it a lot, so far.

Actually Lazarus ;)

> Porting some code, I am stuck with something that looks trivial, 
> however, and I hoped someone here can help out?

As far as I can see from the mail, you're using a windows api function 
with an lcl type (the lcl redefines a lot of windows types and provides 
some also on other OSes).

Just try:
var LBrush : Windows.TLogBrush;
ExtCreatePen( PS_COSMETIC or PS_ALTERNATE,1, LBrush,0,nil );

> (If this is the wrong place, sorry!)
> 
> The following code, compiled to a  WIN64 target gives a compile time 
> error: TeCanvas.pas(1479,62) Error: Incompatible type for arg no. 3: Got 
> "tagLOGBRUSH", expected "LOGBRUSH":
> 
> var LBrush : TLogBrush;
> ExtCreatePen( PS_COSMETIC or PS_ALTERNATE,1, LBrush,0,nil );
> 
> In LCLType, TLogbrush is defined as such:
> 
>  PLogBrush = ^TLogBrush;
>  tagLOGBRUSH = record
>    lbStyle: LongWord;
>    lbColor: TColorRef;
>    lbHatch: PtrInt;
>  end;
>  TLogBrush = tagLOGBRUSH;
>  LOGBRUSH = tagLOGBRUSH;
> 
> In redef.inc, the function header is defined as ExtCreatePen(PenStyle, 
> Width: DWORD; const Brush: TLogBrush; StyleCount: DWORD; Style: 
> Pointer): HPEN; external 'gdi32' name 'ExtCreatePen';
> 
> 
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
> 




More information about the fpc-pascal mailing list