Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como puedo reiniciar mi sistema( cerrar y luego volver a abrir) (https://www.clubdelphi.com/foros/showthread.php?t=87189)

Robert Jara 26-11-2014 12:54:24

Como puedo reiniciar mi sistema( cerrar y luego volver a abrir)
 
Hola a todos estoy haciendo mi tesis y quiero agregarle a mi sistema que tenga un reinicio para que otro usuario pueda iniciar sesión si me pueden ayudar con esto les agradecería muchísimo.
Desde ya muchas gracias!!!

Neftali [Germán.Estévez] 26-11-2014 13:35:15

Hola.
Bienvenido a los foros.

Por favor revisa la guía de estilo.

En cuanto a la pregunta, yo personalmente no entiendo que significa esto:

Cita:

Empezado por Robert Jara (Mensaje 485574)
quiero agregarle a mi sistema que tenga un reinicio para que otro usuario pueda iniciar sesión

¿Puedes explicarlo mejor?
¿Hablamos de un programa? ¿Un EXE? ¿Delphi?
:confused::confused:

Robert Jara 26-11-2014 13:58:56

Hola gracias por responder.
Estoy programando en delphi un sistema de gestión y lo que quiero es que mi sistema tenga un botón de reinicio por así decirlo para cerrar y volver a ejecutar el sistema así para que me muestre otraves mi ventana de logueo para que otro usuario pueda iniciar sesión
cuando lo desee.
No se si me explique bien esta vez pero por ahí va la cosa :D :D jjj

ecfisa 26-11-2014 15:02:49

Hola Robert Jara.

Desconozco el RDBMS, componentes con que trabajas y todo lo demás, pero... ¿ No puedes simplemente cerrar la sesión y volver a iniciarla pidiendo la autentificación ?

Saludos :)

Neftali [Germán.Estévez] 26-11-2014 16:08:52

Cita:

Empezado por Robert Jara (Mensaje 485577)
Estoy programando en delphi un sistema de gestión y lo que quiero es que mi sistema tenga un botón de reinicio por así decirlo para cerrar y volver a ejecutar el sistema así para que me muestre otraves mi ventana de logueo para que otro usuario pueda iniciar sesión
cuando lo desee.

Basta con que pongas u8n botóon con lo siguiente:

Código Delphi [-]
ExitWindowsEx(EWX_FORCE or EWX_LOGOFF, 0);

Antes asegúrate de cerrar todo lo referemnte a tu aplicación.

De todas formas, tal y como ha comentado ecfisa, no creo que sea conveniente, porque puede haber otros programas que estén funcionando.
si cierras la sesión así a saber cómo vas a dejar lo que esté funcionando...

jafera 26-11-2014 16:53:12

Buenas tardes.

Veo que este hilo lo han contestado dos de los "grandes" de este foro.
En mi humilde opinión creo que el compañero pide reiniciar "su sistema de gestión" no el sistema operativo.

Supongo que tienes un formularo de acceso (login) para entrar en la aplicación, luego quieres que este usuario pueda dejar su sesion en el programa y que la pueda abrir otro usuario.

Corrigeme si no es así y como te han comentado antes dinos que Delphi y que base de datos usas.

Saludos

Josep

Neftali [Germán.Estévez] 26-11-2014 17:46:03

Cita:

Empezado por Robert Jara (Mensaje 485577)
lo que quiero es que mi sistema tenga un botón de reinicio por así decirlo para cerrar y volver a ejecutar el sistema así para que me muestre otraves mi ventana de logueo para que otro usuario pueda iniciar sesión

Cita:

Empezado por jafera (Mensaje 485589)
creo que el compañero pide reiniciar "su sistema de gestión" no el sistema operativo.

Tal vez tengas razón Josep, porque lo otro no tiene mucho sentido.
En ese caso, puedes coger un enfoque de cerrar la aplicación y volver a abrirla (1) o cerrar los formularios y lo que tengas abierto y volver a mostrar el formulario de Login (2); Algo así como volver al estado inicial.

En el caso (1) prueba con un botón y el siguiente código:

