Einzelnen Beitrag anzeigen

Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#1

Wie viele Pixel liegen unter der BASELINE?

  Alt 13. Jan 2007, 17:22
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
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat