Registriert seit: 21. Dez 2002
Ort: Lenzburg
861 Beiträge
Delphi 6 Professional
|
4. Feb 2003, 15:42
Frage, geht es auch so, oder gebe ich etwas nicht frei, oder stimmt sonst alles oder weniges nicht?
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows,
Messages,
Forms,
StdCtrls,
ExtCtrls,
Dialogs,
Classes,
Controls,
Unit2,
Unit3;
type
TMainForm = class(TForm)
PanelBar: TPanel;
ButtonShow: TButton;
procedure ButtonShowClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
Child : TChildForm;
procedure CloseChild;
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
MainForm : TMainForm;
WProc : Pointer;
implementation
{$R *.DFM}
function MyWndProc( Handle : hWnd; Msg, wParam, lParam : longint):longint; stdcall;
begin
if Msg = Msg_SetToNil then
begin
MainForm.CloseChild;
end;
Result := CallWindowProc(WProc, Handle,Msg,wParam,lParam);
end;
procedure TMainForm.ButtonShowClick(Sender: TObject);
begin
if Child = nil then
begin
Child := TChildForm.Create(MainForm);
end
else
begin
showMessage(' Schon eine ChildForm vorhanden');
end;
end;
procedure TMainForm.CloseChild();
begin
Child := nil;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
WProc := Pointer(SetWindowLong(Application.Handle,GWL_WNDPROC,Integer(@MyWndProc)));
end;
end.
Delphi-Quellcode:
unit Unit2;
interface
uses
Windows,
Forms,
Unit3;
type
TChildForm = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
ChildForm: TChildForm;
implementation
{$R *.DFM}
procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SendMessage(Hnd,Msg_SetToNil,0,0);
Action := caFree;
end;
end.
Delphi-Quellcode:
unit Unit3;
interface
uses
Messages,
Forms,
Windows;
var
hnd : THandle;
const
Msg_SetToNil = WM_USER+100;
implementation
initialization
hnd := Application.Handle;
end.
Also Unit1 beinhaltet die MDIForm, Unit2 die MDIChildForm und Unit3 Globales.
(Ps. Wenn der Code zu lang ist, lösche ich ihn wieder.)
Danke für antworten,
Mirilin
Tobias Die Physik ist für die Physiker eigentlich viel zu schwer.
|
|
Zitat
|