Fórum Chamar o TurboPower OnGuard a partir de uma DLL #367682

14/01/2009

0

Olá.

Fiz um programa em Delphi que chama minha DLL, também feita em Delphi. Quero que minha [b:3cffd9ac2a]DLL[/b:3cffd9ac2a] chame o OnGuard, não o executável (preciso que a [b:3cffd9ac2a]DLL [/b:3cffd9ac2a]o execute, [u:3cffd9ac2a][i:3cffd9ac2a]sem chances de usar o componente direto no programa[/i:3cffd9ac2a][/u:3cffd9ac2a]).

O que eu já fiz na DLL:

* coloquei as units do OnGuard na uses;
* criei e instancioneio o componente:
   cTOgDaysCode : TOgDaysCode;
   cTOgDaysCode := TOgDaysCode.Create(Nil);

* associei uma procedure minha ao evento do componente:
   cTOgDaysCode.OnGetKey := cTOgDaysCode_OnGetKey(obj_Objeto, var_TKey);
   procedure cTOgDaysCode_OnGetKey(Sender: TObject; var Key: TKey);
   begin
      Key := constante_chave; //Essa constant está declarada e inicializada no escopo da unit da DLL
   end;


Os parâmetros passados à minha procedure são um TObjeto e um TKey, respectivamente; exatamente a [b:3cffd9ac2a]quantidade [/b:3cffd9ac2a]e [b:3cffd9ac2a]tipo [/b:3cffd9ac2a]solicitados pelo evento do objeto. Contudo, ao compilar o programa, obtenho o seguinte erro:

E2010 Incompatible types: ´TGetKeyEvent´ and ´procedure, untyped pointer or untyped parameter´


Acontece que a TGetKeyEvent é declarada assim no OnGuard:

TGetKeyEvent = procedure(Sender : TObject; var Key : TKey) of object;


Como eu faço para contornar essa situação? Preciso mesmo usar o componente a partir da DLL.

Grato a todos!


Willian

Willian

Responder

Posts

16/01/2009

Woinch

Cara não entendi muito bem a sua situação. OnGuard é um evento de determinado componente? Ele deve estar vinculado a alguma Message, correto? Você não pode utilizar o comando SendMessage na DLL para chamar a execução desse evento?

Espero ter ajudado...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar