PDA

Ver la Versión Completa : Llamada A Un Form


nikotina
17-10-2006, 16:44:24
Hola A Todos. Mi Consulta Es Como Debo Hacer Para Llamar A Una Aplicacion Que Esta En Otro Proyecto. Por Ejemplo: La Aplicacion "compras" En La Cual Al Precionar Un Boton Quiero Que Me Abra El Form De La Aplicacion "pedidos".-
Ya Lo Intente Mediante El Codigo:

Procedure Button1click(sender:object)
Begin
Pedidos.show;
End;

Pero Lo Llama Siempre Y Cuando Haya Sido Creado Desde El New Form. De Otra Forma No.

Espero Haber Sido Claro

Si Alguien Me Puede Ayudar Lo Agradecera Mucho.

Un Abrazo.

Enan0
17-10-2006, 17:11:12
HOla mira la verdad que no es muy claro pero:
Si queres llamar al formulario PEDIDOS (no a la aplicacion PEDIDOS.EXE) estaria bien lo que estas haciendo, Siempre y cuando el formulario este creado, sino tendrias que crearlo previamente.
en los uses agregas el "UNIT"

y luego.


Procedure Button1click(sender: Tobject)
var Miform:TForm;
// O
Miform: frmPEdidos; // (o como se llame
Begin
miform := Pedidos.create(self); //Si queres que dependa de este formulario)
// O
Miform:=pedidos.create(nil);
Miform.showmodal;
//lo pongo en modal, para que se ejecute y no devuelva el control hasta que nose cierra
miform.free;
end;


y si queres llamar a tu aplicacion Compilada
podes USar, El Shellexecute o winexec

Caral
17-10-2006, 17:34:00
Hola
Creo segun entiendo son dos aplicaciones o proyectos o ejecutables diferenes, para llamar a de un ejecutable o proyecto a otro, siempre que se encuentren archivados en la misma carpeta ejemplo: c/proyecto/compras.exe y en la misma este pedidos.exe, solo tienes que ejecutar la que necesites la llamas asi:
Puedes usar un boton y en el evento on click pones:

Launch('Pedidos','');
Con solo esto la aplicacion pedidos se ejecutara, sin dejar de ejecutarse la aplicacion compras.
Espero sea esto lo que necesitas.
Saludos

Enan0
17-10-2006, 18:14:27
Launch???...
Que version de Delphi estas usando NIKOTINA???
porque en delphi 4 a 6 nunca he visto ese launch.. y en trucomania u otros sitios hay una rutinas vastante interesantes para ejecutar un programa externo y no devolver el control hasta que finalize

Caral
17-10-2006, 18:46:33
Hola Enan0
Yo uso Delphi 6, con este a mi me funciona perfectamente.
Ejecuta la aplicacion independientemente de la otra, puedes cerrar o abrir cualuiera de las dos o mas.
Saludos

avmm2004
17-10-2006, 18:55:53
Hola Enan0
Yo uso Delphi 6, con este a mi me funciona perfectamente.
Ejecuta la aplicacion independientemente de la otra, puedes cerrar o abrir cualuiera de las dos o mas.
Saludos

De donde sacastes ESO (LAUNCH) ??????????:confused:

En delphi 2006 tampoco existe. Puedes mirar la unit que utiliza por curiosidad.

Gracias.

Caral
17-10-2006, 19:08:49
Hola y perdon :D talvez lo hice sin querer;)
La cosa empieza asi:
Hay que crear un procedimiento primero:

procedure TForm1.Launch(AppName, Params: string);
begin
ExecuteApp(AppName, Params);
end;

Y despues llamarlo:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Launch('Pedidos','');
end;
Ya se merezco el regaño, pero aqui esta como se hace.
Como se ejecuta via procedimiento, nada mas cambio el nombre del programa al que se quiere llamar, Obviamente uso ExecuteApp.:)
Saludos

Enan0
17-10-2006, 19:34:56
Jajajja Si CARAL.. Lo hiciste Vos.. porque no exite :D

Y aparte no tiene mucho sentido porque lo que estas haciendo es llamar Al EXecuteAPP. o tambien al winexec.
o shellexecute, dependiendo si tenes la Unit Correcta agregada al programa

nikotina
18-10-2006, 12:05:29
ja ja. espero no haber creado una polemica del tema. gracias a los dos por darme una ayuda. lo voy a implementar y les cuento.

otra vez gracias y saludos