PDA

Ver la Versión Completa : Validar Introduccion De Datos


mezli
02-06-2010, 21:15:40
hola a todos tengo una aplicacioncita, donde introduzco algunos datos, y quiero validar que no pase ninguno vacio, o sea "". si alguno de los campos esta asi y se presiona el boton, que se muestre un msg y que el focus vuelva al campo correspondiente... hice un disparate mas o menos asi... if(edtNombre->Text=="") MessageDlg(msg, mtInformation, TMsgDlgButtons() SetFocus(); return; if(edtCodigo->Text=="") MessageDlg(msg, mtInformation, TMsgDlgButtons() SetFocus(); return; y no me sirve.... lo estoy haciendo en el event OnClick del boton "Aceptar" please... acepto cualquier sugerencia!!! muchas gracias...

escafandra
02-06-2010, 22:51:13
Hola mezli.

Procura utilizar las etiquetas de código, así se entenderá mejos el código que escribas.

Trata de hacerlo así:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(edtNombre->Text == ""){
ShowMessage("No introdujo datos");
edtNombre->SetFocus();
}
}


Saludos.

mcs
03-06-2010, 08:21:12
en C, para comparar cadenas no puedes usar el signo ==, ya que te mira si la dirección de memoria de la variable edtNombre->Text tiene la misma dirección que la cadena "".

Para comparar cadenas, puedes usar la función strcmp(cad1, cad2), o para mirar si la cadena es vacía usar strlen(cadena).

O sea, tu codigo tendría que ser:

if(strlen(edtNombre->Text)==0){
...
}

escafandra
03-06-2010, 09:36:41
en C, para comparar cadenas no puedes usar el signo ==, ya que te mira si la dirección de memoria de la variable edtNombre->Text tiene la misma dirección que la cadena "".

Para comparar cadenas, puedes usar la función strcmp(cad1, cad2), o para mirar si la cadena es vacía usar strlen(cadena).

O sea, tu codigo tendría que ser:

if(strlen(edtNombre->Text)==0){
...
}

En C no, pero en C++...:rolleyes:.

El tema es que edtNombre->Text no es una cadena tipo char* o char[] sino un objeto de la clase String que tiene definido el operador == con lo que puedes comparar cadenas tipo String perfectamente.;)

Saludos.