Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 

Schattierten Text ausgeben

  Alt 8. Mai 2006, 09:21
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. 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);
Miniaturansicht angehängter Grafiken
demo_122.gif  
Angehängte Dateien
Dateityp: pas shadowtextn_709.pas (6,3 KB, 90x aufgerufen)
Dateityp: pas shadowtext_692.pas (6,0 KB, 104x aufgerufen)
  Mit Zitat antworten Zitat