Código Delphi [-]
  // ------- Esto es para que te de tiempo a verlo ---------
  Self.Color := clNavy;
  Application.ProcessMessages;
  Sleep(1000);
  Application.ProcessMessages;
  Sleep(1000);
  Application.ProcessMessages;
  //-------------------------------------------------------------

  Application.Title := 'Cerrando...';
  Application.Minimize;
  // Se debe reiniciar?
  WinExec(PChar(ParamStr(0)), 1);
  // cerramos
  Application.Terminate;
  Exit;

roman 26-11-2014 18:02:22

En el caso (2) puedes hacer que el formulario de Login sea el principal y el principal lo creas a demanda.

Código Delphi [-]
program Sistema;

uses
  Forms,
  Login in 'Login.pas' {frmLogin},
  Main in 'Main.pas' {frmMain};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TfrmLogin, frmLogin);
  Application.Run;
end.

En el botón OK del formulario Login, si ls credenciales son correctas, escondes el formulario y creas el principal:

Código Delphi [-]
procedure TfrmLogin.btnOkClick(Sender: TObject);
begin
  if (txtUserName.Text = 'barack') and (txtPassword.Text = 'supersecreto') then
  begin
    Hide;
    with Main.TfrmMain.Create(Self) do
      Show;
  end;
end;

En el evento Close del formulario Principal lo destruyes y vuelves a mostrar el de Login:

Código Delphi [-]
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  Login.frmLogin.Show;
end;

// Saludos

Robert Jara 27-11-2014 15:38:14

Muchas gracias a todos por responder
Bueno estoy utilizando delphi xe7 y mi base de datos es firebird.
Josep tiene razón lo que yo quiero es reiniciar mi sistema que estoy haciendo en delphi no el sistema operativo así para que el usuario pueda cerrar cesión y otro usuario pueda iniciar también cesión. Lo que quiero hacer es parecido cuando reinicias el sistema operativo pero en este caso solo quiero reiniciar el sistema que estoy desarrollando en delphi, no el sistema operativo
Si no soy claro con mis preguntas les pido que me disculpen soy nuevo en esto y es la primera vez que estoy programando, todavía me falta mucho por aprender. :D:D
Sus aportes siempre me sirven mucho muchas gracias!!!:):)
saludos..

juanelo 27-11-2014 17:46:37

Cita:

Empezado por Robert Jara (Mensaje 485671)
Muchas gracias a todos por responder
Bueno estoy utilizando delphi xe7 y mi base de datos es firebird.
Josep tiene razón lo que yo quiero es reiniciar mi sistema que estoy haciendo en delphi no el sistema operativo así para que el usuario pueda cerrar cesión y otro usuario pueda iniciar también cesión. Lo que quiero hacer es parecido cuando reinicias el sistema operativo pero en este caso solo quiero reiniciar el sistema que estoy desarrollando en delphi, no el sistema operativo
Si no soy claro con mis preguntas les pido que me disculpen soy nuevo en esto y es la primera vez que estoy programando, todavía me falta mucho por aprender. :D:D
Sus aportes siempre me sirven mucho muchas gracias!!!:):)
saludos..

Pregunta ingenua: ¿y no te funciona que cierren el sistema y lo vuelvan a abrir con los datos de otro usuario (login)?

Manuel 28-11-2014 16:32:19

Cita:

Empezado por Neftali (Mensaje 485597)
Tal vez tengas razón Josep, porque lo otro no tiene mucho sentido.
En ese caso, puedes coger un enfoque de cerrar la aplicación y volver a abrirla (1) o cerrar los formularios y lo que tengas abierto y volver a mostrar el formulario de Login (2); Algo así como volver al estado inicial.

En el caso (1) prueba con un botón y el siguiente código:

Código Delphi [-]
  // ------- Esto es para que te de tiempo a verlo ---------
  Self.Color := clNavy;
  Application.ProcessMessages;
  Sleep(1000);
  Application.ProcessMessages;
  Sleep(1000);
  Application.ProcessMessages;
  //-------------------------------------------------------------

  Application.Title := 'Cerrando...';
  Application.Minimize;
  // Se debe reiniciar?
  WinExec(PChar(ParamStr(0)), 1);
  // cerramos
  Application.Terminate;
  Exit;


Funciona perfecto, me lo habían pedido en alguna oportunidad, así que aprovecho la colaboración, gracias una vez más


La franja horaria es GMT +2. Ahora son las 04:45:36.

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