Ver la Versión Completa : components valor para cruzar con campo
vicentemadrid
18-08-2017, 16:28:59
Hola a todos.
Tengo en un form el nombre del campo que quiero comparar dentro de una variable.
Nombre del campo:C1
Si genero :
cvalor:= C1.text; (el resultado es correto)
la cuestión es que tengo el valor "C1" dentro de una variable strig, si pongo:
cvalor:= variablestring.text; (esto no funciona)
Alguien puede indicarme como cargar el valor del campo C1 llamándolo como una variable??
Gracias
Caminante
18-08-2017, 16:55:09
Hola
Supongo que C1 es un TEdit entonces podrias hacer:
Var
T:TComponent;
begin
T:=FindComponent('C1');
if assigned(t)then
Valor:=(t as TEdit).text;
end;
Lo he escrito de memoria. Espero te sea util
Saludos
vicentemadrid
18-08-2017, 17:09:38
Hola Caminante, y gracias..
igualo sobre una variable string (cvalor:= (t as TEdit).text;) y me da error
INVALID CLASS TYPECAST
( Clase:EINVALIDCAST )
vicentemadrid
18-08-2017, 17:13:44
Hola de nuevo.
He probado:
cvalor:= (t as TdbEdit).text;
el error no sale pero cvalor siempre = ''
Caminante
18-08-2017, 18:09:33
Hola
Bueno yo supuse que el control era un TEdit; en tal caso eso ya lo resolviste.
Hice la prueba y me funciona correctamente.
procedure TForm1.Button1Click(Sender: TObject);
var
S:string;
T:TComponent;
begin
S:='Nada';
T:=FindComponent('DBEdit1');
if Assigned(t)then
S:=(t as TDBEdit).Text;
ShowMessage(S);
end;
vicentemadrid
18-08-2017, 18:26:06
Hola Caminante!!!
Perfecto!!!, estaba intentando leer el valor antes de "pintar" el formulario y por eso aparecía todo ' '.
Me has alegrado el fin de semana. Muchas gracias y hasta la próxima!!!!
ha sido un placer plantear mi primera consulta y tener una solución tan rápida.
Gracias!!!
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.