Thema: Delphi einfacher Schlagschatten

Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: einfacher Schlagschatten

  Alt 20. Mai 2015, 14:28
Danke schon mal.
Ich werde erst mal noch einen anderen Ansatz versuchen:

Ich muss ja auch prüfen, ob Controls als Block aneinander sitzen.
Dann darf der Schatten nicht neben jedem Control gezeichnet werden, da es sonst unlogische Überneidungen gibt (rechts im Bild neben dem roten Kasten).

Also versuche ich folgendes:

- alle nicht hochgehobenen Controls zeichnen
- alle Regionen der hochgehobenen Controls (i.F. "hC") vom Zeichnen ausnehmen <- ist vermutlich gar nicht nötig
- alle hC nach .Left und .Top sortieren
- alle rechten Kanten (bzw. Teile) der hC ermitteln, die NICHT von anderen hC berührt werden
- alle angrenzenden gesammelten Kanten-Teile vereinen
- rechte Schatten an allen Kanten malen, dazu beide Enden auf den letzten Pixeln abschwächen
- ... das Gleiche für die unteren Kanten
- gesperrte Regionen freigeben
- alle hC zeichnen

Damit sollten die rot gerahmten Controls im Bild als Block erscheinen (auch wenn sie nicht genau bündig wären) und auf "Type 14" könnte kein Schatten mehr fallen.

Mal sehen, ob das so klappt...




PS: Man sollte beim Schreiben nicht die ESC-Taste erwischen. Dann ist der geschriebene Text offenbar unwiederbringlich weg...
Miniaturansicht angehängter Grafiken
schatten2.png  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (20. Mai 2015 um 14:30 Uhr)
  Mit Zitat antworten Zitat