PDA

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!!!