Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen? (https://www.delphipraxis.net/173522-wie-kann-ich-den-hintergrund-des-mediaplayer-displays-transparent-machen.html)

IT Amnesie 28. Feb 2013 21:27

Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen?
 
Hi an die gesamte Community!

Ich schreibe ein Programm mit Delphi 7, indem ich ein Spiel simulieren will, um mir das ganze ein bisschen selber beizubringen. Da meine letzte Schulpraxis mit Delhpi etwa 8 Jahre zurück liegt, habe ich ein paar Grund legende Sachen auch schon wieder vergessen.

Nun zu meiner Situation:
Ich habe ein Image, das die Umgebung darstellet auf den sich die Figur bewegen soll. Darauf liegt ein TAnimate, das als Display für den Mediaplayer dient und die bewegende Figur darstellt.

Das Problem:
Ich habe eine eigene AVI-datei erstellt und den Hintergrund weiß gelassen. Obwohl ich beim Animate transparent auf "true" gestellt habe, bleibt der Hintergrund weiß.
Wie kann ich das ändern?
Brauch ich eine bestimmte farbe oder gibt es eine besondere funktion, die ich vielleicht noch nicht kenne?

Ich bedanke mich im Voraus

Medium 28. Feb 2013 22:05

AW: Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen?
 
Willkommen in der DP und zurück zu Delphi :)

Es gibt 3 Wege, wie einfache Transparenz üblicherweise (in Delphis Standardkomponenten) gehandhabt wird:

1) Die Farbe clFuchsia (R=255, G=0, B=255) wird als transparente Farbe verwendet
2) Die Farbe des oberen linken Pixels (Koordinaten (0, 0)) wird als transparente Farbe verwendet
3) Es gibt eine Eigenschaft, über die die transparente Farbe im Objektinspektor direkt angegeben wird (üblicherweise mit clFuchsia vorbelegt)

Da ich TAnimate noch nie eingesetzt habe, weiss ich spontan nicht was hier zum Einsatz kommt. Aber das wären die Dinge, nach denen du mal schauen könntest.

Volker Z. 28. Feb 2013 22:37

AW: Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen?
 
Hallo,

wenn Du Dein AVI nicht auf clFuchsia umstellen willst, dann kann Du anstatt
Delphi-Quellcode:
Animate1.Tramsparent := True
versuchen Deinem AVI die transparente Farbe mitzuteilen. Sollte mit folgender Funktion klappen:
Delphi-Quellcode:
SetBkColor (Animate1.Handle, clWhite);


Gruß

IT Amnesie 1. Mär 2013 11:03

AW: Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen?
 
Danke für dieschnellen Antworten! :)

Zitat:

Zitat von Medium (Beitrag 1205522)
Die Farbe des oberen linken Pixels (Koordinaten (0, 0)) wird als transparente Farbe verwendet

Ja, das kenne ich vom TImage und da funktioniert es auch ohne Probleme. Nur hier finde ich einfach nicht die Lösung. :/

Ich habe auch die Farbe clFuchsia als Hintergund erstellt (rot:255, gelb:0, blau:255). Aber auch das funktioniert nicht.

Wie kann ich mir die Transparente Frabe denn anzeigen lassen?

Zitat:

Zitat von Volker Z. (Beitrag 1205529)
wenn Du Dein AVI nicht auf clFuchsia umstellen willst, dann kann Du anstatt
Delphi-Quellcode:
Animate1.Tramsparent := True
versuchen Deinem AVI die transparente Farbe mitzuteilen. Sollte mit folgender Funktion klappen:
Delphi-Quellcode:
SetBkColor (Animate1.Handle, clWhite);

Habe ich auch versucht. Klappt nicht. Muss das an einer bestimmten stelle während der Laufzeit passieren?
Wenn nicht kann es sein, das Transparent auf "fasle" stehen muss?

Bisher habe ich immer selbst eine Lösung gefunden, aber diesmal bin ich echt ratlos. Aber ich denke mir das die Lösung ganz simpel ist. Ich setze gedanklich bestimmt nur falsch an.

Bummi 1. Mär 2013 11:14

AW: Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen?
 
Das Transparent bezieht sich nur auf die Darstellung des Avis, welche der Farben hier transparent sein soll, dort wird dann die Hintergrundfarbe des TAnimate dargestellt. Das Control selbst ist von TWinControl abgeleitet und wird nicht transparent.

IT Amnesie 6. Mär 2013 19:50

AW: Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen?
 
Ok, danke Bummi...gibt es vielleicht eine Alternative?

Bei einem Image klappt das mit der Transparenz ja ganz gut. Das Problem ist nur, dass von 5 Bildern nur das erste und das letzte angezeigt werden, wenn das letzte Bild dem ersten entspricht.

Ich weiß, dass man mehrere Images benutzen, sie übereinander legen und sie einzeln sichtbar machen kann. Das finde ich aber nicht ganz so elegant. Außerdem möchte ich nicht für jede Figur mehrere Images benutzen. Gibt es in diesem Fall vielleicht eine Lösung?

Bummi 6. Mär 2013 20:41

AW: Wie kann ich den Hintergrund des Mediaplayer-Displays transparent machen?
 
Ich (persönlich) würde mich von dem Konzept Image und TAnimate komplett verabschieden und die Animation in einem TGraphicContol (im primitivsten Fall TPaintbox) direkt darstellen.


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