Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Ayuda con inputquery

Hola gente,

Estoy teniendo problemas con lazarus, en realidad, entiendo que pueda ser algo de lo mas sencillo pero a mi no se me ocurre que mas probar. El caso es que tengo el siguiente código:

Código Delphi [-]
procedure TryInputQuery;
   var respuesta: boolean;
       TextoUsuario: string;
  begin
     respuesta := InputQuery ('Cajón de claves.', 'Introduce la contraseña maestra.', true, TextoUsuario);
     if respuesta {= true} and (TextoUsuario = 'xxxxxxx') then
     begin
       form3.Label1.Visible:= true;
       form3.Panel1.Visible:= true;
       form3.sp1.visible:= true;
       form3.show
     end
     else
     ShowMessage('Error. Contraseña no reconocible');
//     form3.close
  end;

procedure TForm3.FormActivate(Sender: TObject);
begin
  TryInputQuery;
end;

La idea es que se obligue a introducir la contraseña correcta o se pulse el botón cancelar pero en lugar de eso, lo que hace es.., si se introduce la contraseña correcta deja avanzar pero si se pulsa el boton cancelar sigue mostrando el showmessage y cuando acepto ese mensaje el programa continua adelante, es decir, da acceso al listado, algo que no debe ocurrir hasta que se introduzca la clave correcta. Y no sé como solucionarlo, he pensado en un goto con su label pero no sé... creo que eso es de todo menos eficiente. ¿Alguna idea?
Un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #2  
Antiguo 28-11-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola, ya está resuelto,

Código Delphi [-]
procedure TryInputQuery;
var
   respuesta: boolean;
   TextoUsuario: string;
   resp, estilo: integer;
   texto: pchar;

label salto;
begin
    salto:
    respuesta := InputQuery ('Cajón de claves.', 'Introduce la contraseña maestra.', true, TextoUsuario);
     if respuesta {= true} and (TextoUsuario = 'xr8mt5xr') then
     begin
       form3.Label1.Visible:= true;
       form3.Panel1.Visible:= true;
       form3.sp1.visible:= true;
       form3.show
     end
     else
     with application do
     begin
      estilo :=  MB_OKCANCEL + MB_ICONWARNING;
      resp :=  MessageBox ('Error. La contraseña introducida no es reconocible'+#13+
                           'o no has introducido ninguna clave válida. Vuelve a'+#13+
                           'intentarlo o pulsa sobre "Cancelar" para salir al '+#13+
                           'menú principal.', 'Cajón de claves. Error', estilo); //recogemos el valor de la función
      case resp of
        IDOK: goto salto;
        IDCANCEL: form3.Close;
      end; //case
     end; //with
  end;

procedure TForm3.FormActivate(Sender: TObject);
begin
  TryInputQuery;
end;

Hay que añadir la directiva {goto on}
Saludos.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
  #3  
Antiguo 28-11-2016
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
A ver si esto te ayuda...

Código Delphi [-]
function TForm3.TryInputQuery:Boolean;
var
   respuesta: Boolean;
   Text, Values: String;
begin
     Values:='xr8mt5xr';
     Text  :=Chr(30)+'Introduce la contraseña maestra.';

     while True do
     begin
          Result := InputQuery('Cajón de claves.', Text, Values);

          if not Result then
             Exit;

          if Values='xr8mt5xr' then
             Exit;
     end;
end;

Tu la complementas...Saludos cordiales
Responder Con Cita
  #4  
Antiguo 30-11-2016
Avatar de danielmj
danielmj danielmj is offline
Miembro
 
Registrado: jun 2011
Posts: 383
Poder: 13
danielmj Va por buen camino
Hola cloayza, gracias por responder, mañana me pongo con el a ver que tal funciona.. un saludo.
__________________
La juventud pasa, la inmadurez se supera, la ignorancia se cura con la educación, y la embriaguez con la sobriedad, pero la estupidez dura para siempre. Aristofanes.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda BD Access? Ayuda al modificar!! DarkArias Conexión con bases de datos 4 24-08-2013 23:47:41
InputBox e InputQuery olbeup Varios 5 17-05-2013 09:16:36
Usar inputquery para insertar contraseña meme C++ Builder 2 08-01-2008 19:39:53
Cambiar captions de botones en InputQuery Perio Varios 2 01-06-2005 16:59:41
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59


La franja horaria es GMT +2. Ahora son las 21:55:28.


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