Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Ayuda con sentencia if

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Ayuda con sentencia if Responder citando

if(Edit97->Text > 1.25)

Application->MessageBox("No puede asignar este descuento.", "Descuento Invalido!", MB_OK);

Edit97->Text = "0.00";



else

Edit14->Text = (Edit14->Text.ToDouble()) / (Edit97->Text.ToDouble());
Button14->SetFocus();


Saludos cuando utilizo el codigo anterior al compilar me da el siguiente error:

[C++ Error] Productos.cpp(1732): E2054 Misplaced else

Como puedo solucionar el problema, si le quito el MessageBox funciona perfectamente pero al ponerlo me da el erro y necesito que muestre ese mensaje espero me puedan ayudar gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola, se te olvidan las llaves, las líneas 3 y 6 del código que usas se ejecutarían siempre (si funcionara), independientemente del resultado del if
Código:

if(Edit97->Text > 1.25)
  {
  Application->MessageBox("No puede asignar este descuento.", "Descuento Invalido!", MB_OK);
  Edit97->Text = "0.00";
  }
else
  {
  Edit14->Text = (Edit14->Text.ToDouble()) / (Edit97->Text.ToDouble());
  Button14->SetFocus();
  }

Además, el resultado del if no sé cuál será, desde luego no estás comparando números sino un AnsiString con un número. Supongo que querías usar
Código:

if(Edit97->Text.ToDouble() > 1.25)
  {
  Application->MessageBox("No puede asignar este descuento.", "Descuento Invalido!", MB_OK);
  Edit97->Text = "0.00";
  }
else
  {
  Edit14->Text = AnsiString(Edit14->Text.ToDouble() / Edit97->Text.ToDouble());
  Button14->SetFocus();
  }

Te recomiendo también que todo esto lo hagas dentro de un try, pues es muy posible que el usuario no introduzca un número (o use la coma del teclado numérico) y se termine la ejecución de tu programa al no poder convertirlo a un double.
Yo, para editar números (y prescindir del try), utilizo un editor numérico que solventa esos problemas. No es más que un Edit con un par de propiedades más (Alineación y EsEntero), que sólo permite la introducción de números y una sola coma si !EsEntero (admite "," "."). Si quieres te lo mando. Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Muchas gracias me a funcionado perfectamente te agradeceria mucho si me puedes mandar el editor numerico ya que si tengo esos problemas con los Edits.

muchas gracias Very Happy
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Componente NumEdit Responder citando

Hola, supongo que recibiste el componente, llevo una semana sin poder leer el correo entrante por lo que no sé si me has respondido. Estos días lo he estado usando en un programa y me he dado cuenta de un fallo que tiene el componente: NO PERMITE EDITAR NÚMEROS NEGATIVOS. Lo he intentado solucionar sin éxito, por lo que asumo que sólo se debe usar si el número a editar es forzosamente positivo. Si consigo algo nuevo ya te informaré. Saludos
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.