Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2004
Slaughter Slaughter is offline
Miembro
 
Registrado: feb 2004
Posts: 17
Poder: 0
Slaughter Va por buen camino
Question Como asignar variant a un Tedit ¿? ayuda pofavó

Hola a todos,

El problema que tengo es el siguiente:
Hasta la declaración de la variable variant todo correcto, pero a la hora de asignar la variant a un Tedit viene el problema; lo que hago es lo siguiente:

procedure ...
var
numero: variant;
begin
numero:=Edit1.Text;
...

end;

ES CORRECTO ¿? Muchas GRACIAS a todos
Responder Con Cita
  #2  
Antiguo 09-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Eso funciona porque el tipo Variant tiene la capacidad de guardar cualquier tipo de dato, pero tendrías que decir que finalidad es la que persigues, por de un variant a un Tedit pueden venir los problemas.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 09-02-2004
Slaughter Slaughter is offline
Miembro
 
Registrado: feb 2004
Posts: 17
Poder: 0
Slaughter Va por buen camino
GRACIAS de antemano, como puedes ver llevo poco tiempo en esto ... xD

Bueno, lo que quiero hacer es un conversor de monedas:
- trabajando con 2 combobox y 2 Tedit; depende de lo que haya en los combos quiero que en los Tedits salga una cosa u otra, para por ejemplo, convertir de pesetas a euros.

a ver si con otra respuesta ya me aclaro un poco mas, ASIAS
Responder Con Cita
  #4  
Antiguo 09-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Para lo que quieres hacer la variable número debiera ser de tipo Double, con esto garantizas que puedes hacer cualquier conversión.

Tendrás que explicar un poco más lo que hay en los combox, supongo que es una lista de nombres de monedas con sus valores de conversión?

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 10-02-2004
Slaughter Slaughter is offline
Miembro
 
Registrado: feb 2004
Posts: 17
Poder: 0
Slaughter Va por buen camino
Hola de nuevo,

En los combobox hay lo siguiente:
En un uno hay un listado de las monedas a convertir y en otro el mismo listado, pero en este caso, representan el resultado de la conversion.

Entonces, quiero que cuando en el primer combobox marque, por ejemplo pesetas, y en el otro combobox marque euros, me haga la operacion correcta, es decir:
si pesetas es 0 y euros 1:
procedure ...
var numero: variant; (o double como me has dixo)
begin
case ... of
0: begin Edit2.Text:=valor*'0.00601'; end;
1: begin ...

Por tanto, mi pregunta es la siguiente:
La variable variant como la puedo asignar al Edit1 ?? La tengo que convertir a texto??, ...

Asias. Un saludo
Responder Con Cita
  #6  
Antiguo 10-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Cita:
Por tanto, mi pregunta es la siguiente:
La variable variant como la puedo asignar al Edit1 ?? La tengo que convertir a texto??, ...
No.

Ejemplo:
Código:
procedure TForm1.Button1Click(Sender: TObject);
var
v:Variant;
begin
v:=3.8922;
edit1.Text:=v;
end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 10-02-2004
Slaughter Slaughter is offline
Miembro
 
Registrado: feb 2004
Posts: 17
Poder: 0
Slaughter Va por buen camino
Hola,

Perdona por ser tan pesao, pero me estoy iniciando en esto, asias por seguir respondiendo.

Haber tu respuesta me ha ido mu bien, me ha resuelto muchas dudas, pero no es lo que buscaba. Aquí tienes lo que yo he puesto en el botón:

procedure TForm1.Button1Click(Sender: TObject);
var
valor: variant; <== El problema empieza aquí
begin
valor:=Edit1.Text;
case Combobox1.ItemIndex of
0 : begin
case Combobox2.ItemIndex of
0 : begin ShowMessage ('Escoja monedas distintas'); end;
1 : begin Edit2.Text:= valor * '0.00601'; end;
2 : begin Edit2.Text:= valor * '0.00532'; end;
end;
begin
valor:=Edit1.Text;
case Combobox1.ItemIndex of
1 : begin
case Combobox2.ItemIndex of
0 : begin Edit2.Text:= valor * '166.667'; end;
1 : begin ShowMessage ('Escoja monedas distintas'); end;
end;
Como lo ves ? ves algún fallo, supongo que si. También me salen los siguientes errores a la hora de compilar:

[Error] conversor.pas(80): Record, object or class type required
[Error] conversor.pas(98): 'END' expected but end of file found
[Fatal Error] Project_conversor.dpr(5): Could not compile used unit 'conversor.pas'

Qué sucede ? Lo siento, por el rollo, ASIAS
Responder Con Cita
  #8  
Antiguo 10-02-2004
Slaughter Slaughter is offline
Miembro
 
Registrado: feb 2004
Posts: 17
Poder: 0
Slaughter Va por buen camino
Hola,

Perdona por ser tan pesao pero me estoy iniciando en esto, asias por seguir respondiendo.

Lo que me has dixo me ha ido mu bien para saber mas, pero no es lo que yo buscaba. Tu me das un valor concreto a la variant, pero yo lo que quiero es que el valor que tome el Tedit sea variable y que lo determine el usuario; por tanto te digo que como puedo asignar la variant al Tedit o el Tedit a la variant ?

Yo lo que tengo en el codigo del boton es lo siguiente:

procedure TForm1.Button1Click(Sender: TObject);
var
valor: variant; <== El problema empieza aquí
begin
valor:=Edit1.Text;
case Combobox1.ItemIndex of
0 : begin
case Combobox2.ItemIndex of
0 : begin ShowMessage ('Escoja monedas distintas'); end;
1 : begin Edit2.Text:= valor * '0.00601'; end;
2 : begin Edit2.Text:= valor * '0.00532'; end;
end;
begin
valor:=Edit1.Text;
case Combobox1.ItemIndex of
1 : begin
case Combobox2.ItemIndex of
0 : begin Edit2.Text:= valor * '166.667'; end;
1 : begin ShowMessage ('Escoja monedas distintas'); end;
end;

Como lo ves, hay algun fallo ? supongo que si... xD

Tambien a la hora de compilar me salen los siguientes errores:

[Error] conversor.pas(80): Record, object or class type required
[Error] conversor.pas(99): 'END' expected but end of file found
[Error] conversor.pas(28): Unsatisfied forward or external declaration: 'TForm1.FormCreate'

Bueno, a ver si me puedes aclarar un poco más el tema este, ASIAS !!
Responder Con Cita
  #9  
Antiguo 10-02-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No veo bien el planteamiento pero debes de utilizar una variable Double y no Variant como estás haciendo. Pero te adjunto algunas correcciones al código.

Código:
var
valor: Double; //<== El problema empieza aquí
begin
valor:=StrToFloat(Edit1.Text);
//
0 :ShowMessage ('Escoja monedas distintas');//solo tiene una línea no es necesario Begin...end
1 :Edit2.Text:=FloatToStr( valor * 0.00601);
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #10  
Antiguo 12-02-2004
Slaughter Slaughter is offline
Miembro
 
Registrado: feb 2004
Posts: 17
Poder: 0
Slaughter Va por buen camino
Hola de nuevo,

Estuve probando lo que me dijiste sobre el double y me ha ido de coj..., pero no me deja compilar la aplicación.
Cuando le doy a F9 para compilar me marca la linea de codigo siguiente:
end.

Que puede ser ?
Junto lo que me dijiste le seguí poniendo el case combobox of y el calculo lo puse de la manera que me dijiste pero no acabo de solucionar el problema, a ver si con esto ya sabes por donde voy y lo quiero conseguir.

Asias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:58:00.


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