Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
Delphi 11 Alexandria
|
AW: Regionen, Rahmen und Schatten
4. Jun 2015, 09:47
So, jetzt kann ich mal kurz... Die Lösung (bzw. Idee) fiel mir gestern vor´m Einschlafen ein - kennt Ihr ja sicher auch...
Ja, es geht um Clipping und Schatten.
Bisher habe ich den Schatten als Linien rechts und unterhalb des Controls gezeichnet. Die Ebenen (wie von Dejan Vu beschrieben) berücksichtige ich schon.
Ich habe darüber hinaus auch noch "richtige" Ebenen (Tier). So kann ich z.B. Controls in einem Formular staffeln, das ist dann quasi eine zweite Z-Ordnung und legt fest, welche Controls über anderen zu zeichnen sind (ohne sichtbare Erhöhung).
Innerhalb der Tiers werden schattierte Controls nochmal extra behandelt (und "erhöht" dargestellt).
Erst werden nicht schattierte gezeichnet, dann Schatten, dann die erhöhten Controls.
Soweit als Zusammenfassung.
Die Schatten werde ich jetzt anders versuchen. Dazu werde ich die Regionen der schattierten Controls in einer großen Region sammeln (so dass man eine große Ebene mit "Flecken" hat, das ganze um ein paar Pixel verschieben und den Hintergrund einfärben.
Dann können die Controls auf die Schattenflächen gezeichnet werden, so dass nur rechts und unten etwas Schatten über steht.
=> Ich muss dann wohl doch nochmal nach einer Blur-Funktion schauen.
Für die Frame- und Clipping-Regionen habe ich auch eine Idee:
- Controlregion kopieren
- Kopie 1px nach rechts verschieben
- beide vereinigen
- Ergebnis kopieren
- Kopie 1px nach unten verschieben
- beide vereinigen
- Clipping auf das Ergebnis festlegen
So sollte das Clipping immer erst hinter/unter dem Rahmen erfolgen
=> Gibt es dafür eine fertige Funktion (oder bessere Ansätze)?
Geändert von stahli ( 4. Jun 2015 um 16:16 Uhr)
|