Nome do objeto como variável, como fazer funcionar ?

Delphi

16/02/2007

Olha eu de novo :D

Pessoal queria saber um detalhe, seguinte:

Tenho um Form e dentro dele tenho um obj. TEdit, um TMemo, TLabel, sei lá, o q seja.

Aí quero trocar o nome do Obj. TEdit por exemplo, sendo assim, meu procedimento seria.

[color=blue:3e3e1a70ce][b:3e3e1a70ce][size=18:3e3e1a70ce]Edit1.Name:=´EdtNome´;[/size:3e3e1a70ce][/b:3e3e1a70ce][/color:3e3e1a70ce]

depois disso qualquer coisa q eu queira fazer com esse Edit, o meu procedimento será.

[size=18:3e3e1a70ce][color=blue:3e3e1a70ce][b:3e3e1a70ce]EdtNome.Text:=´Guia Autorizado Adobe´[/b:3e3e1a70ce][/color:3e3e1a70ce][/size:3e3e1a70ce]
Bom agora vem minha pergunta. Como faço por exemplo para o q eu vá colocar abaixo funcione.

[color=brown:3e3e1a70ce][b:3e3e1a70ce]var
NomeObj:String;

begin
NomeObj:=Edit1.Name;[/b:3e3e1a70ce] [/color:3e3e1a70ce]
Ou seja, no caso acima o conteúdo da var NomeObj será EdtNome correto ?

Pq se eu colocar:
[b:3e3e1a70ce][color=blue:3e3e1a70ce][size=18:3e3e1a70ce]NomeObj.Text:=´Guia Autorizado Adobe´[/size:3e3e1a70ce][/color:3e3e1a70ce][/b:3e3e1a70ce]
dá erro, uma vez q a variável [b:3e3e1a70ce][color=blue:3e3e1a70ce]NomeObj [/color:3e3e1a70ce][/b:3e3e1a70ce]contém o nome do [b:3e3e1a70ce][color=blue:3e3e1a70ce]Edit (EdtNome)[/color:3e3e1a70ce][/b:3e3e1a70ce], e o q devo fazer para q esse erro ñ ocorra ?


Skyphill

Skyphill

Curtidas 0

Respostas

Somar

Somar

16/02/2007

Kra , pelo q entendi vc naum deve declara a variavel como String , mais sim com o classe do componente q vc quer .
tipo assim

var
Obj :Tedit;
Begin
obj := edit1;
end;

obs: Não testei , mais deve funcionar .


GOSTEI 0
Skyphill

Skyphill

16/02/2007

Caro

Somar

Na verdade eu ñ quero saber sobre o [b:353017f753]objeto [/b:353017f753]e sim o [b:353017f753]nome do objeto[/b:353017f753], no caso, no exemplo q vc me deu a variável vai conter o [b:353017f753]tipo [/b:353017f753]do objeto e ñ o [b:353017f753]nome [/b:353017f753]do objeto.

Preciso do nome pois, só posso diferenciar objetos do mesmo tipo pelo nome.


GOSTEI 0
Marco Salles

Marco Salles

16/02/2007

é isso que voce deseja ???

NomeObj:String; begin NomeObj:=Edit1.Name; Tedit(FindComponent(NomeObj)).Text:=´Guia Autorizado Adobe´; end;



GOSTEI 0
Skyphill

Skyphill

16/02/2007

[size=12:073da6cbfd][color=blue:073da6cbfd]No caso devo usar isso na [u:073da6cbfd][b:073da6cbfd]Unit do Form em q se encontra o TEdit[/b:073da6cbfd][/u:073da6cbfd], ou em qualquer Unit da Aplicação funcionará ?[/color:073da6cbfd] :?: [/size:073da6cbfd]


GOSTEI 0
Marco Salles

Marco Salles

16/02/2007

pelo que entendo em outra unit voce deve dclarar na clausula uses o Nome da Unit que voce que acessar o edit e ainda voce deve colocar o porprietario do Edit , normalmente um Form . Tipo isso

uses
AunitEmQuestão

implemtation
....

NomeObj:String; begin NomeObj:=FormularioQueEstaDeclaradoNaUnit.Edit1.Name; Tedit(FindComponent(NomeObj)).Text:=´Guia Autorizado Adobe´; end;



GOSTEI 0
Skyphill

Skyphill

16/02/2007

[color=blue:7e9d6f97ab][b:7e9d6f97ab][size=18:7e9d6f97ab]Fucionou beleza[/size:7e9d6f97ab][/b:7e9d6f97ab][/color:7e9d6f97ab]


[b:7e9d6f97ab][color=blue:7e9d6f97ab][size=24:7e9d6f97ab]Valew Marcão !![/size:7e9d6f97ab][/color:7e9d6f97ab] [/b:7e9d6f97ab]:D


GOSTEI 0
POSTAR