Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Verificar que haya informacion en un Tedit (https://www.clubdelphi.com/foros/showthread.php?t=65227)

aquilesbrinko 28-11-2009 19:11:59

Verificar que haya informacion en un Tedit
 
Disculpen, tengo el siguiente código

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);

begin
  if usuario.text='' then
    showmessage ('Escribe un usuario');
    usuario.setfocus;
      if usuario.Text<>'' then

    begin
        if contrasena.text='' then
    showmessage ('Escribe una contraseña');
    contrasena.setfocus;
      if contrasena.Text<>'' then

      begin
        showmessage('Accediendo al sistema');
        end;
         form5.show;
         form1.hide;
      end;
end;

Lo que busco es que verifique que haya datos en cada Tedit y de no ser asi no de acceso al sistema (Form5), sin embargo pese a que no introduzco datos en el Tedit contrasena me permite entrar...

En que esta mal mi sintaxis?

Por su ayuda gracias.

jhonny 28-11-2009 19:25:10

Puedes cambiar de plano, la forma en que lo haces (Pues aunque no lo mencionas, no veo donde verificas que el dato digitado sea correcto) o agregar un exit; o abort; para que no continue la ejecución.

ContraVeneno 28-11-2009 19:57:51

Código Delphi [-]
...
if Trim(usuario.text) <> EmptyStr then
 validarUsuario
else
 Showmessage('escribe algo, no te hagas el ....');
...

bosster_018 29-11-2009 04:14:03

Sólo te falta "Else"
 
Sólo debes cambiar tu condición de
Código Delphi [-]
if usuario.Text<>'' then
por el de "else" (caso contrario) y ordenarlo un poco más:
Así quedaría si le agregas un Begin, end y else a tu condición:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
  if usuario.Text='' then
  begin
    ShowMessage('Escriba un usuario');
  end
  else
  begin
    if contrasena.Text='' then
    begin
      ShowMessage('Escriba una contraseña');
    end
    else
    begin
      ShowMessage('Accediendo al sistema');
      Form5.ShowModal;
      Form1.Hide;
    end;
  end;
end;

Se que a veces es exagerado poner begin y end a cada condición :p aún si sólo lleva un procedimiento, pero a veces es mejor no dejarse llevar por la "flojera ;)" y escribir un poco más :rolleyes:

BrunoBsso 29-11-2009 09:40:26

El problema esta aca
 
Resalto tu problema

Código Delphi [-]
begin
  if usuario.text='' then
    showmessage ('Escribe un usuario');
  usuario.setfocus;
  if usuario.Text<>'' then begin
    if contrasena.text='' then
      showmessage ('Escribe una contraseña');
    contrasena.setfocus;
    if contrasena.Text<>'' then begin
       showmessage('Accediendo al sistema');
     end;
    //Si la contraseña no es vacia, solamente muestra un mensaje
    //pero no evita ke se muestre el form5
    form5.show;
    form1.hide;
  end;
end;

Ese codigo permite entrar al Form5 cuando el usuario no es vacio. Al momento de verificar si la contraseña no es vacia, lo unico ke hace es dar aviso de ke se accesa al sistema. Mientras ke por otro lado, si la contraseña es vacia pero el usuario no, entra SI O SI al Form5.

Siguiendo tu codigo, tendrias ke cambiarlo por esto:
Código Delphi [-]
begin
  if usuario.text='' then
    showmessage ('Escribe un usuario');
  usuario.setfocus;
  if usuario.Text<>'' then begin
    if contrasena.text='' then
      showmessage ('Escribe una contraseña');
    contrasena.setfocus;
    if contrasena.Text<>'' then begin
       showmessage('Accediendo al sistema');
       form5.show;
       form1.hide;
     end;
  end;
end;

Saludos!!!!!!!

PD: hay mejores formas, como la de bosster_018, pero yo no kise cambiar el "estilo" de tu codigo.

aquilesbrinko 29-11-2009 19:03:40

Infinitas gracias a todos...

Problema resuelto :)


La franja horaria es GMT +2. Ahora son las 10:59:45.

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