Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2006
cocke cocke is offline
Miembro
 
Registrado: nov 2006
Posts: 14
Poder: 0
cocke Va por buen camino
Suma StrToInt para Edit vacios

Hola a todos!!
Estoy desarrollando un formulario cliente-servidor que se comunica meidante tcp/ip.
Hay una parte donde debo sumar el valor de los productos, por eso hice un StrToInt para cada texto dentro de los txt, pero el campo de el valor es fijo.
Por ejemplo, solo se pueden ingresar 4 valores de productos y abajo existe otro Edit en cuyo campo va la suma de los anteriores. El problema esta en que cuando solo tengo 2 valores y los sumo, me arroja un error, debido a los otros 2 Edit que no tiene informacion. Un error relacionado con enteros. Solo funciona bien cuando se rellenan los 4 edit.
Como puedo solucionar eso?, ademas de agregar 0 cuando no hayan valores, existe alguna forma para que no me arroje error, o como puedo personalizar ese mensaje de error, diciendo que salga algo como "si no existen valores rellene con 0" ??¿¿

Muchas Gracias

Saludos ..
Responder Con Cita
  #2  
Antiguo 27-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, pues existen muchas respuestas posibles para tu problema. Ahí van unas cuantas:

- Comprobar si el edit contiene texto alguno, es decir, sino está en blanco.
Código Delphi [-]
if edit1->text <> '' then //... aque haces tu StrToInt
else // puedes ignorarlo o mostrar un mensaje de error ShowMessag('debe introducir algún numero');

- Otra, la que tu has comentado, poner a 0 por defecto los edits, o comprobar que si no insertan nada lo deje a 0. Eso lo puedes hacer en el OnExit del Edit. Pones esto:
Código Delphi [-]
if edit1->text <> '' then edit1->text = '0';

- La otra que pides, es la de personalizar el mensaje de error. Esa viene incluida en la primera respuesta que te he dado.

Como ves, hay múltiples soluciones, tú eliges o combinas y las adaptas a tu programa.

Espero te sirva.

Saludos
Responder Con Cita
  #3  
Antiguo 27-11-2006
cocke cocke is offline
Miembro
 
Registrado: nov 2006
Posts: 14
Poder: 0
cocke Va por buen camino
Cool Gracias

Gracias por responder.
Olvide comentar que lo estoy desarrollando en Builder.
Hice doble clik encima del edit que quiero "arreglar"y puse el sgte codigo
if (Edit11->Text = '');
ShowMessag('Debe introducir algun numero');
pero me arrojaba errores en las 2 lineas de codigo, luego modifique a

if ("Edit11->Text = ''");
ShowMessag('Debe introducir algun numero');

Finalmente quedo como

if (Edit11->Text = '')
StrToInt(Edit11->Text);
else
ShowMessag('Debe introducir algun numero');

Pero me sigue arrojando errores, creo que deben ser errores basicos, pero empeze con builder hace 1 semana

Si me puedes ayudar seria fenomenal

Gracias..

Saludos..

Última edición por cocke fecha: 27-11-2006 a las 05:27:50.
Responder Con Cita
  #4  
Antiguo 27-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Bueno yo de Builder no tengo ni idea, pero seria conveniente que escribieras los errores que te salen, para poder ver donde falla.

Saludos
Responder Con Cita
  #5  
Antiguo 27-11-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción es utilizar la función StrToIntDef, a la que puedes asignar un valor por defecto en caso del Edit vacío (segun la versión que tengas).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 27-11-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Cita:
Empezado por cocke
if (Edit11->Text = '')
StrToInt(Edit11->Text);
else
ShowMessag('Debe introducir algun numero');

Pero me sigue arrojando errores, creo que deben ser errores basicos, pero empeze con builder hace 1 semana
Hola Cocke, bienvenido al club.

primero, las cadenas en Delphi se escriben entre comillas simples, en C++Builder entre comillas dobles y los caracteres en comillas simples.

Ahi ya tenes tus posibles errores.

Otro consejo es que te busques un libro basico de C++ donde aprender un poco la sintaxis de lenguaje y otro de C++Builder para el tema de los componentes y entorno (si ya sabes delphi obvia este ultimo)
__________________
[Crandel]
Responder Con Cita
  #7  
Antiguo 28-11-2006
cocke cocke is offline
Miembro
 
Registrado: nov 2006
Posts: 14
Poder: 0
cocke Va por buen camino
Cool Gracias..

Hola a todos..
Despues de leerlos atte, corregi todo lo aconsejado y aun no funcionaba..
Pueden creer que el error estaba dentro del if,habia olvidado la diferencia entre un = y un ==
Gracias por todo..
Me podrian ayudar a imprimir el formulario??

Saludos!!
Responder Con Cita
  #8  
Antiguo 28-11-2006
cocke cocke is offline
Miembro
 
Registrado: nov 2006
Posts: 14
Poder: 0
cocke Va por buen camino
Thumbs up TPrinter

Hola a todos..
Despues de leerlos atte, corregi todo lo aconsejado y aun no funcionaba..
Pueden creer que el error estaba dentro del if,habia olvidado la diferencia entre un = y un ==
Gracias por todo..
Estuve leyendo acerca de TPrinter, ya que necesito imprimir el formulario, y encontre lo siguiente
TPrinter Prntr = Printer();
TRect r = Rect(200,200,Prntr->PageWidth – 200,Prntr->PageHeight – 200);
Prntr->BeginDoc();
Prntr->Canvas->TextRect(r, 200, 200, Memo1->Lines->Text);
Prntr->EndDoc();
Pero creo que esta imprimiendo un cuadrado?
Se supone que para imprimir le formulario primero debo capturar el mapa de bits del formulario, y nose como hacerlo

Me podrian ayudar a imprimir el formulario??
Gracias nuevamente

Saludos!!
Responder Con Cita
  #9  
Antiguo 28-11-2006
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Hola de nuevo, es importante que mantengamos cierto orden en el foro, porque la cantidad de mensajes es enorme, por lo que para tema nuevo, abri un nuevo hilo.

Igualmente te recomiendo que leas La guia de estilo que ayudan bastante al escribir los mensajes y obtener mejor respuesta.
__________________
[Crandel]
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
¿Cómo implantar en mi aplicación StrToInt?!!! DarkByte Varios 6 27-08-2006 17:21:14
DateTime con vacios CamiloU OOP 4 12-01-2006 12:37:34
no ingresar vacios o nulos.. pzala Varios 5 30-08-2005 21:40:02
Validar convercion strtoint martita Varios 10 13-07-2005 02:35:43
consultar campos vacios noe SQL 1 21-03-2005 17:35:42


La franja horaria es GMT +2. Ahora son las 16:04:30.


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