Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Validar Introduccion De Datos (https://www.clubdelphi.com/foros/showthread.php?t=68246)

mezli 02-06-2010 21:15:40

Validar Introduccion De Datos
 
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í:
Código:

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

Cita:

Empezado por mcs (Mensaje 366064)
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.


La franja horaria es GMT +2. Ahora son las 23:45:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi