修复pl_cindy的Panel系列控件在gtk3出错的bug
lazarus trunk使用pl_cindy的Panel系列控件时在gtk3在有个严重的bug,在ide拖入cyPanel等Panel控件或代码生成的控件有caption有文字时会出现:

经排查,发现绘制caption的文字时,执行到cyGraphics.pas单元的cyDrawText出错。
procedure cyDrawText(const CanvasHandle: Cardinal; const Text: String; var Rect: TRect; TextFormat: LongInt);
的DrawText(CanvasHandle, PChar(Text), -1, Rect, TextFormat);//执行到这行出错
这个单元CanvasHandle定义为Cardinal与lclintf定义DrawText(DC:HDC;str:PChar;Count:integer;var rect:TRect;flage:Cardinal)不一样。
修复方法:
将
procedure cyDrawText(const CanvasHandle: Cardinal; const Text: String; var Rect: TRect; TextFormat: LongInt);
改为:
procedure cyDrawText(const CanvasHandle: HDC; const Text: String; var Rect: TRect; TextFormat: LongInt);
重新编译pl_cindy就可以。

浙公网安备 33010602011771号