Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Grafik / Sound / Multimedia (https://www.delphipraxis.net/21-library-grafik-sound-multimedia/)
-   -   Delphi Schattierten Text ausgeben (https://www.delphipraxis.net/68920-schattierten-text-ausgeben.html)

Matze 8. Mai 2006 09:21


Schattierten Text ausgeben
 
Liste der Anhänge anzeigen (Anzahl: 3)
Matti Hat hier eine Unit veröffentlicht, mit der es möglich ist, Text mit einem Schatten versehen auf ein Canvas zu zeichnen.

Diese Unit stellt die Funktion DrawShadowText aus der ComCtl32.dll zur Verfügung. Bei Windowsversionen unter XP oder ohne Windows XP Manifest wird eine Ersatzfunktion zum Darstellen des Schattens verwendet.

Wie es ohne die VCL geht (nonVCL), zeigt Matti hier.


Der Übersichtlichkeit halber befinden sich die Units im Anhang und auch der Demo-Screenshot. ;)

Demo 1 wird von folgendem Code erzeugt. Hier ist der Schatten etwas verpixelt, da kein XP-Manifest eingebunden ist.

Delphi-Quellcode:
Canvas.Font.Name := 'Verdana';
Canvas.Font.Size := 10;
Canvas.Font.Style := [fsbold];
DrawShadowText(Canvas, 200, 200, 'Hallo, dies ist eine DrawShadowText-Demo!',
  clBlue, clGray, 1, 1)
Mit XP-Manifest sieht das ganze weicher aus (Demo 2):

Delphi-Quellcode:
Canvas.Font.Name := 'Verdana';
Canvas.Font.Size := 10;
Canvas.Font.Style := [fsbold];
DrawShadowText(Canvas, 100, 200, 'Hallo, dies ist eine DrawShadowText-Demo!',
  clBlue, clGray, 4, 4);
Mit DrawShadowTextR() lassen sich noch tollere Effekte erzielen. Spielt einfach damit herum. :zwinker: Demo 3 wird so erzeugt:

Delphi-Quellcode:
Canvas.Font.Name := 'Verdana';
Canvas.Font.Size := 14;
DrawShadowTextR(Canvas, Rect(200, 200, 450, 450), 400, 200,
  'Hierbei handelt es sich um einen längeren Text, der ' + 
  'automatisch umgebrochen werden sollte, sofern er nicht ' +
  'in das TRect passt.',
  clBlue, clGray, 3, 3, DT_CENTER or DT_WORDBREAK);


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz