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 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
comparar do tedit.text

hola amigos bueno miren tengo 2 edit.text y hago lo sig

if edit1.text>edit2.text then
showmessage 'es menor'

pero no me lo compara como podria hacer?
Responder Con Cita
  #2  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pues no veo el problema, salvo los parentesis hace la comparacion:
Código Delphi [-]
if edit1.text > edit2.text then
  showmessage('es menor');
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
bien el codigo es el sig:

Código Delphi [-]
query1.SQL.Clear;
Query1.sql.text:= 'Select sum(importe) as Monto from cobranzas where alucurso ='+IntToStr( x ) ;
query1.Active:=true;
Edit2.Text:= Query1.FieldByName('Monto').asstring;

//edit4.text:=floattostr(strtofloat(edit2.Text)+ StrToFloat(dbedit4.Text));
f:= StringReplace(dbedit12.Text, '$', '', [rfReplaceAll]);
g:= StringReplace(dbedit10.Text, '$', '', [rfReplaceAll]);
h:= FloatToStr(StrToFloat(f) + StrToFloat(g));
edit3.Text:=h;
if edit2.text < edit3.text then
showmessage('todavia debe cuotas');

me da todo bien menos la comparacion ya q no me tira el mensaje saludos
Responder Con Cita
  #4  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La pregunta que se me ocurre es:
El Edit2 carga el dato de la tabla, este dato, segun entiendo viene acompañado del signo de $ ????
Si es asi, el edit 3 no lo tiene, por ende la comparacion la hace pero nunca hara la operacion.
Me equivoco?
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
query1.SQL.Clear;
Query1.sql.text:= 'Select sum(importe) as Monto from cobranzas where alucurso ='+IntToStr( x ) ;
query1.Active:=true;
Edit2.Text:= StringReplace(Query1.FieldByName('Monto').asstring, '$', '', [rfReplaceAll]);

f:= StringReplace(dbedit12.Text, '$', '', [rfReplaceAll]);
g:= StringReplace(dbedit10.Text, '$', '', [rfReplaceAll]);
edit3.Text:= FloatToStr(StrToFloat(f) + StrToFloat(g));

if edit2.text < edit3.text then
showmessage('todavia debe cuotas');
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 14-09-2010
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
¿Puedo preguntar el porqué de comparar texto si lo que se busca comparar números?

A mi modo de ver se están haciendo conversiones innecesarias. Directamente que se comparen números y no estar convirtiendo de un tipo a otro.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
recien lo probe pero tampoco me tira el mensaje perdon por no se mas extenso pero nose porq la razon de no hacer la operacion
bien probare pasarlo a integer
Responder Con Cita
  #8  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Sigo insistiendo con la pregunta:
El edit2 muestra el dato con el signo de Dolares ($) ????.
El edit3 veo que no, pero lo tiene?.
Saludos
PD: Delphius: Me imagino que hace la comparacion en los edit ya que es ahi donde se muestran los datos.
__________________
Siempre Novato
Responder Con Cita
  #9  
Antiguo 14-09-2010
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por gonza_619 Ver Mensaje
recien lo probe pero tampoco me tira el mensaje perdon por no se mas extenso pero nose porq la razon de no hacer la operacion
bien probare pasarlo a integer

Esto es simple, las cadenas se ordenan de esta forma:

'1 '
'10'
'2 '
'3 '
'4 '

Y si tuvieras esto:

edit2.text = '2 '
edit3.text = '10'

Al hacer la comparación, lo hace correctamente ya que '2 ' NO es menor a '10'

Como te dice Delphius, usa mejor campos numericos.

Salud OS
Responder Con Cita
  #10  
Antiguo 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
los edits no muestran el signo pesos gracias
tendria que sumarlos en $ pero no se si se puede
h:= FloatToStr(StrToFloat(f) + StrToFloat(g));
esta operacion funciona pero lo q tendria hacer es comparar
con el edit2 y ahi ya no funciona, es decir los flotantes los suma, tendria hacer
w:=float tostr(edit2.text)?
Responder Con Cita
  #11  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Como te han dicho, la mejor manera es cambiar el dato de string a float.
Simplemente:
Código Delphi [-]
var a,b: real;
begin
query1.SQL.Clear;
Query1.sql.text:= 'Select sum(importe) as Monto from cobranzas where alucurso ='+IntToStr( x ) ;
query1.Active:=true;
Edit2.Text:= Query1.FieldByName('Monto').asstring;

