Hi Dominique, The portable equivalent is in LclIntf, but it's not implemented in all widgetsets. Last fall I was playing around with this function for Carbon. Not sure where I left it but here's what I came up with. Maybe you could implement it for non-win32 widgetsets.
Thanks.
function TCarbonWidgetSet.GetCharABCWidths(DC: HDC; p2, p3: UINT;
const ABCStructs): Boolean;
type
TABCArray = array[0..255] of TABC;
PABCArray = ^TABCArray;
var
ABCPtr : PABCArray;
CharNum : Integer;
CharStr : string;
CharSize : TSize;
begin
ABCPtr := PABCArray(@ABCStructs);
for CharNum := p2 to p3 do
begin
CharStr := Chr(CharNum);
GetTextExtentPoint(DC, PChar(CharStr), 1, CharSize);
ABCPtr^[CharNum-p2].abcA := 0;
ABCPtr^[CharNum-p2].abcB := CharSize.cx;
ABCPtr^[CharNum-p2].abcC := 0;
end;
Result := True;
end;
-----Original Message-----
From: [EMAIL PROTECTED] on behalf of Dominique Louis
Sent: Sun 2/17/2008 1:40 PM
To: General mailing list
Subject: [Lazarus] Lazarus Equivalent of GetCharABCWidths API call
Hi All,
What is the portable equivalent of the Win32 GetCharABCWidths API call?
Would Canvas.TextWidth be enough?
Thanks,
Dominique.
_______________________________________________
Lazarus mailing list
[email protected]
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
<<winmail.dat>>
_______________________________________________ Lazarus mailing list [email protected] http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
