Entwickler-Ecke

Windows API - Transparenz in Delphi möglich ?


LonghornUser - Sa 16.02.08 16:17
Titel: Transparenz in Delphi möglich ?
Hallo,

gibt es einen Weg, eine Transparenz wie im Windows Media Player im unteren Bereich oder wie die untere Leiste in diesem Screenshot http://www.cairoshell.com/images/Explorer_Desktop_M1.jpg in Delphi hinzubekommen ?

Gibts da eventuell eine Komponente oder ähnliches ?

Danke im Voraus.

Ciao LHUser


Jann1k - Sa 16.02.08 17:01

Also bei mir (Delphi 7 Personal) hat die Form die Eigenschaften Alphablend und Alphablendvalue, vielleicht kommst du damit weiter.


K.S.M. - Sa 16.02.08 17:23

Moin!

Es gibt eine Möglichkeit, den Aero-Glass-Effekt (Transparenz bei Windows Media Player 11 unten) hinzubekommen:

Probier mal meine Komponente aus :wink:

Du musst sie z. B. bei Form.OnShow aufrufen mit "GlassEffekteSpezifisch(self.Handle,80,80,80,80);" oder "GlassEffekteUeberall(self.Handle);". (Die Komponente wurde in Delphi 2005 getestet mit Win Vista)

Viel Spaß :)


LonghornUser - Sa 16.02.08 18:47

Mhm. Kann die Komponente leider nicht installieren:

Quelltext
1:
2:
3:
4:
5:
6:
7:
[Fehler] AeroRand.pas(15): Ungültige Compileranweisung: 'REGION'
[Fehler] AeroRand.pas(36): Ungültige Compileranweisung: 'ENDREGION'
[Fehler] AeroRand.pas(38): Ungültige Compileranweisung: 'REGION'
[Fehler] AeroRand.pas(63): Ungültige Compileranweisung: 'ENDREGION'
[Fehler] AeroRand.pas(65): Ungültige Compileranweisung: 'REGION'
[Fehler] AeroRand.pas(73): Ungültige Compileranweisung: 'ENDREGION'
[Fataler Fehler] aerorand1.dpk(32): Verwendete Unit 'AeroRand.pas' kann nicht compiliert werden


Jakob Schöttl - Sa 16.02.08 19:13

user profile iconLonghornUser hat folgendes geschrieben:
Mhm. Kann die Komponente leider nicht installieren:

Quelltext
1:
2:
3:
4:
5:
6:
7:
[Fehler] AeroRand.pas(15): Ungültige Compileranweisung: 'REGION'
[Fehler] AeroRand.pas(36): Ungültige Compileranweisung: 'ENDREGION'
[Fehler] AeroRand.pas(38): Ungültige Compileranweisung: 'REGION'
[Fehler] AeroRand.pas(63): Ungültige Compileranweisung: 'ENDREGION'
[Fehler] AeroRand.pas(65): Ungültige Compileranweisung: 'REGION'
[Fehler] AeroRand.pas(73): Ungültige Compileranweisung: 'ENDREGION'
[Fataler Fehler] aerorand1.dpk(32): Verwendete Unit 'AeroRand.pas' kann nicht compiliert werden


dann lösche einfach alle Compileranweisungen $REGION und $ENDREGION raus. Anscheinend kennt deine Delphiversion diese Compileranweisungen noch nicht. Sie haben jedenfalls keine Auswirkungen auf den Quelltext.


LonghornUser - Sa 16.02.08 19:26

Also ich habe Delphi 7 und es funzt leider nicht. Schade. Der untere Bereich, den ich definiert habe, erscheint nur weiß, aber nicht transparent :(


K.S.M. - Sa 16.02.08 19:30

Wie Jakob Schöttl gesagt hat, man kann diese {$REGION '...'} {$ENDREGION}-Breiche einfach weglassen.

Läuft bei dir die Komponente unter Vista?


K.S.M. - Sa 16.02.08 19:34

Jetzt weiß ich, warum es nicht funktioniert.

Ich habe vergessen was zu schreiben :oops:

Denn die Transparenz ist NUR auf SCHWARZEM GRUND zu sehen, d. h. Du musst die Stellen noch Schwarz färben im Formular.

Ich hoffe mal, dass es jetzt funktioniert! :wink:


LonghornUser - Sa 16.02.08 19:41

Joooooooo :) Klappt wunderbar . Danke !!!!!!!!

Edit: Kann man diese Transparenz auch einfärben ? Also schwarz zB ?


K.S.M. - Sa 16.02.08 19:55

Die Glass-Farbe passt sich deiner Vista-Fensterfarbe an. (Systemsteuerung > Anpassung > Fensterfarbe und -darstellung) Wenn du sie dort ändern möchtest, dann müsstest du auch die anderen Fensterfarben ändern.