안녕하세요.. 고수님
이런게 되나요? 궁금해서 여쭈어 봅니다.
먼저 3개의 SDI 폼을 작성했읍니다. 이름은 form1, form2, for3 이렇게 정했읍니다.
form3 이 active 된 상태에서 form2 에서 특정키(예:F8)가 눌린것을 알수 있나요?
같은 상황에서 form1 에서는 F7이 눌리면 특정 내용을 디스플레이 하려는데
가능한가요. 어떻게 해야만 그렇게 제어가 가능한가요. 물론 form3 이 active 된 상태는 계속 유지하려고 합니다. 많은 조언을 부탁 드립니다.
감사합니다.
질문은 게시판을 이용해 주십시요...
*************************델초보님의 질문내용******************************
안녕하세요
답변에 감사 드립니다.
근데 이해가 안가는게 있어요.
form1, form2, form3 가 각기 다른 프로그램(델파이로 작성) 이란 거구요.
또 각기 실행됩니다. 경우에 따라서는 form1/ form3 또는 form2/form3 만 이 떠 있을 수도 있거든요
이런 경우에도 가능한가요?
메시지를 이용해서
전달하는 방법은 없나요?
제가 초보라서 그런지 잘 이해가 안가서요..
님의 말씀처럼 하려면 form1 이 form2 / form3 을 생성하구 실행한 경우라야만 될꺼 같아서요..
*************************델초보님의 질문내용 끝*********************************
이런경우 각 어플리케이션간 메세지를 생성하여 서로 전달 하고
받을수 있습니다.
아래 예를 참고 하십시요...
unit uApp2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, PostBar, StdCtrls, Buttons, ExtCtrls;
type
TFormApp2 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormApp2: TFormApp2;
WM_LeeJongWan: Cardinal;
implementation
{$R *.DFM}
procedure TFormApp2.FormCreate(Sender: TObject);
begin
Application.OnMessage:=AppMessage;
WM_LeeJongWan:=RegisterWindowMessage('LeeJongWan');
end;
procedure TFormApp2.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message=WM_LeeJongWan then
begin
ShowMessage('메세지받음(App2)');
end;
end;
procedure TFormApp2.Button1Click(Sender: TObject);
begin
PostMessage(FindWindow('TFormApp1',nil),WM_LeeJongWan,0,Application.Handle);
end;
end.