Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Firemonkey Effekte unterscheiden sich (https://www.delphipraxis.net/202493-firemonkey-effekte-unterscheiden-sich.html)

Andreas L. 10. Nov 2019 13:05

Firemonkey Effekte unterscheiden sich
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
wenn ich ein TImage mit einer TShadowEffect-Komponente in Design-Time ausstatte und das selbe Bild mittels Code zur Laufzeit style erhalte ich unterschiedliche Ergebnisse (siehe Screenshot/Demo-Programm).

Eigenschaften der TShadowEffect-Komponente:
  • Distance = 3
  • Direction = 45
  • Softness = 1
  • Opacity = 0.6
  • ShadowColor = claBlack

Code zur Laufzeit:
Delphi-Quellcode:
  ShadowEffect.ProcessEffect(imgEffectCode.Canvas, imgEffectCode.Bitmap, 1);

Ich habe im Delphi-Code gestöbert und habe herausgefunden das bei Effekten die auf einem Control platziert werden andere Routinen ablaufen als wenn man den Code zur Laufzeit ausführt.

Jetzt meine Frage: Wie kann ich via Code das selbe Ergebnis erhalten wie als hätte ich den Effekt auf dem Image platziert?

Im angehängten Archiv ist sowohl eine Exe als auch der Code.

Rollo62 10. Nov 2019 13:27

AW: Firemonkey Effekte unterscheiden sich
 
Du möchtest also eine Bitmap direkt verändern, vermute ich mal.

Ansonsten sollte es möglich sein dem TImage eine Shadow-Komponnte zuzuorden, und genauso wie im Designer zu setzen.
Das sollte eigentlich das gleiche Ergebnis bringen.

Andreas L. 10. Nov 2019 14:05

AW: Firemonkey Effekte unterscheiden sich
 
Zitat:

Zitat von Rollo62 (Beitrag 1451105)
Du möchtest also eine Bitmap direkt verändern, vermute ich mal.

Ansonsten sollte es möglich sein dem TImage eine Shadow-Komponnte zuzuorden, und genauso wie im Designer zu setzen.
Das sollte eigentlich das gleiche Ergebnis bringen.

Das habe ich schon versucht. Der Effekt wird zwar korrekt angezeigt. Aber wenn ich das Bitmap des TImage speichere ist dort der Effekt nicht zu sehen.

Habt ihr eine Idee wie ich sonst ein TImage-Bild inkl. Effekte speichern kann. Und ganz wichtig: Die Alpha-Transparenz des Bildes muss erhalten bleiben!

Harry Stahl 10. Nov 2019 14:32

AW: Firemonkey Effekte unterscheiden sich
 
Ich habe mal kurz in den Code rein gesehen. Sehe nicht, dass Du da irgendwo einen Wert für den Effect setzt...

Wenn, würde ich nicht TEffect verwenden, sondern TEffectFilter. Aber da ist das Property "Filter" Protected, da würdest nur mit Verrenkungen rankommen.

Mach es doch so, wie hier hier mal gepostet habe: https://www.delphipraxis.net/1339144-post17.html
(also Filter: FMX.Filter.TFilter verwenden)

Oder ganz einfach wäre auch:

ShadowEffect.Parent := imgEffectCode;
ShadowEffect.Enabled := True;

Dann könntest Du die Werte der Effekte ganz einfach über die Effekt-Komponente ansteuern, statt über das Setzen der Filter-Values...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.

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