Vous êtes sur la page 1sur 4

Convertendo string para um Objeto ( S para os Feras ) - Frum DevMedia

19/09/16 11:19 AM

Buscar

PERGUNTAS RECENTES

TODAS AS PERGUNTAS

TAGS

MEUS TPICOS

PESQUISAR

Convertendo string para um Objeto ( S para os Feras )


DELPHI

Ulissesn - 24 mar 2003

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

QmD - 24 mar 2003

de uma olhada na funcao FindComponent()


com ela vc poderia tratar a classe do objeto retornar e fazer um typecast ou algo do tipo...

Showmessage( TCustomEdit( FindComponent(Edit1) ).Text );

0 |0

Responder Citar

e_gama - 24 mar 2003

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

Convertendo string para um Objeto ( S para os Feras ) - Frum DevMedia

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.

Agora, na unit que vai utilizar a DLL, faa:


#cdigo
implementation
$
procedure$AlteraCaption(Frm:$TForm);$external$DLL.DLL;
$
{$R$*.dfm}
$
procedure$TForm1.Button1Click(Sender:$TObject);
begin
$$AlteraCaption(Self);
end;

Com vc ver, o caption do formulrio de sua aplicao, ser modificado pela DLL.

0 |0

Responder Citar

Carlos Feitoza Filho - 24 mar 2003

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
CDIGOS

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

Convertendo string para um Objeto ( S para os Feras ) - Frum DevMedia

0 |0

19/09/16 11:19 AM

Responder Citar

Carlos Feitoza Filho - 24 mar 2003

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.

Publique | Assine | Fale conosco

http://www.devmedia.com.br/forum/convertendo-string-para-um-objeto-so-para-os-feras/149265

Pgina 3 de 4

Convertendo string para um Objeto ( S para os Feras ) - Frum DevMedia

19/09/16 11:19 AM

DevMedia
Curtir Pgina

121 mil curtidas

Seja o primeiro de seus amigos a curtir isso.

Hospedagem web por Porta 80 Web Hosting

http://www.devmedia.com.br/forum/convertendo-string-para-um-objeto-so-para-os-feras/149265

Pgina 4 de 4

Vous aimerez peut-être aussi