Académique Documents
Professionnel Documents
Culture Documents
19/09/16 11:19 AM
Buscar
PERGUNTAS RECENTES
TODAS AS PERGUNTAS
TAGS
MEUS TPICOS
PESQUISAR
Ol Pessoal !!!
o seguinte tenho umas dls e dentro delas algumas funes que envolvem objetos e a minha dvida a seguinte se tem como eu
passar como String e Transforma-la num objeto, como Form etc.... Sendo que est string o nome de um objeto que j existe apenas
quero passar ele para poder usar dentro da dll, j tentei por ponteiro mas no consegui.
Desde j agradeo a todos.
ulisses
Responder Citar
Mais posts
Anonymous - 24 mar 2003
S para os feras:
Equinha pocto;
Mula sem cabea;
Cuca;
sthan sthan sthan sthan sthan sthan
0 |0
Responder Citar
0 |0
Responder Citar
Se a DLL foi escrita em Delphi, vc pode passar diretamente objeto que vc quer. Veja um exemplo
Crie uma DLL (DLL.DLL, por exemplo com o cdigo abaixo - OBSERVE A CLAUSULA USES):
#cdigo
http://www.devmedia.com.br/forum/convertendo-string-para-um-objeto-so-para-os-feras/149265
Pgina 1 de 4
19/09/16 11:19 AM
uses
$$SysUtils,
$$Classes,
$$Forms;
$
{$R$*.res}
$
procedure$AlteraCaption(Frm:$TForm);
begin
$$Frm.Caption$:=$Esse$Caption$foi$alterado$pela$DLL;
end;
$
exports
$$AlteraCaption;
$
begin
end.
Com vc ver, o caption do formulrio de sua aplicao, ser modificado pela DLL.
0 |0
Responder Citar
como
parmetro. Suponha um Form com 1 Edit, um SpinEdit e um boto comum com o rtulo CHAMAR
FRUM
JOBS
ASSINE MVP
No Edit vc deve escrever o nome da funo que vc quer chamar (Triplo ou Dobro) e no SpinEdit vc poe o nmero que quer processar
Baixe o APP
Login
(dobrar ou triplicar)
no clique do boto do formulrio voce poe:
#cdigo
procedure$TForm1.Button1Click(Sender:$TObject);
var
$$HInst:$THandle;
$$FPointer:$TFarProc;
$$MyFunct:$TIntFunction;
begin
$$HInst$:=$LoadLibrary$(DllName);
$$if$HInst$>$0$then
$$try
$$$$FPointer$:=$GetProcAddress$(HInst,
$$$$$$PChar$(Edit1.Text));
$$$$if$FPointer$<>$nil$then
$$$$begin
$$$$$$MyFunct$:=$TIntFunction$(FPointer);
$$$$$$SpinEdit1.Value$:=$MyFunct$(SpinEdit1.Value);
$$$$end
$$$$else
$$$$$$ShowMessage$(Edit1.Text$+$$Funo$DLL$no$encontrada);
$$finally
$$$$FreeLibrary$(HInst);
$$end
$$else
$$$$ShowMessage$(DllName$+$$biblioteca$no$encontrada);
end;
Lembrando que voc deve ter criado uma biblioteca corretamente com as funes Triplo e Dobro (nesse exemplo) definidas e
exportadas e que voc est fazendo referncia no form1 a essas funes.
No cdigo acima, DllName uma variavel ou constante que pode ser global contendo o caminho completo para o local onde est a sua
DLL
O exemplo do cdigo do boto genrico, j que voc j pode usa-lo em seu programa para chamar suas fuines! :)
Se eu consegui ajuda-lo, no deixe de me avisar OK?
http://www.devmedia.com.br/forum/convertendo-string-para-um-objeto-so-para-os-feras/149265
Pgina 2 de 4
0 |0
19/09/16 11:19 AM
Responder Citar
citao:
essa bem complexa hein amigo?? mas eu sei como ajudar:
Suponha que voc tenha um DLL com duas funes chamadas triplo e dobro que respectivamente triplica e dobra um valor
passado como parmetro. Suponha um Form com 1 Edit, um SpinEdit e um boto comum com o rtulo CHAMAR
No Edit vc deve escrever o nome da funo que vc quer chamar (Triplo ou Dobro) e no SpinEdit vc poe o nmero que quer
processar (dobrar ou triplicar)
no clique do boto do formulrio voce poe:
#cdigo
procedure$TForm1.Button1Click(Sender:$TObject);
var
$$HInst:$THandle;
$$FPointer:$TFarProc;
$$MyFunct:$TIntFunction;
begin
$$HInst$:=$LoadLibrary$(DllName);
$$if$HInst$>$0$then
$$try
$$$$FPointer$:=$GetProcAddress$(HInst,
$$$$$$PChar$(Edit1.Text));
$$$$if$FPointer$<>$nil$then
$$$$begin
$$$$$$MyFunct$:=$TIntFunction$(FPointer);
$$$$$$SpinEdit1.Value$:=$MyFunct$(SpinEdit1.Value);
$$$$end
$$$$else
$$$$$$ShowMessage$(Edit1.Text$+$$Funo$DLL$no$encontrada);
$$finally
$$$$FreeLibrary$(HInst);
$$end
$$else
$$$$ShowMessage$(DllName$+$$biblioteca$no$encontrada);
end;
Lembrando que voc deve ter criado uma biblioteca corretamente com as funes Triplo e Dobro (nesse exemplo) definidas e
exportadas e que voc est fazendo referncia no form1 a essas funes.
No cdigo acima, DllName uma variavel ou constante que pode ser global contendo o caminho completo para o local onde est a sua
DLL
O exemplo do cdigo do boto genrico, j que voc j pode usa-lo em seu programa para chamar suas fuines! :)
Se eu consegui ajuda-lo, no deixe de me avisar OK?
Esqueci mais um detalhe:
aps a seo implementation, nesse exemplo, coloque
#cdigo
type
$$$$$$$$TIntFunction$=$function$(I:$Integer):$Integer;$stdcall;
isso define um ponteiro de mtodo que possui um tipo de deginio do formato de suas funes, que nesse caso especfico : function
(I: Integer): Integer;
0 |0
Responder Citar
Voc precisa estar logado para tirar sua dvida. Clique aqui para efetuar seu login.
http://www.devmedia.com.br/forum/convertendo-string-para-um-objeto-so-para-os-feras/149265
Pgina 3 de 4
19/09/16 11:19 AM
DevMedia
Curtir Pgina
http://www.devmedia.com.br/forum/convertendo-string-para-um-objeto-so-para-os-feras/149265
Pgina 4 de 4