Danke, kam gerade durch stöbern in der
Api auch auf SetTextAlign. Insoweit klappt es jetzt. Wobei wir dann aber beim nächsten Problem wären, denn einerseits soll der Text auf der gleichen Grundlinie sein, auf der anderen Seite hat es eine Oberkannte. Somit müsste ich jetzt die Höhe haben...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
procedure TextRect(ACanvas: TCanvas; X, Y: Integer; Txt: String);
var
Size: TSize;
begin
ACanvas.Brush.Style := bsClear;
ACanvas.Pen.Color := clRed;
Size := ACanvas.TextExtent(Txt);
ACanvas.Rectangle(Rect(X, Y, X + Size.cx, Y - Size.cy));
end;
var
d: Integer;
begin
Canvas.Font.Name := 'Arial';
SetTextAlign(Canvas.Handle, TA_BASELINE);
Canvas.Font.Size := 10;
Canvas.TextOut(100, 100, 'Hallo');
TextRect(Canvas, 100, 100, 'Hallo');
Canvas.Font.Size := 28;
Canvas.TextOut(150, 100, 'Welt');
TextRect(Canvas, 150, 100, 'Welt');
end;
... ich versuche mal was.