f:= StringReplace(dbedit12.Text, '$', '', [rfReplaceAll]);
g:= StringReplace(dbedit10.Text, '$', '', [rfReplaceAll]);
edit3.Text:= FloatToStr(StrToFloat(f) + StrToFloat(g));

a:= StrToFloat(edit2.text);
b:= StrToFloat(edit3.text);

if a < b then
showmessage('todavia debe cuotas');
Saludos
__________________
Siempre Novato
Responder Con Cita
  #12  
Antiguo 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
bueno muchas gracais a todos , ahora si hizo la comparacion gracias de verdad, igualmenete segire preguntando espero le sirva a lguien mas saluudos
Responder Con Cita
  #13  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pues a mi me sirvio la lección de mi amigo Egostar, no sabia que las cadenas venían asi:
Cita:
'1 '
'10'
'2 '
'3 '
'4 '
Hice la prueba (como buen escéptico ) y efectivamente.
Pero siempre digo; Delphi es tan bueno que ayuda en todo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #14  
Antiguo 14-09-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que en caso de caracteres el orden es el de la tabla ascii:

Cita:
!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Los números van primero, luego las letras mayúsculas y después las letras minúsculas.
Responder Con Cita
  #15  
Antiguo 14-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Es por lo comentado por egostar, que desde la epoca del TP y del BC++, me quedó la costumbre de rellenar los códigos con ceros a la izquierda para evitar esos 'desordenes' numéricos...

A por por cierto, acertada observación la de Delphius.

Saludos.
Responder Con Cita
  #16  
Antiguo 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
bien ahora el problema es que el campo "ctrlconcepto" es integer y en esta parte de asignacion max:= Query1.FieldByName('maximo').AsString
no permite integer sino .string y .value. se que si lo denomino .value ahi que pasarlo al tipo q quiero. como seria?

Código Delphi [-]
query1.SQL.Clear;
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas where alucurso =IntToStr( x ) and concepto=IntToStr(dbedit9.text)' ;
query1.Active:=true;
max:= Query1.FieldByName('maximo').AsString;

asi como esta me tira error supongo porq max es integer, bien lo declare integer

max:= inttostr(query1.fieldbyname('maximo').value);

digo ya que el campo "maximo" es integer

Última edición por gonza_619 fecha: 14-09-2010 a las 23:25:47.
Responder Con Cita
  #17  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Código Delphi [-]
query1.SQL.Clear;
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas where alucurso =  '+ IntToStr( x )+'  and concepto = '+ IntToStr(dbedit9.text) ;
query1.Active:=true;
max:= Query1.FieldByName('maximo').Value;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #18  
Antiguo 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
me tira error de capability not suported.
que qiere decir cuando pongo al final .value?
quizas sea algo en la consulta pero el error me lo marca en la asignacion al MAX
no me tira error en la ocnsulta:
Código Delphi [-]
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas  where alucurso =IntToStr( x ) and concepto=IntToStr(dbedit9.text)' ;
Responder Con Cita
  #19  
Antiguo 14-09-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
La variable max que es ????
Saludos
__________________
Siempre Novato
Responder Con Cita
  #20  
Antiguo 14-09-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
la variable max es integer pero al parecer es en la cinsulta de esta manera funciona

Código Delphi [-]
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas where alucurso ='+IntToStr( x )

pero al tomar 2 campos como referencia ya no, es que el otro cmapo necesito agregarlo depues ese campo es tambien integer, sino tendre que pasarlo a un variable X como hice antes

strtoint(dbedit11.text)

Código Delphi [-]
query1.sql.text:= 'Select max(ctrlconcepto) as maximo from cobranzas where alucurso ='+IntToStr( x )  and conceptoctrl = strtoint(dbedit11.text)
aca nose si esta bien

Última edición por gonza_619 fecha: 14-09-2010 a las 23:54:54.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
volver un TEdit.Text un valor? Ðαяισš Varios 2 02-01-2009 05:06:17
comparar letras de un edit text con un toolbar sultan Varios 3 12-11-2008 00:24:37
TEdit Propiedad Text problema para cambiar alucardo OOP 12 29-05-2006 16:12:08
Guardar lo que tengo en un Edit1.text y edit2.text en una base de datos firebird jorgeluisc Conexión con bases de datos 1 23-04-2006 18:29:28
Pasar el valor de un TEdit dentro de un StringGrid a otro TEdit que está fuera atirado Varios 4 11-09-2004 19:13:48


La franja horaria es GMT +2. Ahora son las 05:42:16.


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