Imaginemos que creo un activeX library (ocx) desde delphi XE2 y creo un active Form. (En este habrá algún componente).
Me genera varios ficheros y cuando cojo el ocx y lo ejecuto en cualquier sitio no tengo ningún problema.
Ahora sí, yo quiero generar una propiedad en mi ocx, una propiedad nueva.
Después de mirar los ficheros que genera automáticamente delphi , que serían Prueba_TLB.pas, Prueba.irdl y Prueba.pas con su Dfm y
lo que hago es :
Abrir el fichero
Prueba_TLB.pas y genero la nueva propiedad
Código Delphi
[-]
IMyOCX = interface(IDispatch)
['{88F119F0-D30D-4E1A-A753-654983F1BA61}']
function Get_Dato_Leido: WideString; safecall;
procedure Set_Dato_Leido(const Value: WideString); safecall;
property Probando : WideString read Get_Dato_Leido write Set_Dato_Leido;
Luego...
Código Delphi
[-]
IMyOCXDisp = dispinterface
['{88F119F0-D30D-4E1A-A753-654983F1BA61}']
property Probando: WideString dispid -518;
Esto digamos que es una copia de la propiedad caption del OCX creado.
Mi primera interrogante surge con el dispid -518 que no se a que se refiere.
Se lo dejo tal cual,de momento y abro el fichero
Prueba.irdl
Código Delphi
[-]
interface IMyOCX: IDispatch
;
Y copio el caption y lo renombro.
Aquí se ve que el dispid -518 el valor Hexadecimal es propget, id(0xFFFFFDFA)
y por último abro el fichero
Prueba.pas y allí declaro
Código Delphi
[-]
protected
function Get_Dato_Leido: WideString; safecall;
procedure Set_Dato_Leido(value:AnsiString);
y..
Código Delphi
[-]
function TMyOCX.Get_Dato_Leido: WideString;
begin
Result := WideString(label1.caption); end;
procedure TMyOCX.Set_Dato_Leido(const Value: WideString);
begin
Caption := Value;
end;
También he cambiado el dispid -518 por -519 y poner su valor hexadecimal id(0xFFFFFDF9) donde corresponda pero no sé si lo estoy
haciendo bien.(no lo hago bien porque no me funciona,compila pero no va)
Le estoy dando vueltas y ni idea.
¿Alguien me podría decir como crear una propiedad en el OCX ?
Mi OCX, es una comunicación TCP/IP, y lo que quiero es coger los datos que recibo y sacarlas en alguna propiedad.
En este momento lo que hago es escribirlo en la propiedad caption de mi OCX, pero me gustaría saber como se crea una propiedad.
Muchas gracias.