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-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| 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 Delphi-Praxis
_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden!
oder Wer lesen kann, ist klar im
Vorteil!