AGB  ·  Datenschutz  ·  Impressum  







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

AlphaBlend verstellen

Ein Thema von S2B · begonnen am 28. Feb 2004 · letzter Beitrag vom 29. Feb 2004
Antwort Antwort
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#1

AlphaBlend verstellen

  Alt 28. Feb 2004, 20:02
Hallo alle zusammen!
Ich möchte bei allen geöffneten Fenstern AlphaBlend auf true setzen, den AlphaBlendValue verstellen und sie nach einer Weile minimieren. Das ganze soll eine art Effekt für einen Taskmanager werden. Wisst ihr, wie das gehen könnte? Ich hab nämlich keine Ahnung und kenn mich auch noch nicht so gut mit der API aus!
Bitte helft mir !
Ich bedanke mich schon mal für alle Antworten(falls ich es nachher vergessen sollte).
S2B
Simon Praetorius
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: AlphaBlend verstellen

  Alt 28. Feb 2004, 20:14
HI!

Ich vermute mit alle Fenster, meinst du wohl alle Fenster.

Dann müsstest du dir erstmal das Handle der Fenster besorgen.
Siehe hier: Hier im Forum suchenEnumWindows

Wie du das dann mit dem Alpha-Blend genau machen kannst weiß ich nicht, aber vielleicht findest du was im MSDN.
Das minimieren geht glaube ich hiermit:

setwindowpos() Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#3

Re: AlphaBlend verstellen

  Alt 28. Feb 2004, 20:18
Danke für die schnelle Antwort! Die Handles der Fenster hab ich schon aber das minimieren bringt mich schon ein ganzes Stück weiter! Ich probiere es nachher gleich aus.
S2B
Simon Praetorius
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: AlphaBlend verstellen

  Alt 28. Feb 2004, 20:24
Hi!

Ich glaube, ich habe mich geirrt.
Sorry. Man kann mit

SetWindowPos(); das Fenster nicht minimieren. Aber es geht mit:

Showwindow(); Siehe hier: http://msdn.microsoft.com/library/de...showwindow.asp

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#5

Re: AlphaBlend verstellen

  Alt 28. Feb 2004, 20:29
Dake für die Antwort. Der Link hat mir sehr weitergeholfen, da ich gerade versucht hab, mich auf MSDN zurechtzufinden und mit diesem Link ist man direkt drin !
S2B
Simon Praetorius
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#6

Re: AlphaBlend verstellen

  Alt 28. Feb 2004, 22:35
Jetzt hab ich nur noch ein Problem: Ich muss das mit dem AlphaBlend-Eintrag hinkriegen . Wenn irgendjemand Rat weiß, bitte schreibt es mir doch! Vielen Dank schon mal vorher und cu
S2B
Simon Praetorius
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: AlphaBlend verstellen

  Alt 28. Feb 2004, 22:43
Hol dir das handle und dann:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Set WS_EX_LAYERED on this window
  SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);

  // Make this window 70% alpha
  SetLayeredWindowAttributes(Handle, 0, trunc((255 * 70) / 100), LWA_ALPHA);
end;
Dies macht das nur für das Fenster mit dem Button. Für Handle musst du eben das Handle des entsprechenden Fensters einsetzten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#8

Re: AlphaBlend verstellen

  Alt 28. Feb 2004, 22:54
@Luckie: Vielen Dank für den Code. Jetzt funktioniert es! Es ist echt cool!!!
Cu S2B
Simon Praetorius
  Mit Zitat antworten Zitat
Benutzerbild von S2B
S2B

Registriert seit: 1. Feb 2004
Ort: Aachen
1.268 Beiträge
 
#9

Re: AlphaBlend verstellen

  Alt 29. Feb 2004, 00:32
Hallo,
ich hab nur noch ein kleines Problem mit meinem gebastelten Code(ich weiß, er sieht schrecklich aus und man könnte es auch einfacher schreiben, aber so gut beherrsch ich das noch nicht ):

Delphi-Quellcode:
var
  x: Integer;
  Handle2: DWORD;
 
//irgendwo davor:
  x:=100;

 try
  Repeat
    Handle2:=StrToInt(ListView1.Items.Item[1].Caption);
    SetWindowLong(Handle2, GWL_EXSTYLE, GetWindowLong(Handle2, GWL_EXSTYLE) or WS_EX_LAYERED);
     begin
      try
       repeat
         x:=x-1;
         SetLayeredWindowAttributes(Handle2, 0, trunc((255 * x) / 100), LWA_ALPHA);
       until
         x=0;
      finally
       {--da muss noch etwas rein, um das Fenster zu minimieren--} 
       SetLayeredWindowAttributes(Handle2, 0, trunc((255 * 100) / 100), LWA_ALPHA);
      end;
     end;
    ListView1.Items.Item[1].Delete;
  Until
    ListView1.Items.Count<4;
 finally
    Button3.Enabled:=false;
 end;
Ich habe alle laufenden Fenster in eine ListView geschrieben und lese sie daraus aus. Die Fenster werden dann von 100%Transparenz auf 0% Transparenz "ausgeblendet". Dann werden sie minimiert und die 100% Transparenz wieder eingestellt. Und jetzt kommt mein Problem:
Das zweite Fenster wird von 100% auf 0% "ausgeblendet" und dann wiederholt sich das ständig. Mit den anderen offenen Fenstern passiert gar nix!
Was muss ich ändern, damit das nicht passiert? Ich hoffe, dass mir jemand helfen kann. Es muss ja auch nicht so früh morgens sein !
Ich freue mich über jede Antwort
Man schreibt/liest sich
S2B
Simon Praetorius
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:23 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