AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

GdiPlus DropShadow für Hauptform

Ein Thema von stOrM · begonnen am 22. Sep 2012 · letzter Beitrag vom 11. Dez 2013
 
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#11

AW: GdiPlus DropShadow für Hauptform

  Alt 29. Sep 2012, 22:59
Der „Schatten“ von Bummi sieht allerdings etwas seltsam aus, weil er linear an Intensität abnimmt. Normalerweise simuliert man Schatten mit einem Gaußschen Weichzeichner, was dem natürlichen Schatten eher entspricht.

Ich habe da über die letzten zwei Tage (war krank, deshalb hat es etwas länger gedauert...) mal selber was gebastelt, was kein GDI+ braucht und realistischere Schatten produziert. Dabei habe ich auch sehr darauf geachtet, dass Schatten und Fenster immer so gut wie synchron sind (also dass nicht der Schatten mit Verzögerung hinterherhinkt wenn man das Fenster bewegt). Das ganze ist über einen Hook gelöst, das heißt, man braucht sich um die Aktualisierung der Position gar nicht mehr manuell zu kümmern.

Es genügt im einfachsten Falle, die Unit unShadow einzubinden und folgenden Code ins OnCreate-Ereignis eines Formulars schreiben: TShadowForm.Create(Self).Attach(Handle); Man kann aber, wenn man will, auch verschiedene Parameter von TShadowForm verändern, z.B. die Farbe (Achtung: ARGB-Format!) oder den Weichzeichnungs-Radius. Im Anhang seht ihr ein Bild von einem blauen Schatten (damit man besser den Unterschied erkennt zu dem schmalen schwarzen Schatten, den Windows sowieso immer zeichnet, was ich unter Vista nicht abstellen kann).

Die unShadow-Unit kann nur Schatten von Rechtecken darstellen, allerdings sind in der unGaussBlur auch Funktionen enthalten, um beliebige Formen weichzuzeichnen. Das wird in der Demo-Anwendung ebenfalls demonstriert. Allerdings ist meine Implementierung des Gaußschen Weichzeichners leider nicht besonders schnell bei großen Radien...
Angehängte Grafiken
Dateityp: png scr5643_20120929.png (61,1 KB, 87x aufgerufen)
Angehängte Dateien
Dateityp: zip gaussblur.zip (229,4 KB, 127x aufgerufen)
  Mit Zitat antworten Zitat
 

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 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