Difference between revisions of "ActiveX/Delphi"
Jump to navigation
Jump to search
m (→What you need) |
|||
Line 74: | Line 74: | ||
uses | uses | ||
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, OleCtrls, | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, OleCtrls, | ||
− | AXVLC_TLB, StdCtrls; | + | AXVLC_TLB, StdCtrls, Registry, Dialogs; |
type | type | ||
Line 91: | Line 91: | ||
Form1: TForm1; | Form1: TForm1; | ||
VLCPlugin1: TVLCPlugin; | VLCPlugin1: TVLCPlugin; | ||
+ | blVLCPluginFound: boolean; | ||
type | type | ||
Line 107: | Line 108: | ||
procedure TForm1.Button1Click(Sender: TObject); | procedure TForm1.Button1Click(Sender: TObject); | ||
+ | var | ||
+ | Reg: TRegistry; | ||
begin | begin | ||
− | VLCPlugin1 := TVLCPlugin.Create(Self); | + | 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; | end; | ||
procedure TForm1.Button2Click(Sender: TObject); | procedure TForm1.Button2Click(Sender: TObject); | ||
begin | begin | ||
− | VLCPlugin1.stop; | + | if blVLCPluginFound then begin |
− | + | VLCPlugin1.stop; | |
+ | FreeAndNil(VLCPlugin1); | ||
+ | end; | ||
end; | end; | ||
end. | end. |
Revision as of 13:40, 14 February 2006
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
- VideoLan 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.