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 Transparentes Bild auf Desktop zeichnen (https://www.delphipraxis.net/142886-transparentes-bild-auf-desktop-zeichnen.html)

Alois 5. Nov 2009 13:15


Transparentes Bild auf Desktop zeichnen
 
Hi,

ich möchte mir gerne ein kleines Popup an der unteren Ecke über der Taskleiste auf den Desktop zeichnen.

http://i33.tinypic.com/nx0rqd.gif

Leider habe ich gar keine Ahnung wie ich das anstellen soll.

Benutze ich besser ein transparentes Form oder ein Image (PNG) zum Darstellen des Popup?
Wie erstelle so einen Einblend-Effekt mit Kreisen? Ich habe noch nirgends so einen Beispielcode gefunden.

Gruss Alois ;)

turboPASCAL 5. Nov 2009 13:20

Re: Transparentes Bild auf Desktop zeichnen
 
Welche Delphiversion hast du ?

Alois 5. Nov 2009 13:59

Re: Transparentes Bild auf Desktop zeichnen
 
Zitat:

Zitat von turboPASCAL
Welche Delphiversion hast du ?

Delphi 2010

Namenloser 5. Nov 2009 14:47

Re: Transparentes Bild auf Desktop zeichnen
 
Zitat:

Zitat von Alois
Wie erstelle so einen Einblend-Effekt mit Kreisen?

Schau dir mal Regions an.

Alois 5. Nov 2009 15:26

Re: Transparentes Bild auf Desktop zeichnen
 
Zitat:

Zitat von NamenLozer
Schau dir mal Regions an.

Hi NamenLozer, danke für den Hinweis... ich habe schon mit Create...Rgn herumexperimentiert, aber damit lässt sich ich nur die äussere Form des Fensters beinflussen.

Im Beispiel baut sich das Popup durch Einblenden von Kreisen auf und blendet sich mit Kreisen wieder aus.
Ist es sinnvoll überhaupt ein Form zu nehmen oder nicht gleich ein Image auf den Desktop zu zeichnen? z.b. Ein vordefinierter Hintergrund (als transparentes PNG) mit einem überlagerten Text das mit diesem Kreis-Effekt ein- bzw. wieder ausgeblendet wird.

Nur der genaue Ansatz fehlt mir wie ich das am besten anstellen soll.

Gruss Alois ;)

himitsu 5. Nov 2009 16:25

Re: Transparentes Bild auf Desktop zeichnen
 
Du mußt dafür mehrere dieser Regionen kombinieren

Neutral General 5. Nov 2009 16:52

Re: Transparentes Bild auf Desktop zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich würde es so machen:

1 Form
- TransparentColor = true
- TransparentColorValue = clwhite
- BorderStyle: bsNone
1 Image (alClient)
- Picture = Bild was "aufploppen" soll
- Transparent = false
1 Image (alClient)
- Transparent = true
- Bitmap.Transparent.Color = clfuchsia
- Picture = komplett weiß

Dann schreibst du einen Algorithmus der zeitversetzt clfuchsia-farbene Punkte auf das Bitmap des 2. Images malt, bis das 2. Image komplett clfuchsia ist.

Kann gleich mal ne kleine Demo basteln...

Edit: Hab jetzt was gebastelt. Im Moment ist hinter dem "Auftauchen" noch kein System. Von daher dauert es manchmal kürzer, manchmal länger bis die komplette Form sichtbar ist. Den Zufall kann/sollte man da natürlich durch nen anständigen Algorithmus ersetzen.

Neutral General 5. Nov 2009 17:26

Re: Transparentes Bild auf Desktop zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

Bins grad nochmal... :duck:

Hier meine 2. Demo. Diesmal mit ohne Zufall.

Alois 5. Nov 2009 17:37

Re: Transparentes Bild auf Desktop zeichnen
 
Zitat:

Zitat von Neutral General
Hi,
Hier meine 2. Demo. Diesmal mit ohne Zufall.

Hi Neutral General,

das sieht ja richtig toll aus. :thumb: Hab vielen Dank für diese Demo.

Gruss Alois ;)

Alois 6. Nov 2009 06:42

Re: Transparentes Bild auf Desktop zeichnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bin dem Beispiel von "Neutral General" gefolgt und habe das ganze um die Graphics32-Komponente erweitert.
So kann ich die Bitmap-Transparenz des Forms beinflussen und ein Text lässt sich einfacher ein- und ausblenden.

Im Anhang findet ihr meine Demo.

http://i34.tinypic.com/29114x5.gif

Wie schaffe ich es, das während das WinPopup (Form2) eingeblendet wird der Fokus vom Hauptform (Form1) nicht verloren geht?
oder anders... wie kann ich ungestört eine zweite Form im Hintergrund starten?

Und kann ich das Bitmap nicht gleich Direkt auf den Desktop zeichnen? Oder gibt's da Probleme mit der Transparenz?

Für Anregungen wäre ich dankbar.


Gruss Alois ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:53 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