Aplicação A abre Formulário da Aplicação B
É possível fazer um Sistema A abrir um determinado formulário em uma Aplicação B? Como?
Obs. Os dois sistemas foram feitos em Delphi e utilizam a mesma base de dados.
Obs. Os dois sistemas foram feitos em Delphi e utilizam a mesma base de dados.
Outl@w
Curtidas 0
Respostas
Rodrigo_rcp
16/12/2003
[b:4e02fad94f]a[/b:4e02fad94f]
[b:4e02fad94f]B[/b:4e02fad94f]
Acho que é +- isso , estou sem o Delphi aqui então se não funcionar é só avisar.
procedure TFMRemetente.Button1Click(Sender: TObject); var h:Thandle; begin h:=FindWindow(´TFMDestinatario´,nil); PostMessage(h,WM_app+10,0,0); end;
[b:4e02fad94f]B[/b:4e02fad94f]
public
procedure receber(var msg: Tmessage);message WM_app+10;
end;
var
FMDestinatario: TFMDestinatario;
implementation
{$R *.dfm}
procedure TFMDestinatario.receber(var msg: TMessage);
begin
TFMDestinatario.Show;
end;Acho que é +- isso , estou sem o Delphi aqui então se não funcionar é só avisar.
GOSTEI 0
Outl@w
16/12/2003
Não funcionou... :cry:
GOSTEI 0
Outl@w
16/12/2003
sobe.
GOSTEI 0
Outl@w
16/12/2003
sobe.
GOSTEI 0
Rodrigo_rcp
16/12/2003
o form que você quer mostrar já esta criado quando é enviado o PostMessage?
GOSTEI 0
Outl@w
16/12/2003
Sim.
E a aplicação B está rodando.
E a aplicação B está rodando.
GOSTEI 0
Deus
16/12/2003
Para conseguir executar essa tarefa, vai ser bastante simples: siga as instruções [url=http://www.wamoz.com/inter-app-messages-in-delphi.asp]deste[/url] site aqui, e você conseguirá fazer com que duas aplicações se comuniquem através de mensagens. :) Espero ter ajudado!
Abraços, dEUS.
Abraços, dEUS.
GOSTEI 0
Rodrigo_rcp
16/12/2003
[b:2f7888664b]Aplicação A:[/b:2f7888664b]
[b:2f7888664b]Aplicação B:[/b:2f7888664b]
A aplicação “A” envia uma PostMessage para o FMPrincipal da aplicação “B” que processa a mensagem e mostra o Form que estava oculto.
OBS: Estou considerando que a aplicação “B” já esta sendo executada e que o “Form Oculto” já esta criado.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(FindWindow(nil,´FMPrincipal´),WM_App+10,0,0);
end;
end.[b:2f7888664b]Aplicação B:[/b:2f7888664b]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TFMPrincipal = class(TForm)
private
{ Private declarations }
public
procedure MostrarForm(var msg:TMessage);message WM_app+10; { Public declarations }
end;
var
FMPrincipal: TFMPrincipal;
implementation
uses Unit2;
Procedure TFMPrincipal.MostrarForm(var msg:TMessage);
begin
FMOculto.Show;
end;
{$R *.dfm}
end.A aplicação “A” envia uma PostMessage para o FMPrincipal da aplicação “B” que processa a mensagem e mostra o Form que estava oculto.
OBS: Estou considerando que a aplicação “B” já esta sendo executada e que o “Form Oculto” já esta criado.
GOSTEI 0