Delphi - Cerrar y abrir aplicación

 
Vista:

Cerrar y abrir aplicación

Publicado por Manuel (10 intervenciones) el 15/06/2005 17:49:09
Perdon por mi atrevimiento pero necesito hacer una modificación en un pequeño programa que me hicieron hace tiempo y aunque lo logré hace meses ahora no logro repetirlo. El problema es que quiero hacer click en un botón de la aplicación y abra otra aplicación igual pero en distinto idioma pero a la vez cierre la que estaba abierta primero. Sólo consigo abrir una aplicación tras otra pero no se como cerrar a la vez la actual. Muchas gracias.

Manuel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cerrar y abrir aplicación

Publicado por Kwerty (112 intervenciones) el 15/06/2005 20:59:12
Pues
Close //si es el formulario principal o
Application.Terminate.

Si no te sirve, nos valdrá de ayuda que pongas el trozo de codigo donde hace esto. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cerrar y abrir aplicación

Publicado por Manuel (10 intervenciones) el 16/06/2005 20:21:52
Gracias Kwerty por responder. He probado con Application terminate y sólo cierra la aplicación pero no abre la siguiente. Como verás no tengo ni idea de programación. te adjunto el codigo pero no tiene nada escrito solo son las funciones del botón.

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, StdCtrls, Buttons, jpeg,
ActnList, ActnMan, ExtActns, StdActns;

type
TForm1 = class(TForm)
Button4: TButton;
Button5: TButton;
ActionList1: TActionList;
FileRun1: TFileRun;
FileRun2: TFileRun;
FileRun3: TFileRun;
BrowseURL1: TBrowseURL;
SendMail1: TSendMail;
Button1: TButton;
Button2: TButton;
Image1: TImage;
Label3: TLabel;
Label4: TLabel;
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
FileRun4: TFileRun;
FileRun5: TFileRun;
Label5: TLabel;
Button6: TButton;
FileRun6: TFileRun;
Label10: TLabel;
Label9: TLabel;
Image2: TImage;
FileRun7: TFileRun;
Button7: TButton;
Button8: TButton;
FileRun8: TFileRun;
Image3: TImage;
FileExit1: TFileExit;
WindowClose1: TWindowClose;
Button3: TButton;
FileRun10: TFileRun;
procedure Button3Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }

end;

var
Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button3Click(Sender: TObject);
begin

end;

end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cerrar y abrir aplicación

Publicado por manuel (10 intervenciones) el 16/06/2005 20:25:55
perdona pero se me ocurre que si te mando a tu correo todos los archivos que componen la aplicación a tu correo lo podrias ver mejor. Está en Delphi 7 y ocupa 1,7 Mb sin comprimir. Muchas gracias por tu atención
manuel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cerrar y abrir aplicación

Publicado por Kwerty (112 intervenciones) el 17/06/2005 11:55:24
No hace falta ; )
Es bastante sencillo, si he entendido lo que quieres hacer. Si al pulsa un botón se abre una aplicación y se cierra la actual, se hace con dos lineas de código.

1) Añade ShellAPI al uses del Form (lo que se encuentra en la parte superior):

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, StdCtrls, Buttons, jpeg,
ActnList, ActnMan, ExtActns, StdActns, SHELLAPI;

2) En el código del botón que quieras que realice el efecto de abrir otro programa y cerrar el actual pon lo siguiente:

procedure TForm1.Button3Click(Sender: TObject);
begin
ShellExecute (0, 'Open', 'C:\WinZip.log', '', '', SW_SHOWNORMAL);
Application.Terminate;
end;

Nota que debes cambiar C:WinZip.log por la ruta en la que se encuentra el programa que quieres abrir. Un saludo. Si ves que te sigue dando problemas, dilo a ver si te podemos seguir ayudando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cerrar y abrir aplicación

Publicado por manuel (10 intervenciones) el 17/06/2005 20:13:46
Muchisimas gracias. Funciona perfectamente. He seguido buscando y he encontrado el fuente antiguo pero el sistema tuyo es más simple porque no emplea FileRun. Muchas gracias
De todos modos te envio el código antiguo para que veas como lo habia hecho antes
manuel

procedure TForm1.Button10Click(Sender: TObject);
begin
FileRun7.Execute;
Application.ProcessMessages;
self.Close;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cerrar y abrir aplicación

Publicado por paco (2 intervenciones) el 23/06/2005 22:05:03
Hola Kwerty tengo el mismo problema que el compañero pero yo estoy programando en Kylix. El comando shellExecute no me funciona y la libreria shellAPI dice que no la encuentra, agredeceria mucho alguna ayuda ya que llevo tiempo preguntando por este tema. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cerrar y abrir aplicación

Publicado por Kwerty (112 intervenciones) el 24/06/2005 14:31:09
ShellAPI es una Unit que maneja APIs de Windows. Por consiguiente, en Kylix no va a funcionar. Lo cierto es que desconozco el procedimiento adecuado para hacer un ShellExecute en Kylix. Sorry.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cerrar y abrir aplicación

Publicado por Diego Romero (636 intervenciones) el 26/06/2005 12:30:23
Revolviendo páginas encontré el equivalente de WinExec para Kylix, se trata de Execv(), acepta dos parámetros, el primero es el path al ejecutable, el segundo ni idea :S.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar