• Viernes 8 de Noviembre de 2024, 14:33

Autor Tema:  Ahorro de codigo  (Leído 1747 veces)

aleks170

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Ahorro de codigo
« en: Jueves 17 de Marzo de 2011, 17:41 »
0
hola de nuevo con un pequeño problema.... La idea es ahorrar codigo. El problema es el siguiente.
Tengo 3 edit y 6 comboxBox.... y es obligatorio que todos los campos esten llenos para gurdarlos en BD.
cual seria el codigo para este problema... por que lo tengo es algo parecido a esto:
if( Edit1->Text.IsEmpty() || Edit2->Text.IsEmpty() || ComboBox1->Text.IsEmpty() y...lo que sigue......  )
       { ShowMessage("todos los campos son obligatorios");
        return;   }
        else  {
        ShowMessage("Listo"); }
Plis...
hay alguna solucion???

rfog

  • Miembro MUY activo
  • ***
  • Mensajes: 166
    • Ver Perfil
Re: Ahorro de codigo
« Respuesta #1 en: Viernes 18 de Marzo de 2011, 12:05 »
0
Comparte un mismo evento OnExit de cada control y no dejes salir si el campo está vacío. Para saber qué control es, moldea el Sender al TEdit y listo.

Algo así (escrito de memoria)

TEdit *e=dynamic_cast<TEdit *>(sender);
if(e->Text->IsEmpty())
{
Application->MessageBox(...)
Abort();
}

Lo de abort() no lo tengo tan claro, pero si no es esa llamada es el otro parámetro que recibes que impedirá salir o simplemente vuelves a ponerle el foco al e->SetFocus();

Escribo de memoria y no tengo el C++ Builder a mano, así que las llamadas podrían no ser la correctas, pero te haces a la idea.
Microsoft Visual C++ MVP - Mi blog sobre programación: http://geeks.ms/blogs/rfog