소스는 이렇습니다 -__:;
---------------------------
unit 1
---------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
protected
procedure WMMyShow(var M:TMessage);message WM_USER+4444;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
unit2;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.ShowMainForm := FALSE;
Self.Visible := FALSE;
with TForm2.Create(nil) do begin
if IsWindow(Self.Handle) then OutHandle := Self.Handle;
Show;
end;
end;
procedure TForm1.WMMyShow(var M: TMessage);
begin
Application.ShowMainForm := TRUE;
Self.Visible := TRUE;
end;
end.
-------------------------
unit 2
-------------------------
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm2 = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
OutHandle :THandle;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
if IsWindow(OutHandle) then PostMessage(OutHandle, WM_USER+4444, 0,0)
end;
end.
암 생각 없이 델파이 죽였다가, 다시 실행 시켜서 컴파일 해보세요...
델파이 6 쓰다 보면 가끔 몇몇 녀석들이... 이런 메시지 보여줍니다...
제 경험으로는 암 생각없이... close all 시켰다가 다시 프로젝트 열거나,
그래도 안되면 델파이 죽였다가 다시 띄워서 씁니다...
(update/patch는 RTL patch 까지 했는 데도 그러는 군요...)
이상은 허접의 답변이었습다... ^^
오늘도 즐하셈...