AGB  ·  Datenschutz  ·  Impressum  







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

Transparenz wie bei Vista

Ein Thema von LH_Freak · begonnen am 17. Aug 2006 · letzter Beitrag vom 8. Nov 2006
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 00:18
Liest du die Antworten eigentlich?

Zitat von Khabarakh:
Beim Standard-Miranda? Das ist doch ein vollkomemn anderer Effekt, bei dem einfach das gesamte Fenster mit einem konstanten Wert gelbendet wird.
Da wird einfach das AlphaBlending der Form benutzt (OH hilft weiter).

Ansonsten kann ich eigentlich auch prima VCL Komponenten mit LayeredWindows benutzen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#12

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 00:34
Zitat von 3_of_8:
Liest du die Antworten eigentlich?
Verstehst du die Frage eigentlich? Guck dir das Beispiel an, das LH_Freak dort gepostet hat. Das ist mit Miranda definitiv möglich und dort wird garantiert nicht "einfach das Alphablending der Form benutzt".
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 00:40
http://addons.miranda-im.org/files/s...45-preview.png

Diesen Screenshot hat er gepostet.

Und wenn das kein AlphaBlending ist, dann dann gebe ich dir einen an der DP-Bar aus.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#14

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 00:44
Und wie erklärst du dir, dass der Text normal lesbar ist? Wenn ich eine komplette Form via AlphaBlend transparent mache, ist das nämlich nicht mehr der Fall...
  Mit Zitat antworten Zitat
Benutzerbild von alias5000
alias5000

Registriert seit: 10. Sep 2005
Ort: Heilbronn
268 Beiträge
 
#15

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 01:00
Bzw. ist wäre auch der weiße Hintergrund transparent, das ist er aber überhaupt nicht.
Also, wo ist die DP-Bar?

On-Topic: ist es möglich, bestimmte Zonen vom AlphaBlending auszunehmen? Dann könnte man das so rum machen
Im Interesse der Purierung des germanischen Ideoms ist es opertum den immensen Usus peregrieder Verben auf ein Minimum zu reduzieren.
--> www.lanchat2.de <---
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#16

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 01:21
Zitat von alias5000:
On-Topic: ist es möglich, bestimmte Zonen vom AlphaBlending auszunehmen? Dann könnte man das so rum machen
Nein, zumindest interpretiere ich das aus dem MSDN so:
Dort steht
Layered Windows
Using a layered window can significantly improve performance and visual effects for a window that has a complex shape, animates its shape, or wishes to use alpha blending effects. [...] layered windows can be partially translucent, that is, alpha-blended.

To create a layered window, specify the WS_EX_LAYERED extended window style when calling the CreateWindowEx function, or call the SetWindowLong function to set WS_EX_LAYERED after the window has been created. After the CreateWindowEx call, the layered window will not become visible until the SetLayeredWindowAttributes or UpdateLayeredWindow function has been called for this window. Note that WS_EX_LAYERED cannot be used for child windows.
Und iirc ist jede Komponente auf dem Formular auch als "Child Window" zu betrachten.
Sprich: in #5 duerfte der letzte Absatz als Unfug bezeichnet werden

Wie es schlussendlich funktioniert, weiss ich nicht. Aber ich hab das Gefuehl, dass das nach einem AlphaChannel riecht. *g*
Zumindest keonnte man so bestimmten Bereichen eine gewisse Transparenz zuschreiben, und anderen wieder nicht. (bspw. ist die aeusserste Pixelreihe des Rahmens wieder nicht transparent...) Wie das genau funktioniert, das weiss ich nicht, waere aber auf ein Ergebnis gespannt

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 01:32
Na gut, ihr habt Recht. Ich hätte schwören können, dass das früher nicht so war, ich verwechsle wohl irgendwie immer Transparent und AlphaBlend und so weiter.

@alias: Die DP Bar ist natürlich auf der USS Delphi-PRAXiS. Aber du kriegst nix, nur Daniel G hab ich nen Drink versprochen.

@Jason: Man könnte auf die Form zeichnen, was eigentlich hinter der Form sein sollte, allerdings nicht komplett das, was dahinter sein sollte, sondern einen Mischwert aus Farbe hinter der Form und Farbe auf der Form.

Also in etwa so:

Delphi-Quellcode:
Repaint;
for I:=0 to topborder-1 do
  for J:=0 to width-1 do
    canvas.pixels[i, j]:=canvas.pixels[i, j] or bgcolor;
for I:=height-bottomborder-1 to height-1 do
  for J:=0 to width-1 do
    canvas.pixels[i, j]:=canvas.pixels[i, j] or bgcolor;
for topborder to height-bottomborder-1 do
  for J:=0 to leftborder-1 do
    canvas.pixels[i, j]:=canvas.pixels[i, j] or bgcolor;
for topborder to height-bottomborder-1 do
  for J:=width-rightborder to width-1 do
    canvas.pixels[i, j]:=canvas.pixels[i, j] or bgcolor;
Das ganze ist jetzt nur mal so schnell dahingetippt, ich erhebe keinen Anspruch darauf, dass das funktioniert. Aber aus dem Prinzip könnte man was machen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#18

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 01:41
Zitat von 3_of_8:
Na gut, ihr habt Recht. Ich hätte schwören können, dass das früher nicht so war, ich verwechsle wohl irgendwie immer Transparent und AlphaBlend und so weiter.
Afaik wird Transparent auch nur ueber Layered Windows erledigt, sollte theoretisch also auch dort nicht klappen.

Zitat von 3_of_8:
@Jason: Man könnte auf die Form zeichnen, was eigentlich hinter der Form sein sollte, allerdings nicht komplett das, was dahinter sein sollte, sondern einen Mischwert aus Farbe hinter der Form und Farbe auf der Form.

[...]
Delphi-Quellcode:
for I:=height-bottomborder-1 to height-1 do
  for J:=0 to width-1 do
    canvas.pixels[i, j]:=canvas.pixels[i, j] or bgcolor;
Aber aus dem Prinzip könnte man was machen.
Jo, eine GDI-Basierte CPU-Bremse Alleine schon die Zuweisung von Pixels[...] in zwei verschachtelten Schleifen bremst die Applikation so aus, dass Vista da schneller installiert als das Formular neu gezeichnet ist Wobei natuerlich auch wieder das lesen der Farbe des Pixels dahinter seinen (Zeit)Aufwand mit sich bringt
Kurz: Das ist IMO der falsche Weg.

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von LH_Freak
LH_Freak

Registriert seit: 2. Mär 2005
Ort: Nürnberg
222 Beiträge
 
#19

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 11:04
naja, meine lösung die ich hatte lief ohne Canvas.Pixels. Eigentlich war die Methode auch nicht so langsam aber es gab halt das Problem mit dem Verschieben der Form etc.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#20

Re: Transparenz wie bei Vista

  Alt 24. Aug 2006, 11:27
Ganz sicher, dass das in Miranda Standard-Controls sind ?
Vielleicht lassen sich auch die VCL-Controls nutzen, indem sie bei jedem WM_PAINT auf das Bitmap gemalt werden (natürlich mit A = 255 ) und danach wieder UpdateLayeredWindow aufgerufen wird.
Einfacher wäre es allerdings, auf Avalon zu warten .
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 17:22 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