SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: el bare en Miércoles 8 de Abril de 2009, 23:12

Título: Errores Personalizados en Builder 6??
Publicado por: el bare en Miércoles 8 de Abril de 2009, 23:12
Hola a todos, aqui de nuevo con una pregunta.
al estar haciendo mi programa me di cuenta de que necesitaba mandar un mensaje al usuario si a este le falta ingresar un dato o si este fue incorrecto, en fin, al estar haciendolo, ejecute el programa y le mandaba un msj de error si faltaba un dato en un Edit, el problema es que despues de mostrar el error que yo le puse en un ShowMessage, me sale el error, no se, como del sistema o default, que dice  " " " is not a valid floating point ".
Alguien sabe como quitar este error y que solo me muestre el del ShowMessage??? quiza comentando alguna excepetion????


Saludos... :P
Título: Re: Errores Personalizados en Builder 6??
Publicado por: Eternal Idol en Jueves 9 de Abril de 2009, 00:28
No se entiende muy bien que queres pero tal vez lo logres usando try/catch, busca informacion al respecto.
Título: Re: Errores Personalizados en Builder 6??
Publicado por: el bare en Jueves 9 de Abril de 2009, 03:34
que tal, mira, lei lo de try y catch, te iba a poner unas imagenes, donde muestra el error y el try y catch,pero no tengo privilegios,asi que te pongo el codigo, lo que no entiendo es que hay que modificar de ese codigo para quitar el error que aparece.

esto es la linea del try

Código: C++
  1.  
  2.  
  3.  
  4. //---------------------------------------------------------------------------
  5. USEFORM("Unit1.cpp", Form1);
  6. USEFORM("Unit2.cpp", main);
  7. USEFORM("Unit3.cpp", Errorcero);
  8. USEFORM("Unit4.cpp", about);
  9. //---------------------------------------------------------------------------
  10. WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
  11. {
  12.         try
  13.         {
  14.                  Application->Initialize();
  15.                  Application->CreateForm(__classid(TForm1), &Form1);
  16.                  Application->CreateForm(__classid(Tmain), &main);
  17.                  Application->CreateForm(__classid(TErrorcero), &Errorcero);
  18.                  Application->CreateForm(__classid(Tabout), &about);
  19.                  Application->Run();
  20.         }
  21.         catch (Exception &exception)
  22.         {
  23.                  Application->ShowException(&exception);
  24.         }
  25.         catch (...)
  26.         {
  27.                  try
  28.                  {
  29.                          throw Exception("");
  30.                  }
  31.                  catch (Exception &exception)
  32.                  {
  33.                          Application->ShowException(&exception);
  34.                  }
  35.         }
  36.         return 0;
  37. }
  38.  
  39.  
  40.  
  41.  
  42.  




y  el error que menciono dice:

" is not a valid floating point


Saludos... :D
Título: Re: Errores Personalizados en Builder 6??
Publicado por: betopin en Jueves 9 de Abril de 2009, 06:33
Lo que copiaste es el codigo del archivo .cpp de tu proyecto que para el caso es normalmente igual en todas las aplicaciones que se generan desde builder (o al menos tiene siempre la misma estructura)

El try y el catch debes ponerlo tu pero en cada uno de los .cpp de los forms en donde vayas a manejar las excepciones, que en tu caso es cuando capturas valores de los edits

Quiza esto te sirva de guia

Código: C
  1. int n=0;
  2. try
  3. {
  4.    n=StrToInt(Edit1->Text);    
  5. }
  6. catch (...)  // Si ingreso un caracter diferente a numero entero
  7. {
  8.    Application->MessageBox ("Sólo deben ingresarse números enteros","Error en la entrada de datos", MB_OK);
  9.    Edit1->Text=" ";
  10. }
  11.  

Saludos!
Título: Re: Errores Personalizados en Builder 6??
Publicado por: el bare en Jueves 9 de Abril de 2009, 08:39
Gracias por el codigo, pero la verdad es que no supe que incluir en el codigo de mi proyecto   :brickwall:
no creo que haya que copiarlo y pegarlo tal cual, o si?? que es lo que hay que quitar y que hay que poner??? o es todo???  :huh:


Saludos.. :hola: