Guten Tag.
Hier noch mal mein Problem ausführlicher.
In dem zu verschiebenden Fenster läuft der VLC Player.
Wärend des Abspielens eines Videos möchte ich per Button dieses Fenster auf einen von 2 Monitoren als Vollbild darstellen.
Die Form soll auch wieder in ein Panel(Platzhalter) auf dem Hauptfenster verschoben werden.
Vollbildmodus funktioniert problemlos.
So ändere ich das Fenster.
Delphi-Quellcode:
procedure TFrmVideo.ShowFullScreen1;
begin
InitPos(0);
PasLibVlcPlayer1.Align := alClient;
FormStyle := fsNormal;
Invalidate;
Show;
end
;
Delphi-Quellcode:
procedure TFrmVideo.InitPos(Monitor: Integer);
begin
FormStyle := fsNormal;
PasLibVlcPlayer1.Align := alNone;
MakeFullyVisible(Screen.Monitors[Monitor]);
aleft := Screen.Monitors[Monitor].left;
aTop := Screen.Monitors[Monitor].Top;
awidth := Screen.Monitors[Monitor].width;
aheight := Screen.Monitors[Monitor].height;
Align := alNone;
Parent := nil;
end;
Zum Einbetten in eine Form übergebe ich ein TPanel als Parent.
Ein Zuweisen des Parent an die Form wüde funktionieren.
Ist hier allerdings nicht verwendbar, da der VLCPlayer bei Parentwechsel im aktiven Zustand einen Fehler bringt.
Mit diesem Code möchte ich die Form auf die Position des Panels legen.
Die Position ist jedoch nicht richtig.
Delphi-Quellcode:
procedure TFrmVideo.SetParentComponent(aParent: TWinControl);
var
P: TPoint;
begin
p := aParent.ClientToScreen(Point(aParent.Left,aParent.Top));
aleft := p.x;
aTop := p.y;
awidth := aParent.Width;
aheight := aParent.Height;
Self.left := aleft;
Self.Top := aTop;
Self.width := awidth;
Self.height := aheight;
FormStyle := fsNormal;
Invalidate;
Show;
end;
Als Aparent wird ein Panel übergeben.
Hat wer eine Idee, was ich falsch mache.
Danke im Voraus.