AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GdiPlus DropShadow für Hauptform

Ein Thema von stOrM · begonnen am 22. Sep 2012 · letzter Beitrag vom 11. Dez 2013
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#1

GdiPlus DropShadow für Hauptform

  Alt 22. Sep 2012, 11:13
Hi,
ich überlege gerade wie man am besten einen DropShadow inkl. Transparenzen um eine Form legen könnte die keinen Border hat also (BorderStyle = BsNone)

Gut ich könnte:

Delphi-Quellcode:
procedure TTest.CreateParams(var Params: TCreateParams);
const
  CS_DROPSHADOW = $00020000;
begin
  inherited;
  Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
benutzen, dass Problem hierbei ist, dass zum einen der Schatten so dermaßen klein ist das man Ihn auch direkt weglassen kann. Es sei denn man kann die Schattengröße selber bestimmen.

Zum anderen ist das Problem, was wenn das Fenster sagen wir mal Rund waere? Regionen fallen flach soweit ich weiß, da keine Transparenz, abgesehen davon dürfte der Aufwand erheblich sein. Die Verwendng von PNG's find ich persönlich ebenfalls besser, da extrem schnell erstellbar im Vergleich zu Masken usw.

Jetzt war folgende Überlegung von der ich nicht gerade begeistert bin, aber es würde glaube ich funkionieren:

Man hat eine Hauptform und 8 weitere Formen welche man um die Hauptform herum plaziert. Die 8 Formen werden dazu genutzt, den Schlagschatten zu zeichen. Gut man müßte noch dafür sorgen das diese jedesmal mitwandern sofern die Hauptform verschoben wird.

Das ganze könnte man mit vielleicht GdiPlus / UpdateLayeredWindow machen. Meine Frage waere jetzt:

Weiß jemand eine bessere Möglichkeit und wenn ich das so machen würde, wie werden die 4 Teile (Top, Left, Bottom und Right sauber gestrecthed mittels GdiPlus wobei natürlich die Transparenz erhalten bleiben müssen, die 4 Eckpunkte muss ich ja nicht stretchen...)

Ich hab mal ein Bild angehangen damit man mir folgen kann, ich denke das erklaert wie der Schatten aufgebaut waere bzw. markieren die roten Linien die Schnittkanten des Schattens also die 8 Teile.
Miniaturansicht angehängter Grafiken
schnittkanten.jpg  
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: GdiPlus DropShadow für Hauptform

  Alt 22. Sep 2012, 16:46
So wie ich deiner letzten Kritik an einen meiner Projekte entnehmen konnt
scheinst du ja ein Designer Profi zu sein.
Dürfte also kein problem sein mit APS oder anderen Malprogramm die rechte und untere
seite der Form so zu zeichnen das die Form eínen Schatten emuliert
abhängig vom Activated status.

Wobei ein Schatten rings um die Form nicht wirklich ein DropShadow ist.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: GdiPlus DropShadow für Hauptform

  Alt 22. Sep 2012, 18:01
So wie ich deiner letzten Kritik an einen meiner Projekte entnehmen konnt
scheinst du ja ein Designer Profi zu sein.
Dürfte also kein problem sein mit APS oder anderen Malprogramm die rechte und untere
seite der Form so zu zeichnen das die Form eínen Schatten emuliert
abhängig vom Activated status.

Wobei ein Schatten rings um die Form nicht wirklich ein DropShadow ist.

gruss
Gehst du so mit Kritik um?
Wo oder wer hat jemals davon gesprochen das ich ein Designprofi waere? Würde ich mir selber nie anmaßen von mir zu behaupten, hab ich auch nie.
Was dein Projekt anging war es nicht wirklich als Kritik eher als Anregung gemeint aber nun gut, ist offtopic...

Ja und du hast Recht ist kein Schlagschatten...
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: GdiPlus DropShadow für Hauptform

  Alt 23. Sep 2012, 04:05
War kein angriff gegen deine person.. dachte nur das du das kannst nachdem du dein Statement abgegeben hattest.
Ich würde es auch mit Adobe machen allerdings geht es auch direkt mit GDI+

Hier mal ein Link

Müßtest du halt nur auf die Form anwenden.

gruss

Geändert von EWeiss (23. Sep 2012 um 04:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: GdiPlus DropShadow für Hauptform

  Alt 23. Sep 2012, 11:15
War kein angriff gegen deine person.. dachte nur das du das kannst nachdem du dein Statement abgegeben hattest.
Ich würde es auch mit Adobe machen allerdings geht es auch direkt mit GDI+

Hier mal ein Link

Müßtest du halt nur auf die Form anwenden.

gruss
Schwamm drüber, vielleicht hatte ich auch zu wenig Kaffee gestern
Erstmal danke für den Link.

Mit dem können hast du ja auch Recht, das Problem liegt ja auch nicht im Erstellen des Schattens in einem Grafikprogramm sonder eher darin:

Ich brauch ja (Ich nenne es mal eine Geisterform und wieso ich auf 8 Formen gekommen bin weiß ich grad auch nicht, eine sollte wohl reichen.)

Diese Form ist halt unsichtbar und liegt unter der Hauptform. Wenn nun aber die Hauptform vergrößert wird: Muss der Schatten ja gestreckt werden und zwar die 4 Teile (Oben, Unten, Rechts und Links, die Eckbereiche werden ja nicht gestreckt) ich hab es noch nicht probiert aber ich bin einfach davon ausgegangen das beim Vergrößern der Schatten seine Transparenz verliert.

Gut ggf. geht es auch komplett ohne Png's mit deinem Link müsste ich mal sehen.

Gruß
Marc
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: GdiPlus DropShadow für Hauptform

  Alt 27. Sep 2012, 15:19
Ich hab mich mal dran versucht ....
Miniaturansicht angehängter Grafiken
shadow.png  
Angehängte Dateien
Dateityp: zip ShadowForm_SRC.zip (165,1 KB, 132x aufgerufen)
Dateityp: zip ShadowTest_EXE.zip (411,9 KB, 110x aufgerufen)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: GdiPlus DropShadow für Hauptform

  Alt 27. Sep 2012, 15:38
Ich hab mich mal dran versucht ....
Öhm und das sieht ziemlich heiss aus dein Versuch
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: GdiPlus DropShadow für Hauptform

  Alt 27. Sep 2012, 15:42
Danke, wenn's Dir taugt kannst Du es ja weiter anfummeln ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: GdiPlus DropShadow für Hauptform

  Alt 27. Sep 2012, 15:46
Danke, wenn's Dir taugt kannst Du es ja weiter anfummeln ...
Ich würd mal sagen mehr wie taugt, dass ist so ziemlich die optimal Lösung für mich zumindest...

Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: GdiPlus DropShadow für Hauptform

  Alt 28. Sep 2012, 12:29
Eine kleine Performanceoptimierung fehlt noch in der Prozedur Prep

if (width=Fbackimage.Width) and (Height=Fbackimage.Height )then Exit;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 03:09 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