man kann ja bei einer TForm einfach AlphaBlending aktivieren und damit das Form z.B. 50% transparent machen.
Gemacht wird das Intern über so nen gelayerten Window Style..
Hat jemand ne idee wie es funktioniert das das Form an verschiedenen stellen verschieden transparent ist?? Gibt ja div. Programme die das können...
Das einfachste wäre wenn ich irgendwie eine art Screenshot von dem bereich hinter meinem Form machen könnte, aber ich zweifle das das geht..
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Windows ist für so etwas nicht wirklich ausgelegt. Das Einzige was du machen könntest wäre das Bild zu fotographieren bevor du dein Fenster anzeigst. Allerdings sobald sich etwas hinter deinem Fenster ändert hast du gelitten, da sich das nicht anpassen wird. Solche Sachen würde ich maximal nur für einen SplashScreen einsetzen sonst könnte es unter umständen doch ganz schön langsam werden.
aber schau dir mal z.B. Miranda mit diesem Skinning Plugin an... das bekommt problemlos verschieden starke Transparenzen hin die sich auch in echtzeit updaten wenn man das Form bewegt.. also muß es immerhin irgendwie gehen
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2068
Programmiersprache: C++
In dem Fall bietet sich deren Quellcode an.
Ansonsten legen die vielleicht andere Komponenten übereinander, sodass die gewünschte Transparenz erreicht wird?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Na ja. Problemlos halte ich jetzt mal für ein gerücht. Wenn das nicht so scheiße geil aussehen würde hätte ich das definitiv aus. Dadurch ist das Miranda nämlich verdammt langsam geworden.
Das mit dem Bewegen geht. Nehmen wir mal an du hast einen rechtekigen Breich kopiert. Dann verschiebst du diesen Bereich um das was du das Fenster verschieben willst und kopierst den neuen Inhalt an die Stellen die Frei geworden sind. Damit hast du immer einen Hintergrund. Aber wie schaut es aus, wenn sich unter Miranda etwas tut? Bekommen die das auch hin? Also ohne du etwas am Fenster machst! Kann das aber auch gerade nicht ausprobieren.
ich hab's nochmal genauer getestet.. Miranda ist StayOnTop, und wenn ich ein Fenster darunter rumbewege oder sich etwas in dem fenster tut bekommt Miranda das mit Selbst wenn im Hintergrund Firefox in dem grad nen GIF-Banner rumblinkt funktioniert das problemlos.. (Wobei ich nen P4D-3Ghz mit GeForce7800GTX hab, evtl ist es dadurch bedingt echtzeit.. aber sooo langsam kann es bei älteren PCs eigentlich auchnet sein)
InitTransparentForm muß einmal am anfang aufgerufen werden. Liefert true zurück wenn GDI+ verfügbar ist.
MakeTransparentForm immer dann aufrufen wenn das Form transparent gemacht werden soll DestroyTransparentForm beim beenden aufrufen um alle Variablen etc wieder freizugeben.
Vieleicht braucht's ja der ein oder andere irgendwann mal
Registriert: Mi Aug 17, 2005 13:19 Beiträge: 98 Wohnort: Jahnsdorf
@Aya: 3 Fragen:
1. Hast Du rein Zufällig die Quelle für den VB-Source verfügbar?
2. Was machen die Debug-Prozeduren; was bekommt man da für "Meldungen"?
3. Wie sieht's mit der Weiterverwendung in OS-Projekten (GPL\LGPL) aus?
Wegen weiterverwendung:
Ich hab den Code ja auch nur Portiert, und bei dem Original war nichts lizenzmäßiges drin..
Auf meinen Delphi Code werd ich nix lizenzmäßiges machen, soll jeder verwenden der will..
PS: Die Debug Meldungen, stimmt.. hab ich vergessen mitzunehmen *g* Stehen aber auch in der VB datei als Enumeration drin.
kommt jetzt eventuell etwas spät,
aber prinzipiell ist das über ein LayeredWindow Problemlos machbar.
Einziger nachteil wenn du den WindoStyle auf LayeredWindow stellst ist das du dann ein großes Problem mit normalen VCL Komponenten bekommst, die siehst du nämlich nicht mehr
Ich nutze das ganze aber schon länger in Verbindung mit Graphics32,
dort hatte ich mal in der Newsgroup ein Beispiel gefunden welches ein TBitmap32 ganz einfach als LayeredWindow "umwandelt". Dabei werden die Alpha Werte des Bitmaps komplett übernommen und man kriegt nette Effekte hin
Wenn noch Bedarf besteht kann ich den Code gerne posten.
Registriert: So Dez 19, 2004 00:27 Beiträge: 454 Wohnort: Nürnberg
aso...das ist so ca. das selbe was ich im Moment mach...
ich kriegs allerdings einfach nicht hin die Komponenten zu zeichnen...bis jetzt sieht das ganze so aus
aber da fehlt halt jegliche Interaktion. Im Moment starte ich den Versuch die WindowProcs der Komponenten zu überschreiben aber weiß nicht genau ob ich da auf dem richtigen Weg bin
Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.