Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como ejecutar una instruccion (https://www.clubdelphi.com/foros/showthread.php?t=49981)

omy 05-11-2007 18:37:42

como ejecutar una instruccion
 
hi


tengo este codigo



dentro de un evento click
var nombre,prueba:string
begin

// tengo un objeto llamado DBEnombre. Que tiene como valor ACAPULCO

prueba := ‘DBEnombre.text’
nombre := ¿??????? prueba
// como ejecuto el valor de prueba para que la variable nombre guarde ACAPULCO

end;



¿Si se puede?

Gracias de antemano

egostar 05-11-2007 18:51:23

Cita:

Empezado por omy (Mensaje 243572)
hi


tengo este codigo



dentro de un evento click
var nombre,prueba:string
begin

// tengo un objeto llamado DBEnombre. Que tiene como valor ACAPULCO

prueba := ‘DBEnombre.text’
nombre := ¿??????? prueba
// como ejecuto el valor de prueba para que la variable nombre guarde ACAPULCO

end;



¿Si se puede?

Gracias de antemano

Hola omy, antes que nada te invito a leer nuestra guía de estilo, sería bueno que usaras las etiquetas para que el código se comprenda mejor.

Por otro lado, veo un problema en tu código, no estas pasando adecuadamente DBEnombre a la variable prueba.

Trata así:

Código Delphi [-]
var 
  nombre,prueba:string
begin
   prueba := DBEnombre.text;
   nombre := prueba;
end;

Salud OS

omy 05-11-2007 18:56:49

Código:

Por otro lado, veo un problema en tu código, no estas pasando adecuadamente DBEnombre a la variable prueba.

no me explique bien, la variable prueba contiene litaralmente el nombre el objeto 'DBEnombre.text', lo que pasa es que en visual fox cuando yo ponia lo siguiente

prueba = ‘DBEnombre.text’
nombre = &prueba

// donde nombre trae como valor ACAPULCO....
espero explicarme mejor....

egostar 05-11-2007 19:09:41

Cita:

Empezado por omy (Mensaje 243586)
no me explique bien, la variable prueba contiene litaralmente el nombre el objeto 'DBEnombre.text', lo que pasa es que en visual fox cuando yo ponia lo siguiente

prueba = ‘DBEnombre.text’
nombre = &prueba

// donde nombre trae como valor ACAPULCO....
espero explicarme mejor....

Y ya intentaste con el código que te mostré?

Salud OS

Caral 05-11-2007 19:11:34

Hola
Egostar lo entendio perfectamente y te dio la solucion a tu problema.
Código Delphi [-]
var 
  nombre,prueba:string
begin
   prueba := DBEnombre.text;
   nombre := prueba;
end;
Es de suponer que DBEnombre es un DBEdit, por esa razon contiene una propiedad Text, que es de tipo string, que a su vez sera pasado a una variable de nombre Prueba.
No me explico para que tanto royo, la verad yo eliminaria la variable nombre.
Ahora si lo que se quiere es que la variable Prueba contenga el valos ACAPULCO, pues para que usar el dbedit.
Código Delphi [-]
var 
  nombre,prueba:string
begin
   prueba := 'ACAPULCO';
   nombre := prueba;
end;
Saludos

omy 05-11-2007 19:45:24

Código Delphi [-]

var 
  nombre,prueba:string
begin
   prueba := DBEnombre.text;
   nombre := prueba;
end;


lo anterior es facil, quizas no me explique bien yo quiero la referancia de prueba

Código Delphi [-]
var 
  nombre,prueba:string
begin
   prueba := 'DBEnombre.text';
   nombre := ?prueba;
end;

el valor que asigno a prueba es el nombre del objeto no su valor....
que signo antecede al prueba para hacer referencia el contenido del objeto

Caral 05-11-2007 19:46:40

Hola
Ninguno.
Saludos

omy 05-11-2007 19:52:46

?????
 
como ninguno ?

egostar 05-11-2007 19:53:23

Cita:

Empezado por omy (Mensaje 243605)
lo anterior es facil, quizas no me explique bien yo quiero la referancia de prueba

Código Delphi [-]
var 
  nombre,prueba:string
begin
   prueba := 'DBEnombre.text';
   nombre := ?prueba;
end;

el valor que asigno a prueba es el nombre del objeto no su valor....
que signo antecede al prueba para hacer referencia el contenido del objeto

Sigo sin entender para que quieres hacer eso si puedes acceder directamente al texto de tu edit, pero bueno, si así tiene que ser, yo haría esto:

Código Delphi [-]
var
  nombre:String;
  prueba:TEdit; //prueba NO puede ser de tipo string.
begin
   prueba := Edit1;
   nombre := prueba.Text;
   ShowMessage(nombre);
end;

Aunque no se si antes deba crear el objeto prueba con:

Código Delphi [-]
   prueba := TEdit.Create(nil);

Alguno de los compañeros con más experiencia en este asunto seguro nos puede ayudar.

Salud OS

Caral 05-11-2007 19:59:09

Hola
No hace falta crearlo antes y funciona perfectamente y hace exactamente lo mismo que esto:
Código Delphi [-]
var 
  nombre: string
begin
   nombre := Edit1.text;
    ShowMessage(nombre);
end;
No te parece ilogico?
Saludos

omy 05-11-2007 20:08:13

ok ahi va todo
 
Ok


Tengo en un form 50 objetos Edit con el siguiente nombre


Nombre1
Nombre2
Nombre3
.
.
.
Nombre50

La problemática viene cuando con un TComboBox (contiene del 1 al 50 ) selecciono el número del nombre que deseo. Ahora con ese nombre genero un sql, para hacerlo tendría que hacer un CASE del valor de TComboBox para hacer el sql con el valor seleccionado, lo que quiero es hacer menos lineas como ¿?

Yo lo conocia como macro donde a una variable tipo texto le asigno esto:

Supongamos que selecciono en el TComboBox el 10
Código Delphi [-]
prueba:=  'nombre'+ TComboBox.text+’.txt’;

entonces   prueba vale ‘nombre10.txt’

al ejecutar la macro lo hacia 


nombre := &prueba;

y me daba la referencia del objeto nombre10.txt que es Juan Perez

Caral 05-11-2007 20:29:07

Hola
Código Delphi [-]
var
  prueba :String;
begin
   prueba:=  'nombre'+ Combobox1.Text;
   ShowMessage(prueba);
end;
Saludos

eduarcol 05-11-2007 21:00:31

Ok tu Te refieres a un metodo de foxpro que no existe en delphi, pero puedes hacerlo de otra manera, puedes buscar un componente dentro de un formulario que coincida con el nombre deseado, por ejemplo:
Código Delphi [-]
var
   //Declara las variables necesarias
   dbTexto: TComponent;
   Prueba: String;
begin
   prueba :=  'nombre'+ TComboBox.text; //Arma el nombre del componente a buscar
   dbTexto := FindComponent(prueba); //Busca el componente
   if dbTexto is TDBEdit then   //Valida si es de la clase requerida
   begin
      ShowMessage(TDBEdit(dbTexto).Text); //Muestra el valor deseado.
   end;   
end;

egostar 05-11-2007 21:08:38

Excelente ejemplo amigo Eduardo

Pero todo el rollo que nos aventamos Caral y yo se hubiese ahorrado si omy aportara esa información desde el principio, eso es a lo que nos referimos constantemente en el foro al invitarlos a leer la guía de estilo y que tanto escosor suele producir. :cool:;)

Salud OS

omy 05-11-2007 21:25:59

gracias eduarcol

aun no se como pero lo voy a chekar lo cambie quedo como yo deseaba con objetos TDateTimePicker

Código Delphi [-]
   for i:= 1 to ina do   // Este es el codigo para insertar las inasistencias
      begin

         prueba := 'fecha_inasistencia'+inttostr (i);
         dbTexto := FindComponent(prueba); //Busca el componente
         if dbTexto is TDateTimePicker then   //Valida si es de la clase requerida
         ShowMessage(datetostr (TDateTimePicker(dbTexto).date));

gracias.....


La franja horaria es GMT +2. Ahora son las 08:45:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi