AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Parent löschen?

Ein Thema von progopa · begonnen am 4. Nov 2019 · letzter Beitrag vom 7. Nov 2019
Antwort Antwort
progopa

Registriert seit: 22. Nov 2012
28 Beiträge
 
#1

Parent löschen?

  Alt 4. Nov 2019, 22:46
Hallo,
ich möchte eine Video Ausgabe (TPasLibVlcPlayer) wahlfrei auf 2 Monitoren und eingebettet auf einem Panel anzeigen.
Die Anzeige soll wärend der laufenden Wiedergabe erfolgen.
Der TPasLibVlcPlayer ist auf einem Form ohne Rand.
Über Screem.Monitors kann ich das Fenster wahlfrei auf Monitor 1 oder 2 darstellen.
Die Anzeige soll auch im Programm auf einen Panel eingebettet möglich sein.
Dazu weise ich das Panel als Parent zu.
Das funktioniert auch.
Den gesetzten Parent kann ich jedoch nicht wieder löschen.
Das Fenster ist danach nicht mehr auf Monitor1 oder 2 zuweisbar.
Parent Handle auf 0 setzen bringt Fehler.
Parent := nil geht auch nicht.
Hat wer eine Idee?

Viele Grüße
  Mit Zitat antworten Zitat
Alt 5. Nov 2019, 02:08     Erstellt von Frühlingsrolle
Dieser Beitrag wurde von Daniel gelöscht. - Grund: Verdacht auf SPAM und den damit verbundenen verschwenderischen Umgang von wertvollen Bits und Bytes
progopa

Registriert seit: 22. Nov 2012
28 Beiträge
 
#2

AW: Parent löschen?

  Alt 5. Nov 2019, 11:07
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.

Geändert von progopa ( 5. Nov 2019 um 11:26 Uhr)
  Mit Zitat antworten Zitat
progopa

Registriert seit: 22. Nov 2012
28 Beiträge
 
#3

AW: Parent löschen?

  Alt 6. Nov 2019, 10:48
Hat sich erledigt.
Ich habe es hinbekommen.
Das Testen gestaltet sich etwas schwierig, da ich mit XE2 arbeite.
Wnnz.B. eine Shelltree oder der VLC Player im Spiel ist, kann der Start schon mal 1 min dauern (nur im Debug Modus).
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#4

AW: Parent löschen?

  Alt 6. Nov 2019, 20:03
Hat sich erledigt.
Ich habe es hinbekommen.
Das Testen gestaltet sich etwas schwierig, da ich mit XE2 arbeite.
Wnnz.B. eine Shelltree oder der VLC Player im Spiel ist, kann der Start schon mal 1 min dauern (nur im Debug Modus).
Ist ja schön, dass du's hinbekommen hast, nur lässt du uns ob des wie das nun
klappte leider ganz im dunkeln...

Und was macht XE2 für Probleme mit dem Testen?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
progopa

Registriert seit: 22. Nov 2012
28 Beiträge
 
#5

AW: Parent löschen?

  Alt 7. Nov 2019, 09:39
Der Programmteil war nicht von mir.
Ich habe ihn neu geschrieben und jetzt funktioniert es halt.
Um zu vermeiden, dass noch wer Zeit für ein gelöstes Problem verschwendet, habe ich hier die Lösung des Problems mitgeteilt.
XE2 hat mit dem Debugger Probleme, wenn Shell Funktionen aufgerufen werden. Hier werden unendlich Messages generiert.
In Folgeversionen ist das Problem wohl beseitigt.
Ich habe halt das Pech weiter mit XE2 arbeiten zu müssen.
Trotzdem vielen Dank für den konstruktiven Hinweis.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 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