Autor Beitrag
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Fr 12.01.07 20:35 
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:
ausblenden 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: Stringvar 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!