Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
Delphi 12 Athens
|
AW: Canvas.TextOut zentrieren
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
|