Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi WinMediaPlayer lässt sich auf einem Form nicht maximieren? (https://www.delphipraxis.net/150358-winmediaplayer-laesst-sich-auf-einem-form-nicht-maximieren.html)

AlexII 14. Apr 2010 18:47


WinMediaPlayer lässt sich auf einem Form nicht maximieren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich hab nen Windows Media Player auf einer Form aber der lässt sich nicht maximieren oder minimieren, siehe Screenshot. Also ich ziehe an dem Form und der Player ändert die Größe nicht.

Folgendes habe ich für den Player eingestellt:

Align:=alClient;
Anchors -> alle auf True

Eigentlich alles richtig, aber es läuft irgendwie nicht.

Danke im Voraus!

AlexII 15. Apr 2010 15:40

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Weiß das keiner? :gruebel:

Wenn ich das Fenster allerdings größer mache und das neu starte richtet sich der Player nach diesem, aber nicht während der Laufzeit. :roteyes:

blauweiss 15. Apr 2010 17:44

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Hallo Alex

probier mal im OnResize der Form diese Zeile:
WindowsMediaPlayer.DoObjectVerb(OLEIVERB_SHOW);

blauweiss

AlexII 15. Apr 2010 20:05

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Zitat:

Zitat von blauweiss
Hallo Alex

probier mal im OnResize der Form diese Zeile:
WindowsMediaPlayer.DoObjectVerb(OLEIVERB_SHOW);

Thx... hab allerdings nen Fehler, OLEIVERB_SHOW ist undefiniert. Wo und wie definiere ich das?

Medium 15. Apr 2010 20:34

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Zitat:

Zitat von AlexII
nicht undefiniert

Na dann ist doch alles gut! :thumb:

Ansonsten ist es eigentlich nicht so weit her geholt, einfach mal den Konstantennamen Tante Google vor die Füße zu werfen - ich weiss, es wird viel zu oft dahin verwiesen, aber in diesem Fall wäre es nun wirklich die erste Idee die einem kommen müsste. Gleich der erste Treffer verlinkt ins MSDN, und dort sind auch die numerischen Werte diverser OLE* Konstanten einsehbar. Ich verlink das mal als Fingerübung nicht direkt ;)

AlexII 15. Apr 2010 22:24

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Ich hab auch mit Herrn Google gesucht, aber nix gefunden, ich meine nichts was ich verstanden habe. :roteyes:

DeddyH 16. Apr 2010 08:40

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Gleich als ersten Treffer im MSDN findet man unten unter "Verb" die Konstanten und direkt dahinter in Klammern deren Wert. Was gibt es daran nicht zu verstehen?

AlexII 16. Apr 2010 10:04

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Hab das jetzt so versucht:
Zitat:

WindowsMediaPlayer.DoObjectVerb(-1);
Aber das FormFenster lässt sich jetzt überhaupt nicht vergrößern oder verkleinern. :roteyes:

AlexII 17. Apr 2010 19:19

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Mein Problem ist noch aktuell, hat vllt noch jemand welche Ideen wie man das lösen kann?

