Sign in Join
Wiki copytemporary

LazActiveX/es: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1+[![Windows logo - 2012.svg](https://upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Windows_logo_-_2012.svg/50px-Windows_logo_-_2012.svg.png)](</File:Windows_logo_-_2012.svg>)
2+
3+This article applies to [Windows](</Category:Windows> "Category:Windows") only.
4+
5+See also: [[Multiplatform Programming Guide]]
6+
7+│ **[[LazActiveX|English (en)]]** │ **español (es)** │
8+
19## Resumen
210
3-   El paquete LazActiveX contiene el componente TActiveXContainer y la integración con el IDE de las herramientas necesarias para crear componentes ActiveX desde una librería de tipos o directamente desde el objeto (exe o dll). ActiveX es una tecnología de Microsoft Windows y sólo se puede utilizar en esa plataforma. Compilación cruzada para Windows es posible, pero el importador de librerías de tipos (typelib) para crear los enlaces COM sólo funciona en Windows (no probado en Wine)
11+El paquete LazActiveX contiene el componente TActiveXContainer y la integración con el IDE de las herramientas necesarias para crear componentes ActiveX desde una librería de tipos o directamente desde el objeto (exe o dll). ActiveX es una tecnología de Microsoft Windows y sólo se puede utilizar en esa plataforma. Compilación cruzada para Windows es posible, pero el importador de librerías de tipos (typelib) para crear los enlaces COM sólo funciona en Windows (no probado en Wine)
412
513## Instalación
614
7-   **Aviso**: LazActiveX necesita FPC \>= 2.6.1. La importación de librerías de tipos sólo funciona en Windows XP o posterior.
15+**Aviso** : LazActiveX necesita FPC >= 2.6.1. La importación de librerías de tipos sólo funciona en Windows XP o posterior.
816
9-   Desde la opción del menú 'Paquete'/'Instalar/Desinstalar Paquetes ...' en la ventana, seleccionar LazActiveX 0.1, y dar al botón 'Instalar Seleccionado' y después a 'Guardar y Reconstruir el IDE'. Alternativamente, abrir el paquete LazActiveX.lpk y pulsar en 'Usar \>\>'/'Instalar'.
17+Desde la opción del menú 'Paquete'/'Instalar/Desinstalar Paquetes ...' en la ventana, seleccionar LazActiveX 0.1, y dar al botón 'Instalar Seleccionado' y después a 'Guardar y Reconstruir el IDE'. Alternativamente, abrir el paquete LazActiveX.lpk y pulsar en 'Usar >>'/'Instalar'.
1018
11-   Cuando la instalación termine correctamente, una nueva pestaña 'ActiveX' se añade a la paleta de componentes.
19+Cuando la instalación termine correctamente, una nueva pestaña 'ActiveX' se añade a la paleta de componentes.
1220
13-![](/wiki-images/9/91/LazActiveX-Install1.png)
21+[![LazActiveX-Install1.png](/wiki-images/9/91/LazActiveX-Install1.png)](</File:LazActiveX-Install1.png>)
1422
1523## Utilización
1624
17-   Existen 3 maneras diferentes de utilizar los componentes de ActiveX:
25+Existen 3 maneras diferentes de utilizar los componentes de ActiveX:
1826
19-1. Poner el componente TActiveXContainer en un formulario y asignar el nombre de la clase ActiveX a la propiedad OleClassName. Adecuado para el enlace en tiempo de ejecución ( o tardío) y sin el apoyo directo para eventos.
20-2. Importar la biblioteca de tipo ActiveX, poner el componente TActiveXContainer en un formulario, crear una instancia del objeto ActiveX y asignarlo a la propiedad ComServer. Adecuado para el enlace en tiempo de compilación (o temprano) y con el apoyo para eventos.
21-3. Crear un nuevo componente desde la librería de tipos o el objeto y poner nuevo componente en el formulario. Esto también utiliza enlace anticipado y tiene soporte completo para eventos. Los controladores de eventos pueden ser asignados desde el IDE.
27+ 1. Poner el componente TActiveXContainer en un formulario y asignar el nombre de la clase ActiveX a la propiedad OleClassName. Adecuado para el enlace en tiempo de ejecución ( o tardío) y sin el apoyo directo para eventos.
28+ 2. Importar la biblioteca de tipo ActiveX, poner el componente TActiveXContainer en un formulario, crear una instancia del objeto ActiveX y asignarlo a la propiedad ComServer. Adecuado para el enlace en tiempo de compilación (o temprano) y con el apoyo para eventos.
29+ 3. Crear un nuevo componente desde la librería de tipos o el objeto y poner nuevo componente en el formulario. Esto también utiliza enlace anticipado y tiene soporte completo para eventos. Los controladores de eventos pueden ser asignados desde el IDE.
2230
2331### Enlace tardío de TActiveXContainer
2432
25-   Aunque la teoría es bastante compleja, el enlace en tiempo de ejecución (o tardío) es la manera más rápida para crear y ejecutar un componente ActiveX.
33+Aunque la teoría es bastante compleja, el enlace en tiempo de ejecución (o tardío) es la manera más rápida para crear y ejecutar un componente ActiveX.
2634
27-   Por *enlace tardío* se refiere el hecho de que la interfaz con el objeto se realiza completamente en tiempo de ejecución. Las referencias a objetos se almacenan como **dispinterfaces** en variables variant y los métodos y propiedades de los objetos se *descubren* en tiempo de ejecución. El compilador genera toda la magia de tiempo de ejecución para ti, pero el inconveniente es que el compilador no es capaz de ayudar a encontrar los nombres de los métodos o propiedades en tiempo de diseño. Una buena documentación para el objeto ActiveX es muy importante (el código de ejemplo para VB puede ser fácilmente traducido a pascal). Todos los errores en los nombres de método y sus parámetros serán errores en tiempo de ejecución. El *descubrimiento* en tiempo de ejecución también agregará sobrecarga al proceso.
35+Por _enlace tardío_ se refiere el hecho de que la interfaz con el objeto se realiza completamente en tiempo de ejecución. Las referencias a objetos se almacenan como **dispinterfaces** en variables variant y los métodos y propiedades de los objetos se _descubren_ en tiempo de ejecución. El compilador genera toda la magia de tiempo de ejecución para ti, pero el inconveniente es que el compilador no es capaz de ayudar a encontrar los nombres de los métodos o propiedades en tiempo de diseño. Una buena documentación para el objeto ActiveX es muy importante (el código de ejemplo para VB puede ser fácilmente traducido a pascal). Todos los errores en los nombres de método y sus parámetros serán errores en tiempo de ejecución. El _descubrimiento_ en tiempo de ejecución también agregará sobrecarga al proceso.
2836
29-   **Ejemplo:** Embeber el reproductor VLC en un formulario. ¡VLC ha de estar correctamente instalado!
37+**Ejemplo:** Embeber el reproductor VLC en un formulario. ¡VLC ha de estar correctamente instalado!
3038
31-- Colocar un TActiveXContainer, un TButton y un TFileNameEdit en un formulario.
39+ * Colocar un TActiveXContainer, un TButton y un TFileNameEdit en un formulario.
3240
33-- Da el tamaño y la posición deseada al componente TActiveXContainer y escribe 'VideoLAN.VLCPlugin.2' en la propiedad OleClassName, pon a verdadera la propiedad Active. Esto dará un formulario similar a este:
41+ * Da el tamaño y la posición deseada al componente TActiveXContainer y escribe 'VideoLAN.VLCPlugin.2' en la propiedad OleClassName, pon a verdadera la propiedad Active. Esto dará un formulario similar a este:
3442
35-![](/wiki-images/3/37/LazActiveX-VLC-Form.png)
43+[![LazActiveX-VLC-Form.png](/wiki-images/3/37/LazActiveX-VLC-Form.png)](</File:LazActiveX-VLC-Form.png>)
3644
37-- Crea un evento Onclick para el botón con este código:
45+ * Crea un evento Onclick para el botón con este código:
3846
39-``` pascal
40- procedure TForm1.Boton1Click(Sender: TObject);
41- var
42- Actx:variant;
43- begin
44- Actx:=ActiveXContainer1.ComServer;
45- Actx.playlist.add(widestring(FileNameEdit1.FileName));
46- Actx.playlist.play;
47- end;
4847```
48+procedure TForm1.Boton1Click(Sender: TObject);
49+ var
50+ Actx:variant;
51+ begin
52+ Actx:=ActiveXContainer1.ComServer;
53+ Actx.playlist.add(widestring(FileNameEdit1.FileName));
54+ Actx.playlist.play;
55+ end;
56+```
4957
50-- Ejecuta el programa, selecciona una película y haz clic en el botón para verla. Ten en cuenta que VLC junto con gdb parecen causar algunos problemas (lenta puesta en marcha en el mejor de los casos, se cuelga o se bloquea). Mejor ejecuta el programa fuera del IDE.
58+ * Ejecuta el programa, selecciona una película y haz clic en el botón para verla. Ten en cuenta que VLC junto con gdb parecen causar algunos problemas (lenta puesta en marcha en el mejor de los casos, se cuelga o se bloquea). Mejor ejecuta el programa fuera del IDE.
5159
5260### Enlace temprano de TActiveXContainer
5361
54-   El Enlace temprano permite conocer todos los interfaces al compilador. Así que tenemos que crear los enlaces pascal para el objeto ActiveX. La herramienta **importtl.exe** en el directorio utils FPC lo hace por ti y crea ***coclases*** y detectores de eventos para facilitar el uso de los objetos en pascal. Una interfaz gráfica de usuario para la herramienta importtl.exe está integrada con el paquete LazActiveX y es accesible en el menú Herramientas: Import Type Library
55-
56-![](/wiki-images/4/47/LazActiveX-Importtl.png)
57-
58-   Marca 'Convert dependent typelibs' para convertir también las librerías de tipos para los objetos COM que son finalmente utilizados por el objeto seleccionado. Al hacer clic en Aceptar, se comenzará la importación de librería de tipos y creará nuevas unidades en el IDE. Las unidades tienen la siguiente nomenclatura: NombreLibreriaVersionMayor_VersionMenor_TLB. Ej: Access_9_0_TLB.
62+El Enlace temprano permite conocer todos los interfaces al compilador. Así que tenemos que crear los enlaces pascal para el objeto ActiveX. La herramienta **importtl.exe** en el directorio utils FPC lo hace por ti y crea _**coclases**_ y detectores de eventos para facilitar el uso de los objetos en pascal. Una interfaz gráfica de usuario para la herramienta importtl.exe está integrada con el paquete LazActiveX y es accesible en el menú Herramientas: Import Type Library
5963
60-
61-**Usuarios Delphi**: Los nombres de unidad en Delphi no utilizan los números de versión.
64+[![LazActiveX-Importtl.png](/wiki-images/4/47/LazActiveX-Importtl.png)](</File:LazActiveX-Importtl.png>)
6265
63-   La creación de instancias de un objeto ActiveX se realiza en tiempo de ejecución mediante una llamada al método Create para la CoClass apropiado creado para la librería. Algunas librerías ActiveX exponen varios objetos y por tanto se crean múltiples coclases. Consulta la documentación de la librería ActiveX en caso de duda. Asignar el objeto instanciado ActiveX a la propiedad de un ComServer TActiveXContainer en un formulario y establecer la propiedad Active en True es todo lo que se necesita para embeberlo en la aplicación
66+Marca 'Convert dependent typelibs' para convertir también las librerías de tipos para los objetos COM que son finalmente utilizados por el objeto seleccionado. Al hacer clic en Aceptar, se comenzará la importación de librería de tipos y creará nuevas unidades en el IDE. Las unidades tienen la siguiente nomenclatura: NombreLibreriaVersionMayor_VersionMenor_TLB. Ej: Access_9_0_TLB.
6467
65-   **Ejemplo:** Embeber el reproductor VLC en un formulario. ¡VLC ha de estar correctamente instalado!
68+**Usuarios Delphi** : Los nombres de unidad en Delphi no utilizan los números de versión.
6669
67-- Pon un TActiveXContainer, un TButton y un TFileNameEdit en un formulario. Da el tamaño y la posición deseada al componente TActiveXContainer.
68-- Abre 'Import Type Library' desde el menú de herramientas y selecciona 'axvlc.dll' en el directorio de instalación de VLC. Clic OK. Se creará la unidad AXVLC_1_0_TLB.
70+La creación de instancias de un objeto ActiveX se realiza en tiempo de ejecución mediante una llamada al método Create para la CoClass apropiado creado para la librería. Algunas librerías ActiveX exponen varios objetos y por tanto se crean múltiples coclases. Consulta la documentación de la librería ActiveX en caso de duda. Asignar el objeto instanciado ActiveX a la propiedad de un ComServer TActiveXContainer en un formulario y establecer la propiedad Active en True es todo lo que se necesita para embeberlo en la aplicación
6971
70-- Añade AXVLC_1_0_TLB a la cláusula uses.
72+**Ejemplo:** Embeber el reproductor VLC en un formulario. ¡VLC ha de estar correctamente instalado!
7173
72-- Crea un evento OnClick para el botón y un evento OnCreate para el formulario. Escribe el siguiente código:
74+ * Pon un TActiveXContainer, un TButton y un TFileNameEdit en un formulario. Da el tamaño y la posición deseada al componente TActiveXContainer.
75+ * Abre 'Import Type Library' desde el menú de herramientas y selecciona 'axvlc.dll' en el directorio de instalación de VLC. Clic OK. Se creará la unidad AXVLC_1_0_TLB.
7376
74-``` pascal
75- var
76- VLC:IVLCControl2;
77+ * Añade AXVLC_1_0_TLB a la cláusula uses.
7778
78- procedure TForm1.Button1Click(Sender: TObject);
79- begin
80- VLC.playlist.add(utf8decode(FileNameEdit1.FileName),'',vararrayof([':aspect-ratio=16:9']));
81- VLC.playlist.play;
82- end;
79+ * Crea un evento OnClick para el botón y un evento OnCreate para el formulario. Escribe el siguiente código:
8380
84- procedure TForm1.FormCreate(Sender: TObject);
85- begin
86- VLC:=CoVLCPlugin2.Create;
87- ActiveXContainer1.ComServer:=VLC;
88- ActiveXContainer1.Active:=true;
89- end;
9081```
91-
92-- Ejecuta el programa, selecciona una película y pulsa el botón para verla.
93-
94-   El importador de tipos de librerías también añade soporte para los eventos que el ActiveX genera. En este caso, junto a la CoClass se define un descendiente de TEventSink para implementar el objeto ActiveX y todas sus propiedades OnEvent. Utiliza el descendiente de TEventSink en lugar de la CoClass si deseas utilizar los eventos. Su nombre empieza con TEvs seguido por el nombre de la clase.
95-
96-**Ejamplo:** Internet Explorer en un formulario con soporte de eventos.
97-
98-- Pon un a TActiveXContainer, un TButton, un TLabel y un TEdit en un formulario. Da el tamaño y la posición deseada al componente TActiveXContainer.
99-- Abre 'Import Type Library' desde le menú Herramientas y selecciona 'C:\WINDOWS\system32\ieframe.dll'. Pulsa OK. Se creará la unidad SHDocVw_1_1_TLB.
100-- Añade la unidad SHDocVw_1_1_TLB a la cláusula uses.
101-- Crea un evento OnClick para el botón y un evento OnCreate para el formulario.
102-- Crea en la clase TForm1 el procedimiento privado OnStatusTextChange(Sender: TObject;Text_:WideString);
103-- Escribe este código:
104-
105-``` pascal
106- var
107- Browser:TEvsWebBrowser;
82+var
83+ VLC:IVLCControl2;
84+
85+ procedure TForm1.Button1Click(Sender: TObject);
86+ begin
87+ VLC.playlist.add(utf8decode(FileNameEdit1.FileName),'',vararrayof([':aspect-ratio=16:9']));
88+ VLC.playlist.play;
89+ end;
90+
91+ procedure TForm1.FormCreate(Sender: TObject);
92+ begin
93+ VLC:=CoVLCPlugin2.Create;
94+ ActiveXContainer1.ComServer:=VLC;
95+ ActiveXContainer1.Active:=true;
96+ end;
97+```
10898
109- procedure TForm1.Button1Click(Sender: TObject);
110- var
111- url,onull:Olevariant;
99+ * Ejecuta el programa, selecciona una película y pulsa el botón para verla.
112100
113- begin
114- url:=Utf8decode(Edit1.Text);
115- onull:=NULL;
116- Browser.ComServer.Navigate2(url,onull,onull,onull,onull);
117- end;
101+El importador de tipos de librerías también añade soporte para los eventos que el ActiveX genera. En este caso, junto a la CoClass se define un descendiente de TEventSink para implementar el objeto ActiveX y todas sus propiedades OnEvent. Utiliza el descendiente de TEventSink en lugar de la CoClass si deseas utilizar los eventos. Su nombre empieza con TEvs seguido por el nombre de la clase.
118102
119- procedure TForm1.FormCreate(Sender: TObject);
120- begin
121- Browser:=TEvsWebBrowser.Create(Self);
122- ActiveXContainer1.ComServer:=Browser.ComServer;
123- ActiveXContainer1.Active:=true;
124- Browser.OnStatusTextChange:=@OnStatusTextChange;
125- end;
103+**Ejamplo:** Internet Explorer en un formulario con soporte de eventos.
126104
127- procedure TForm1.FormDestroy(Sender: TObject);
128- begin
129- Browser.Free;
130- end;
105+ * Pon un a TActiveXContainer, un TButton, un TLabel y un TEdit en un formulario. Da el tamaño y la posición deseada al componente TActiveXContainer.
106+ * Abre 'Import Type Library' desde le menú Herramientas y selecciona 'C:\WINDOWS\system32\ieframe.dll'. Pulsa OK. Se creará la unidad SHDocVw_1_1_TLB.
107+ * Añade la unidad SHDocVw_1_1_TLB a la cláusula uses.
108+ * Crea un evento OnClick para el botón y un evento OnCreate para el formulario.
109+ * Crea en la clase TForm1 el procedimiento privado OnStatusTextChange(Sender: TObject;Text_:WideString);
110+ * Escribe este código:
131111
132- procedure TForm1.OnStatusTextChange(Sender: TObject; Text_: WideString);
133- begin
134- Label1.Caption:=UTF8Encode(Text_);
135- end;
136112```
113+var
114+ Browser:TEvsWebBrowser;
115+
116+ procedure TForm1.Button1Click(Sender: TObject);
117+ var
118+ url,onull:Olevariant;
119+
120+ begin
121+ url:=Utf8decode(Edit1.Text);
122+ onull:=NULL;
123+ Browser.ComServer.Navigate2(url,onull,onull,onull,onull);
124+ end;
125+
126+ procedure TForm1.FormCreate(Sender: TObject);
127+ begin
128+ Browser:=TEvsWebBrowser.Create(Self);
129+ ActiveXContainer1.ComServer:=Browser.ComServer;
130+ ActiveXContainer1.Active:=true;
131+ Browser.OnStatusTextChange:=@OnStatusTextChange;
132+ end;
133+
134+ procedure TForm1.FormDestroy(Sender: TObject);
135+ begin
136+ Browser.Free;
137+ end;
138+
139+ procedure TForm1.OnStatusTextChange(Sender: TObject; Text_: WideString);
140+ begin
141+ Label1.Caption:=UTF8Encode(Text_);
142+ end;
143+```
137144
138-- Ejecuta el programa, introduce una URL en el control de edición y haz clic en el botón para navegar hasta la dirección URL. Label1 mostrará los mensajes de estado enviados por el navegador.
139-- Para acceder al objeto de documento (DOM), tienes que importar también la biblioteca de tipos de C:\WINDOWS\system32\mshtml.tlb y añadir la unidad MSHTML_4_0_TLB creada a la cláusula uses. Para mostrar por ejemplo el contenido de la etiqueta \<body\> de la página descargada, agrega un TMemo y un segundo TButton al formulario y agrega el siguiente código
145+ * Ejecuta el programa, introduce una URL en el control de edición y haz clic en el botón para navegar hasta la dirección URL. Label1 mostrará los mensajes de estado enviados por el navegador.
146+ * Para acceder al objeto de documento (DOM), tienes que importar también la biblioteca de tipos de C:\WINDOWS\system32\mshtml.tlb y añadir la unidad MSHTML_4_0_TLB creada a la cláusula uses. Para mostrar por ejemplo el contenido de la etiqueta <body> de la página descargada, agrega un TMemo y un segundo TButton al formulario y agrega el siguiente código
140147
141-``` pascal
142- procedure TForm1.Button2Click(Sender: TObject);
143- var Doc: IHTMLDocument2; //defined in MSHTML_4_0_TLB
144- begin
145- Doc := Browser.ComServer.Document as IHTMLDocument2;
146- Memo1.Lines.Text := utf8encode(Doc.parentWindow.document.Get_body.innerHTML);
147- end;
148148```
149+procedure TForm1.Button2Click(Sender: TObject);
150+ var Doc: IHTMLDocument2; //defined in MSHTML_4_0_TLB
151+ begin
152+ Doc := Browser.ComServer.Document as IHTMLDocument2;
153+ Memo1.Lines.Text := utf8encode(Doc.parentWindow.document.Get_body.innerHTML);
154+ end;
155+```
149156
150-   Ten en cuenta que coclases no se destruye. Como todos los objetos COM tiene un contador de referencias y se destruyen cuando la última referencia está fuera de ámbito. El descendiente TEventSink tiene que ser destruido.
157+Ten en cuenta que coclases no se destruye. Como todos los objetos COM tiene un contador de referencias y se destruyen cuando la última referencia está fuera de ámbito. El descendiente TEventSink tiene que ser destruido.
151158
152159### Crear componentes visuales ActiveX desde objetos de librerías de tipos
153160
154-   En lugar de utilizar el componente TActiveXContainer directamente la herramienta importtl puede crear descendientes de TActiveXContainer para cada objeto ActiveX incluido en la librería de tipos y crear un paquete lpk. Los descendientes tienen soporte completo para los eventos generados por los objetos. Para crear un paquete con los componentes ActiveX abre el diálogo 'Import Type Library' desde el menú 'Herramientas'. Selecciona la librería a importar, marca 'Create package' y adicionalmente 'Convert dependent typelibs', haz clic en 'OK' para crear el paquete. Se preguntará por un directorio para almacenar el paquete. Instala el nuevo paquete. Después de la reconstrucción de Lazarus encontrarás los nuevos componentes en la pestaña ActiveX de la paleta de componentes.
161+En lugar de utilizar el componente TActiveXContainer directamente la herramienta importtl puede crear descendientes de TActiveXContainer para cada objeto ActiveX incluido en la librería de tipos y crear un paquete lpk. Los descendientes tienen soporte completo para los eventos generados por los objetos. Para crear un paquete con los componentes ActiveX abre el diálogo 'Import Type Library' desde el menú 'Herramientas'. Selecciona la librería a importar, marca 'Create package' y adicionalmente 'Convert dependent typelibs', haz clic en 'OK' para crear el paquete. Se preguntará por un directorio para almacenar el paquete. Instala el nuevo paquete. Después de la reconstrucción de Lazarus encontrarás los nuevos componentes en la pestaña ActiveX de la paleta de componentes.
155162
156-![](/wiki-images/2/21/LazActiveX-Install2.png)
163+[![LazActiveX-Install2.png](/wiki-images/2/21/LazActiveX-Install2.png)](</File:LazActiveX-Install2.png>)
157164
158-**Ejemplo**: Embeber el reproductor VLC en un formulario. ¡VLC ha de estar instalado correctamente!
165+**Ejemplo** : Embeber el reproductor VLC en un formulario. ¡VLC ha de estar instalado correctamente!
159166
160-- Abre 'Import Type Library' desde el menú Herramientas y selecciona 'axvlc.dll' en el directorio de instalación de VLC. Marca 'Create package'. Haz clic en Aceptar. Selecciona un directorio para almacenar el paquete. El paquete AXVLC_1_0_TLBP y todas las unidades necesarias se crearan. Instala el paquete AXVLC_1_0_TLBP y reconstruye el IDE.
161-- Pon un TAxcVLCPlugin2 (desde la pestaña de componentes ActiveX), un TButton y un TFileNameEdit en un formulario.
162-- Establece TAxcVLCPlugin2.Active en **true** y cambia el tamaño y la posición de TActiveXContainer a tu gusto.
163-- Crea un evento de clic para el botón y escribe:
167+ * Abre 'Import Type Library' desde el menú Herramientas y selecciona 'axvlc.dll' en el directorio de instalación de VLC. Marca 'Create package'. Haz clic en Aceptar. Selecciona un directorio para almacenar el paquete. El paquete AXVLC_1_0_TLBP y todas las unidades necesarias se crearan. Instala el paquete AXVLC_1_0_TLBP y reconstruye el IDE.
168+ * Pon un TAxcVLCPlugin2 (desde la pestaña de componentes ActiveX), un TButton y un TFileNameEdit en un formulario.
169+ * Establece TAxcVLCPlugin2.Active en **true** y cambia el tamaño y la posición de TActiveXContainer a tu gusto.
170+ * Crea un evento de clic para el botón y escribe:
164171
165-``` pascal
166- uses variants;
167- ...
168- procedure TForm1.Button1Click(Sender: TObject);
169- begin
170- AxcVLCPlugin2_1.OleServer.playlist.add(widestring(FileNameEdit1.FileName,'',vararrayof([':aspect-ratio=16:9']));
171- AxcVLCPlugin2_1.OleServer.playlist.play;
172- end;
173172```
173+uses variants;
174+ ...
175+ procedure TForm1.Button1Click(Sender: TObject);
176+ begin
177+ AxcVLCPlugin2_1.OleServer.playlist.add(widestring(FileNameEdit1.FileName,'',vararrayof([':aspect-ratio=16:9']));
178+ AxcVLCPlugin2_1.OleServer.playlist.play;
179+ end;
180+```
174181
175-- Ejecuta el programa, selecciona una película y haz clic en el botón para verla.
182+ * Ejecuta el programa, selecciona una película y haz clic en el botón para verla.
176183
177-   Los manejadores de eventos para los componentes se pueden crear directamente desde el Inspector de Objetos. (Nota de la versión 1.1.5.0 de la **typelib** de la VLC de tipos avisa de los eventos, pero falla al establecer un punto de conexión. Esto parece ser un error en la VLC).
184+Los manejadores de eventos para los componentes se pueden crear directamente desde el Inspector de Objetos. (Nota de la versión 1.1.5.0 de la **typelib** de la VLC de tipos avisa de los eventos, pero falla al establecer un punto de conexión. Esto parece ser un error en la VLC).
178185
179-
180-**Usuarios Delphi**: Delphi crea un esqueleto para todos los métodos y propiedades de los componentes ActiveX, importtl no añade esta capa adicional y los métodos AxctiveX son llamados a través de la propiedad OleServer del componente. Por ejemplo: AxcVLCPlugin2_1.OleServer.playlist.play es el equivalente a VLCPlugin21.playlist.play en Delphi.
186+**Usuarios Delphi** : Delphi crea un esqueleto para todos los métodos y propiedades de los componentes ActiveX, importtl no añade esta capa adicional y los métodos AxctiveX son llamados a través de la propiedad OleServer del componente. Por ejemplo: AxcVLCPlugin2_1.OleServer.playlist.play es el equivalente a VLCPlugin21.playlist.play en Delphi.
181187
182188---
183-*From the Free Pascal wiki, page "LazActiveX/es", as it stood on 2020-02-18 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
189+*From the Free Pascal wiki, page "LazActiveX/es", as the Internet Archive kept it on 2025-03-26, last changed on 2020-02-19. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history