Aplicação A abre Formulário da Aplicação B

16/12/2003

1

É 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.


Responder

Posts

16/12/2003

Rodrigo_rcp

[b:4e02fad94f]a[/b:4e02fad94f]

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.


Responder

16/12/2003

Outl@w

Não funcionou... :cry:


Responder

16/12/2003

Outl@w

sobe.


Responder

17/12/2003

Outl@w

sobe.


Responder

17/12/2003

Rodrigo_rcp

o form que você quer mostrar já esta criado quando é enviado o PostMessage?


Responder

17/12/2003

Outl@w

Sim.
E a aplicação B está rodando.


Responder

17/12/2003

Deus

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.


Responder

18/12/2003

Rodrigo_rcp

[b:2f7888664b]Aplicação A:[/b:2f7888664b]

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.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira