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.