Hi,
zur Zeit gebe ich auf einem Canvas den Text wie folgt aus und möchte in ARect das gefüllte Rechteck zurückgegeben haben:
Delphi-Quellcode:
procedure PrintText (const Ax,Ay: Integer; const ATxt: String; var ARect: TRect);
var
HL: Integer;
Hr: TRect
begin
SetTextAlign (FCanvas.Handle,TA_BaseLine);
SetRectEmpty(Hr);
HL := Length (ATxt);
Windows.DrawText(FCanvas.Handle,PChar(ATxt),Hl,Hr,DT_CALCRECT);
Windows.TextOut(FCanvas.Handle,Ax,Ay,PChar(ATxt),Length(ATxt));
with ARect do
begin
Left := Ax;
Bottom := Ay; // ???
Right := Ax+Hr.Right-Hr.Left;
Top := Bottom+Hr.Bottom-Hr.Top;
end;
end;
Nun, wie bekomme ich heraus, wie viel von der Höhe (je nach Schriftgröße mehr ioder weniger) unter der Baseline liegt, damit ich Bottom richtig setzen kann?
Link zu dsdt.info
Link ins Delphi-Forum