Difference between revisions of "ActiveX/Delphi"
Jump to navigation
Jump to search
m |
m (See also: Using libvlc with Delphi) |
||
(17 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{See also|Using libvlc with Delphi}} | |
+ | {{howto| use the [[ActiveX]] control with Delphi|nosort=yes}} | ||
==Getting started== | ==Getting started== | ||
Line 5: | Line 6: | ||
* Borland Delphi 3 or newer | * Borland Delphi 3 or newer | ||
* a running System with Microsoft Windows | * a running System with Microsoft Windows | ||
− | * [ | + | * [http://www.videolan.org/ The VideoLan Client] (VLC) including the [[ActiveX]] Plugin installed |
===Import the ActiveX-Component=== | ===Import the ActiveX-Component=== | ||
Line 16: | Line 17: | ||
*You should now be able to add the ''TVLCPlugin'' from the ActiveX-Tab of your Component toolbox. | *You should now be able to add the ''TVLCPlugin'' from the ActiveX-Tab of your Component toolbox. | ||
− | ==Usage== | + | ==Usage Development-Time== |
− | + | The VLC-Player Object ''TVLCPlugin'' can be found in your ActiveX-Components Tabsheet. | |
− | |||
− | The VLC-Player Object can be found in your ActiveX-Components Tabsheet. | ||
Place one of it in your Form1, place a TButton and use the following code: | Place one of it in your Form1, place a TButton and use the following code: | ||
− | + | <big><big><syntaxhighlight lang="delphi"> | |
unit Unit1; | unit Unit1; | ||
Line 27: | Line 26: | ||
uses | uses | ||
− | Windows, | + | Windows, Variants, Forms, Classes, Controls, StdCtrls, OleCtrls, |
− | + | AXVLC_TLB; | |
type | type | ||
TForm1 = class(TForm) | TForm1 = class(TForm) | ||
+ | VLCPlugin1: TVLCPlugin; | ||
Button1: TButton; | Button1: TButton; | ||
− | |||
procedure Button1Click(Sender: TObject); | procedure Button1Click(Sender: TObject); | ||
private | private | ||
Line 42: | Line 41: | ||
type | type | ||
− | + | VLCPlaylistMode = TOleEnum; | |
+ | |||
const | const | ||
− | + | VLCPlayListInsert = $00000001; | |
− | + | VLCPlayListReplace = $00000002; | |
− | + | VLCPlayListAppend = $00000004; | |
− | + | VLCPlayListGo = $00000008; | |
− | + | VLCPlayListCheckInsert = $00000010; | |
+ | |||
+ | var | ||
+ | Form1: TForm1; | ||
+ | |||
+ | implementation | ||
+ | |||
+ | {$R *.dfm} | ||
+ | |||
+ | procedure TForm1.Button1Click(Sender: TObject); | ||
+ | begin | ||
+ | VLCPlugin1.addTarget('C:\video.mpg', null, VLCPlayListInsert, 0); | ||
+ | // you can use any MRL with parameters instead of 'c:\video.mpg' here | ||
+ | VLCPlugin1.play; | ||
+ | end; | ||
+ | |||
+ | end. | ||
+ | </syntaxhighlight></big></big> | ||
+ | |||
+ | ==Usage Runtime== | ||
+ | If you're planning to use the VLC-Player in your application but don't know when and where, use this code to create the component on-demand. | ||
+ | |||
+ | <big><big><syntaxhighlight lang="delphi"> | ||
+ | unit Unit1; | ||
+ | |||
+ | interface | ||
+ | |||
+ | uses | ||
+ | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, OleCtrls, | ||
+ | AXVLC_TLB, StdCtrls, Registry, Dialogs; | ||
+ | |||
+ | type | ||
+ | TForm1 = class(TForm) | ||
+ | Button1: TButton; | ||
+ | Button2: TButton; | ||
+ | procedure Button2Click(Sender: TObject); | ||
+ | procedure Button1Click(Sender: TObject); | ||
+ | private | ||
+ | { Private-Deklarationen } | ||
+ | public | ||
+ | { Public-Deklarationen } | ||
+ | end; | ||
var | var | ||
Form1: TForm1; | Form1: TForm1; | ||
+ | VLCPlugin1: TVLCPlugin; | ||
+ | blVLCPluginFound: boolean; | ||
+ | |||
+ | type | ||
+ | VLCPlaylistMode = TOleEnum; | ||
+ | |||
+ | const | ||
+ | VLCPlayListInsert = $00000001; | ||
+ | VLCPlayListReplace = $00000002; | ||
+ | VLCPlayListAppend = $00000004; | ||
+ | VLCPlayListGo = $00000008; | ||
+ | VLCPlayListCheckInsert = $00000010; | ||
implementation | implementation | ||
Line 58: | Line 111: | ||
procedure TForm1.Button1Click(Sender: TObject); | procedure TForm1.Button1Click(Sender: TObject); | ||
+ | var | ||
+ | Reg: TRegistry; | ||
begin | begin | ||
− | + | blVLCPluginFound := false; | |
− | + | ||
− | + | // Is VLC ActiveX Plugin installed on this PC? | |
+ | Reg := TRegistry.Create; | ||
+ | try | ||
+ | Reg.RootKey := HKEY_LOCAL_MACHINE; | ||
+ | if Reg.OpenKeyReadOnly('\Software\Classes\VideoLAN.VLCPlugin.1\') then begin | ||
+ | blVLCPluginFound := true; | ||
+ | end; | ||
+ | finally | ||
+ | FreeAndNil(Reg); | ||
+ | end; | ||
+ | |||
+ | if blVLCPluginFound then begin | ||
+ | VLCPlugin1 := TVLCPlugin.Create(Self); | ||
+ | VLCPlugin1.Parent := Self; // Means: Place the VLC-Player into Form1 | ||
+ | VLCPlugin1.Width := 400; | ||
+ | VLCPlugin1.Height := 300; | ||
+ | VLCPlugin1.Top := 50; | ||
+ | VLCPlugin1.Left := 50; | ||
+ | VLCPlugin1.Show; | ||
+ | VLCPlugin1.addTarget('C:\video.mpg', null, VLCPlayListInsert, 0); | ||
+ | // you can use any MRL with parameters instead of 'c:\video.mpg' here | ||
+ | VLCPlugin1.play; | ||
+ | end else begin | ||
+ | ShowMessage('I am really sorry, but VLC (or its ActiveX Plugin) is currently not installed on this PC!'); | ||
+ | end; | ||
+ | end; | ||
+ | procedure TForm1.Button2Click(Sender: TObject); | ||
+ | begin | ||
+ | if blVLCPluginFound then begin | ||
+ | VLCPlugin1.stop; | ||
+ | FreeAndNil(VLCPlugin1); | ||
+ | end; | ||
end; | end; | ||
end. | end. | ||
+ | </syntaxhighlight></big></big> | ||
+ | |||
+ | ==Alternative way to bring VLC to your Delphi Application== | ||
+ | Much easier way to bring VLC to your Delphi Application is to paste a TWebbrowser Object in your Form, is generate Code for the HTML and m3u file and let the Webbrowser load the HTML-file. For detailed information have a look at [[ActiveX/HTML]]. | ||
+ | |||
+ | You can also use [[LibVLC]] like in [http://tothpaul.free.fr/sources.php?dprgrp.vld VideoLAN for Delphi]. | ||
+ | |||
+ | ==See also== | ||
+ | [[ActiveX/HTML]] |
Latest revision as of 09:07, 19 March 2019
See also: Using libvlc with Delphi
This page describes how to use the ActiveX control with Delphi. | Other "how to" pages |
Contents
Getting started
What you need
- Borland Delphi 3 or newer
- a running System with Microsoft Windows
- The VideoLan Client (VLC) including the ActiveX Plugin installed
Import the ActiveX-Component
- Start your Borland Delphi
- < Delphi2005: Select Components --> Import ActiveX --> VideoLan VLC ActiveX Plugin
- >= Delphi 2006: Select Components --> Import component --> Import ActiveX Control --> VideoLan VLC ActiveX Plugin
- Otherwise try creating a new package using the created AXVLC_TLB.pas
Confirm successfull installation
- You should now be able to add the TVLCPlugin from the ActiveX-Tab of your Component toolbox.
Usage Development-Time
The VLC-Player Object TVLCPlugin can be found in your ActiveX-Components Tabsheet. Place one of it in your Form1, place a TButton and use the following code:
unit Unit1;
interface
uses
Windows, Variants, Forms, Classes, Controls, StdCtrls, OleCtrls,
AXVLC_TLB;
type
TForm1 = class(TForm)
VLCPlugin1: TVLCPlugin;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
type
VLCPlaylistMode = TOleEnum;
const
VLCPlayListInsert = $00000001;
VLCPlayListReplace = $00000002;
VLCPlayListAppend = $00000004;
VLCPlayListGo = $00000008;
VLCPlayListCheckInsert = $00000010;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
VLCPlugin1.addTarget('C:\video.mpg', null, VLCPlayListInsert, 0);
// you can use any MRL with parameters instead of 'c:\video.mpg' here
VLCPlugin1.play;
end;
end.
Usage Runtime
If you're planning to use the VLC-Player in your application but don't know when and where, use this code to create the component on-demand.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, OleCtrls,
AXVLC_TLB, StdCtrls, Registry, Dialogs;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
VLCPlugin1: TVLCPlugin;
blVLCPluginFound: boolean;
type
VLCPlaylistMode = TOleEnum;
const
VLCPlayListInsert = $00000001;
VLCPlayListReplace = $00000002;
VLCPlayListAppend = $00000004;
VLCPlayListGo = $00000008;
VLCPlayListCheckInsert = $00000010;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
blVLCPluginFound := false;
// Is VLC ActiveX Plugin installed on this PC?
Reg := TRegistry.Create;
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKeyReadOnly('\Software\Classes\VideoLAN.VLCPlugin.1\') then begin
blVLCPluginFound := true;
end;
finally
FreeAndNil(Reg);
end;
if blVLCPluginFound then begin
VLCPlugin1 := TVLCPlugin.Create(Self);
VLCPlugin1.Parent := Self; // Means: Place the VLC-Player into Form1
VLCPlugin1.Width := 400;
VLCPlugin1.Height := 300;
VLCPlugin1.Top := 50;
VLCPlugin1.Left := 50;
VLCPlugin1.Show;
VLCPlugin1.addTarget('C:\video.mpg', null, VLCPlayListInsert, 0);
// you can use any MRL with parameters instead of 'c:\video.mpg' here
VLCPlugin1.play;
end else begin
ShowMessage('I am really sorry, but VLC (or its ActiveX Plugin) is currently not installed on this PC!');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if blVLCPluginFound then begin
VLCPlugin1.stop;
FreeAndNil(VLCPlugin1);
end;
end;
end.
Alternative way to bring VLC to your Delphi Application
Much easier way to bring VLC to your Delphi Application is to paste a TWebbrowser Object in your Form, is generate Code for the HTML and m3u file and let the Webbrowser load the HTML-file. For detailed information have a look at ActiveX/HTML.
You can also use LibVLC like in VideoLAN for Delphi.