Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#3

AW: Canvas Texte verschiedener Größen auf einer Linie ausgeben?

  Alt 4. Jan 2014, 20:49
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.
  Mit Zitat antworten Zitat