Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr.
Seite 2 von 3     12 3      

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