AlexII 22. Apr 2010 17:43

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Push... :(

lbccaleb 22. Apr 2010 17:55

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Wenn es nicht so will wie du, und es ja offensichtlich keine Lösung gibt, wieso benutzt du die Komponente??

Hatte es mal installiert, und getestet, auch bei mir lässt sich in keiner weise der MediaPlayer an die Form anpassen. Selbst über umgebaute "Umwege" nicht.
Außerdem ist mir aufgefallen, dass die Delphi Applikation mit dem MediaPlayer so extrem langsam läuft und stockt, das es nicht zu empfehlen ist, diesen zu verwenden.

Schaue dich einfach nach einer anderen möglichkeit um, um das Problem zu lösen.

blauweiss 22. Apr 2010 19:13

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Hi AlexII,

ich hab nachgeschaut, das Problem mit dem Form-Resizing hatte ich hiermit in den Griff bekommen.

Im Private-Teil der Form:
Delphi-Quellcode:
    InSizing: boolean;
    procedure MyFormSizing(var Msg: TMessage); message WM_SIZING;
    procedure MyFormExitSizeMove(var Msg: TMessage); message WM_EXITSIZEMOVE;
Im FormCreate:
Delphi-Quellcode:
procedure TfVideoMSMP.FormCreate(Sender: TObject);
begin
  InSizing := false;
...
end
die beiden Methoden:
Delphi-Quellcode:
procedure TfVideoMSMP.MyFormSizing(var Msg: TMessage);
begin
  Msg.Result := 1;
  InSizing := true;
end; // MyFormSizing

procedure TfVideoMSMP.MyFormExitSizeMove(var Msg: TMessage);
begin
  Msg.Result := 0;
  if InSizing then
    WindowsMediaPlayer.DoObjectVerb(OLEIVERB_SHOW);
  InSizing := false;
end; // MyFormExitSizeMove
damit wird nach Resize der Form der Mediaplayer (Align = alClient) an die Größe der Form angepasst.

Grüße,
blauweiss

AlexII 22. Apr 2010 20:00

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Ja es funkt, danke dir! :thumb:

lbccaleb 22. Apr 2010 20:04

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Fehlt da nicht nen "T" vor "Form"??

AlexII 22. Apr 2010 20:05

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Zitat:

Zitat von lbccaleb
Fehlt da nicht nen "T" vor "Form"??

Ja genau, hab das schon gemacht, funkt wunderbar!

Hab jetzt aber das andere Problem, beim Maximieren bleibt der Player so wie er war, wird also nicht mit maximiert.

blauweiss 22. Apr 2010 20:40

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Zitat:

Zitat von AlexII
Zitat:

Zitat von lbccaleb
Fehlt da nicht nen "T" vor "Form"??

Ja genau, hab das schon gemacht, funkt wunderbar!

Hab jetzt aber das andere Problem, beim Maximieren bleibt der Player so wie er war, wird also nicht mit maximiert.

Hi AlexII !

witzig, genau das ist mir in meinem Projekt gerade auch aufgefallen ! :P
Maximieren ist ein Problem, weil es dafür irgendwie kein vernünftiges Event zu geben scheint (oder ich hab nix gefunden).

Habe dafür diese Lösung im Angebot:
Zusätzlich im private-Teil der TForm :zwinker:
Delphi-Quellcode:
    OldWindowState: TWindowState;
    procedure MyFormSize(var Msg: TMessage); message WM_SIZE;
im FormShow (oder FormCreate)
Delphi-Quellcode:
  OldWindowState := WindowState;
und in der Methode MyFormSize:
Delphi-Quellcode:
procedure TfVideoMSMP.MyFormSize(var Msg: TMessage);
begin
  Msg.Result := 0;
  if (WindowState <> OldWindowState) then
    WindowsMediaPlayer.DoObjectVerb(OLEIVERB_SHOW);
  OldWindowState := WindowState;
end; // MyFormSize
damit funktioniert's bei mir jetzt auch beim Maximize bzw. Wiederherstellen.

Grüße,
blauweiss

AlexII 22. Apr 2010 20:49

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Und bei mir klappt das nicht... :( Dazu noch funktioniert auch dein erster Code nicht, ich meine im Kombination mit dem für maximieren.

blauweiss 22. Apr 2010 20:55

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Und was genau klappt nicht....?

Ich mußte bei mir in der Methode MyFormSize noch ein inherited reinmachen, lag aber daran, daß mein TfVideoMSMP von einer anderen TForm abgeleitet ist:
Delphi-Quellcode:
procedure TfVideoMSMP.MyFormSize(var Msg: TMessage);
begin
  inherited;
  Msg.Result := 0;
  ...
Setz mal einen Breakpoint in diese Routine, kommt der Debugger bei Dir dorthin ?

Grüße,
blauweiss

AlexII 22. Apr 2010 20:59

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Also mit inherited; funktioniert jetzt alles. :thumb:

Aber das Video selbst wird beim maximieren nicht vergrößert, ist das normal so? Wenn man aber auf "Vollbild" klickt wird das Video groß.

PS. weiß du zufällig wie man Zoom im Player per Code ändert?

blauweiss 22. Apr 2010 21:09

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Bei mir wird das Video-Fenster irgendwann auch nicht mehr größer beim Resize, nur der Rahmen drumrum.
Probier mal "FullScreen" auf true zu setzen (hat bei mir auf die Schnelle nicht geklappt, bin gerade an einem anderen Projekt am kämpfen...) 8-)

blauweiss

AlexII 22. Apr 2010 21:13

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Ok danke dir :thumb:

Das mit der Videogröße ist schon richtig denke ich. Ist gut so!

blauweiss 22. Apr 2010 21:15

Re: WinMediaPlayer lässt sich auf einem Form nicht maximiere
 
Hi AlexII, gern geschehen :thumb:


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