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

Reply via email to