Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-01-2013
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Ocultar ventanas

Hola, no se si este hilo deba ir aqui pero este es mi problema: Tengo una ventana en la cual me conecto a una base de datos, una vez que he realizado la conexion puedo ver la ventana principal de mi aplicacion, pero si muevo la ventana con el mouse puedo ver la ventana de la conexion detras, o sea la ventana que se supone que se cierre, he probado con destruirla pero me da error, no se que hacer porque esa ventana es obligatoria y se me ve muy feo que este ahi. Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 07-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.079
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hay muchas formas de solucinarlo, aunque deberías poner tu código para aconsejarte según la forma en que tú lo haces.
Responder Con Cita
  #3  
Antiguo 07-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Melissa_12,

Cita:
Empezado por Melissa_12
Tengo una ventana en la cual me conecto a una base de datos, una vez que he realizado la conexion puedo ver la ventana principal de mi aplicacion, pero si muevo la ventana con el mouse puedo ver la ventana de la conexion detras, o sea la ventana que se supone que se cierre, he probado con destruirla pero me da error, no se que hacer porque esa ventana es obligatoria
Revisa este link:
Espero sea útil

Nelson.
Responder Con Cita
  #4  
Antiguo 12-01-2013
Melissa_12 Melissa_12 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 44
Poder: 0
Melissa_12 Va por buen camino
Hola, pues me he demorado un poco en responder pero he probado el enlace que me ha dicho Nelson y no se muy bien donde poner el codigo que viene. O sea, ya he puesto la funcion para poner la forma que quiero como forma principal pero desde donde debo llamar el procedimiento?.

Por ejemplo: tengo un formulario donde el usuario se autentica, si la contrasenna y el usuario son correctos pasa al Form1, pero el formulario de autenticacion sigue quedando detras del Form1. Llame al procedimiento en el boton de Aceptar para validar el usuario y la contraseña, pero cuando voy a cerrar el Form1 me da el siguiente error:
"cannot change visible in onshow or onhide" y no tengo la menor idea de que pueda se. Muchas Gracias.
Responder Con Cita
  #5  
Antiguo 12-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Melissa_12.

Si el form es un inicio de seción a la aplicación, revisa estos enlaces:

Si se trata de una verificación para permitir o negar el ingreso a determinada acción u otro formulario, podes hacer:

Formulario login:
Código Delphi [-]
...
var
  frmLogin: TfrmLogin;

implementation 

(* Aquí declaro las variables Nombre y Password como ejemplo.
   En tu caso, supongo, obtendras los datos de un archivo *)
var
  Nombre  : string = 'Nombre';
  Password: string = 'Password';

procedure TfrmLogin.FormCreate(Sender: TObject);
begin
  BitBtnAceptar.ModalResult  := mrOK;
  BitBtnCancelar.ModalResult := mrAbort;
  EditPwd.PasswordChar:= '*' //(si no deseas mostrar lo que escribe)
end;

procedure TfrmLogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if (EditName.Text <> Nombre)or(EditPwd.Text <> Password) then
    ModalResult:= mrAbort;
  Action:= caFree
end;

procedure TfrmLogin.FormDestroy(Sender: TObject);
begin
  frmLogin:= nil;
end;
end.

Formulario que llama previamente a frmLogin para permitir (o no) el acceso a determinada acción:
Código Delphi [-]
procedure TfrmMain.ButtonAccedeClick(Sender: TObject);
begin
  frmLogin:= TfrmLogin.Create(nil);
  if frmLogin.ShowModal = mrOk then
    ShowMessage('Ingresa')  // En tu caso abrir el otro form
  else
    ShowMessage('No ingresa'); 
end;
Tenes que quitar a frmLogin de: Project -> Options -> Forms -> Auto-create forms.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 12-01-2013 a las 21:17:33.
Responder Con Cita
  #6  
Antiguo 13-01-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Melissa_12,

Cita:
Empezado por Melissa_12
He probado el enlace que me ha dicho Nelson y no se muy bien donde poner el código que viene. O sea, ya he puesto la función para poner la forma que quiero como forma principal pero desde donde debo llamar el procedimiento?
En el caso particular de que el Form de acceso de tu aplicación sea el MainForm, puedes una vez validado y aceptado el acceso del usuario al sistema, colocar el siguiente código antes de llamar a la primera pantalla de tu aplicación (Se asume que FormLogin es el MainForm):
Código Delphi [-]
// Código de ejemplo del Formulario FormLogin:

// Cambia el formulario principal en Runtime.
procedure SetAsMainForm(aForm:TForm);
var
  P : Pointer;
begin
  // Dirección del Formulario Principal
  P := @Application.Mainform;
  // Cambia la Dirección del Formulario Principal
  Pointer(P^) := aForm;
end;

// Valida el acceso a la aplicación
procedure ValidateLogin(UserName, PassWord : String);
begin
   
   // Ejecutas el código de validación de acceso de tu aplicación.

   // Si el acceso fue valido ejecutas el código siguiente:

   // Establece FormApp con FormMain
   SetAsMainForm(FormApp);
  
   // Muestra FormApp
   FormApp.Show;
  
   // Cierra FormLogin
   FormLogin.Close;

end;
El código anterior establece a FormApp como formulario principal en vez de FormLogin y cierra el formulario de login.

Una forma mas estándar de usar un formulario de login es la siguiente:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin

   Form2 := TForm2.Create(nil);
   Form2.Visible := False;
   Form2.BorderStyle := bsDialog;

   if Form2.ShowModal = mrOk then
   begin
      Form1.BringToFront;
      Form2.Release;
   end
   else
      Application.Terminate;
  
end;
El código anterior llama en el evento OnCreate de Form1 al formulario de login Form2 el cual valida el acceso a la aplicación. Form2 no se encuentra configurado en: Project -> Options -> Forms -> Auto-create forms y por ser de tipo Modal, Form1 no se visualizara hasta que el acceso sea valido, caso contrario finalizara la aplicación.

Te anexo un ejemplo de login usando una aplicación MDI, pero la lógica es la misma para aplicaciones SDI. El ejemplo esta disponible en el link: http://terawiki.clubdelphi.com/Delph...load=Login.rar

El ejemplo de cambiar el formulario principal del Mensaje 3 esta disponible en el link: http://www.clubdelphi.com/foros/atta...7&d=1353126375

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 13-01-2013 a las 05:05:53.
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
Ocultar exe. _F3R_ API de Windows 3 30-08-2010 08:50:54
Ventanas,Ventanas Mdi=Dolor de cabeza ? IVAND Varios 7 08-05-2006 17:27:24
Ocultar Nathan Varios 2 11-03-2004 17:32:14
Ocultar ventanas en el escritorio roman API de Windows 5 11-02-2004 07:57:44
ocultar botones67 Varios 3 04-10-2003 15:35:37


La franja horaria es GMT +2. Ahora son las 03:07:54.


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