[gelöst] Frage zu TLCLVLCPlayer

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

[gelöst] Frage zu TLCLVLCPlayer

Beitrag von wennerer »

Hallo,
ich probiere mit der TLCLVLCPlayer Komponente herum. Eigentlich funktioniert alles soweit gut. Ich habe jetzt nur festgestellt das sich mein Programm unter Windows nicht beenden lässt. Unter Linux geht es. Lasse ich im Close den Befehl "FPlayer.Free;" weg lässt sich das Programm auch in Windows beenden. Weiß Jemand wo das herkommt bzw. was ich da ändern muss? Hab mal ein Minimal Beispiel angehängt.
Viele Grüße
Bernd

Code: Alles auswählen

 
unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls,
  lclvlc;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    FPlayer : TLCLVLCPlayer;
    PVideo  : TGroupBox;
    Laden   : TButton;
    Spielen : TButton;
    Stop    : TButton;
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure DateiLaden(Sender: TObject);
    procedure DateiSpielen(Sender: TObject);
    procedure DateiStop(Sender: TObject);
  private
 
  public
 
  end;
 
var
  Form1    : TForm1;
  Pfad     : string;
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 self.Left   := 100;
 self.Top    := 100;
 self.Width  := 520;
 self.Height := 600;
 self.Caption:= 'Minimal Player';
 
 PVideo         := TGroupBox.Create(self);
 PVideo.Parent  := self;
 PVideo.Left    :=  10;
 PVideo.Top     :=  10;
 PVideo.Width   := 500;
 PVideo.Height  := 500;
 PVideo.Color := clwhite;
 PVideo.Caption  := '';
 
 Laden           := TButton.Create(self);
 Laden.Parent    := self;
 Laden.Left      :=  10;
 Laden.Top       := 560;
 Laden.Width     :=  80;
 Laden.Height    :=  25;
 Laden.Caption   := 'Datei laden';
 Laden.OnClick   := @DateiLaden;
 
 Spielen           := TButton.Create(self);
 Spielen.Parent    := self;
 Spielen.Left      := 100;
 Spielen.Top       := 560;
 Spielen.Width     :=  80;
 Spielen.Height    :=  25;
 Spielen.Caption   := 'Play';
 Spielen.Enabled   := false;
 Spielen.OnClick   := @DateiSpielen;
 
 Stop           := TButton.Create(self);
 Stop.Parent    := self;
 Stop.Left      := 190;
 Stop.Top       := 560;
 Stop.Width     :=  80;
 Stop.Height    :=  25;
 Stop.Caption   := 'Stop';
 Stop.Enabled   := false;
 Stop.OnClick   := @DateiStop;
 
 
 FPlayer                   := TLCLVLCPlayer.Create (self);
 FPlayer.ParentWindow      := PVideo;
 
end;
 
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
 FPlayer.Free;
end;
 
procedure TForm1.DateiLaden(Sender: TObject);
var OpenDialog : TOpendialog;
begin
 Opendialog := TOpendialog.Create(self);
 if OpenDialog.Execute then
  begin
   pfad := OpenDialog.Filename;
   Spielen.Enabled:=true;
   Stop.Enabled:=true;
  end;
 Opendialog.Free;
end;
 
procedure TForm1.DateiSpielen(Sender: TObject);
begin
 FPlayer.PlayFile(pfad);
end;
 
procedure TForm1.DateiStop(Sender: TObject);
begin
 FPlayer.Stop;
end;
 
end.
 
 
Zuletzt geändert von wennerer am So 22. Mär 2020, 10:46, insgesamt 1-mal geändert.

wennerer
Beiträge: 507
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Frage zu TLCLVLCPlayer

Beitrag von wennerer »

Alles klar,
ich musste noch die Groupbox freigeben :shock:
Dann gehts!
Viele Grüße Bernd

Code: Alles auswählen

 
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
 PVideo.Free;
 FPlayer.Free;
end;   

Antworten