Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#11

AW: Canvas.TextOut zentrieren

  Alt 15. Dez 2011, 09:48
Also bei mir sieht das hier ganz ordentlich aus:
Delphi-Quellcode:
procedure TFormTest.FormPaint(Sender: TObject);
const
  DRAWFLAGS = DT_SINGLELINE or DT_CENTER or DT_VCENTER;
  YOffset = 35;
var
  s: string;
  R: TRect;
  OldFont: TFont;

  procedure DrawRect;
  begin
    R.Top := R.Top + YOffset;
    R.Bottom := R.Bottom + YOffset;
    DrawText(Canvas.Handle, PChar(s), -1, R, DRAWFLAGS);
  end;

begin
  OldFont := TFont.Create;
  try
    //alten Font sichern
    OldFont.Assign(Canvas.Font);
    R := Rect(0, 0, ClientWidth, YOffset);
    s := 'Erste Zeile';
    DrawRect;
    Canvas.Font.Size := 14;
    Canvas.Font.Style := [fsBold];
    s := 'Zweite Zeile';
    DrawRect;
    Canvas.Font.Size := 12;
    Canvas.Font.Style := [fsBold, fsItalic];
    s := 'Dritte Zeile';
    DrawRect;
    Canvas.Font.Size := 20;
    Canvas.Font.Name := 'Times New Roman';
    Canvas.Font.Style := [fsItalic];
    s := 'Vierte Zeile';
    DrawRect;
    //Gesicherten Font wiederherstellen
    Canvas.Font.Assign(OldFont);
  finally
    OldFont.Free;
  end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat