[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]
program MDITemplate;
{$X+,S+,R+}
{$B-} {*** This compiler directive should stay ***}
{$R MDIPLATE}
{ the res file contains this :
MDIMENU MENU
BEGIN
POPUP "MDI Children"
BEGIN
MENUITEM "Create", 24339
MENUITEM "&Cascade", 24337
MENUITEM "&Tile", 24336
MENUITEM "Arrange &Icons", 24335
MENUITEM "C&lose All", 24338
END
END
}
uses WinTypes, WinProcs, OWindows, ODialogs, Strings;
type
PMyApp = ^TMyApp;
TMyApp = object(TApplication)
function ProcessAppMsg(var Message: TMsg): Boolean; virtual;
procedure InitMainWindow; virtual;
end;
PMyMDIWin = ^TMyMDIWin;
TMyMDIWin = object(TMDIWindow)
function InitChild: PWindowsObject; virtual;
procedure InitClientWindow; virtual;
end;
PMyMDIChild = ^TMyMDIChild;
TMyMDIChild = object(TWindow)
constructor Init(AParent: PWindowsObject; ATitle: PChar);
procedure wmMDIActivate(var Msg: TMessage);
virtual wm_First + wm_MDIActivate;
procedure wmSetFocus(var Msg: TMessage);
virtual wm_First + wm_SetFocus;
end;
PMyClient = ^TMyClient;
TMyClient = object(TMDIClient)
end;
function TMyApp.ProcessAppMsg(var Message: TMsg): Boolean;
begin
ProcessAppMsg :=
ProcessMDIAccels(Message) or
ProcessAccels(Message) or
ProcessDlgMsg(Message);
end;
procedure TMyMDIChild.wmMDIActivate(var Msg: TMessage);
begin
Application^.SetKBHandler(@Self);
DefWndProc(Msg);
end;
procedure TMyMDIChild.wmSetFocus(var Msg: TMessage);
begin
Application^.SetKBHandler(@Self);
DefWndProc(Msg);
end;
constructor TMyMDIChild.Init(AParent: PWindowsObject; ATitle: PChar);
var
PB: PButton;
begin
TWindow.Init(AParent, Atitle);
EnableKBHandler;
PB :=new(PButton, init(@self, 200, 'OK', 10, 10, 100, 40, false));
PB :=new(PButton, init(@self, 201, 'Not OK', 10, 60, 100, 40, false));
end;
function TMyMDIWin.InitChild: PWindowsObject;
begin
InitChild := new(PMyMDIChild, Init(@self, 'Untitled Window'));
end;
procedure TMyMDIWin.InitClientWindow;
begin
ClientWnd := new(PMyClient, init(@self));
end;
procedure TMyApp.InitMainWindow;
begin
MainWindow := new(PMyMDIWin, Init('MDI Demo',
LoadMenu(HInstance, 'MDIMenu')));
end;
var
MyApp: TMyApp;
begin
MyApp.Init('MyApp');
MyApp.Run;
MyApp.Done;
end.
[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]