home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* WMDEMO.PAS *)
- (* Demonstration der Unit "WhichWin *)
- (* (c) 1991 Jan Laitenberger & DMV-Verlag *)
- (* ------------------------------------------------------ *)
- PROGRAM WhichWin_Demo;
-
- USES Objects, Drivers, Views, Menus, App, MsgBox, WhichWin;
-
- TYPE
- tMyApp = OBJECT (tApplication)
- PROCEDURE OpenWindow;
- PROCEDURE HandleEvent(VAR Event : tEvent); VIRTUAL;
- PROCEDURE InitMenuBar; VIRTUAL;
- PROCEDURE InitStatusLine; VIRTUAL;
- END;
-
- pWin = ^tWin;
- tWin = OBJECT (tWindow)
- PROCEDURE HandleEvent(VAR Event: tEvent); VIRTUAL;
- END;
-
- VAR
- MyApp : tMyApp;
- R : tRect;
-
- PROCEDURE TWin.HandleEvent(VAR Event : tEvent);
- BEGIN
- IF ActiveWindow(Event, Number) THEN ClearEvent(Event);
- tWindow.HandleEvent(Event);
- END;
-
- PROCEDURE tMyApp.OpenWindow;
- VAR
- Window : pWin;
- s : STRING;
- w : INTEGER;
- BEGIN
- w := WhichWindow;
- IF w = -1 THEN
- MessageBox(#3'Zu viele Fenster für WhichWindow',
- NIL, mfInformation + mfOkButton)
- ELSE BEGIN
- R.Assign(0, 0, 30, 7);
- R.Move(Random(50), Random(16));
- Str(w, s);
- Window := New(pWin, Init(R, 'Fenster ' + s, w));
- DeskTop^.Insert(Window);
- END;
- END;
-
- PROCEDURE tMyApp.InitMenuBar;
- BEGIN
- GetExtent(R);
- R.B.Y := R.A.Y + 1;
- MenuBar := New(pMenuBar, Init(R, NewMenu(
- NewSubMenu('~F~enster', 0, NewMenu(
- NewItem('~G~röße', 'Ctrl-F5', kbCtrlF5, cmResize, 0,
- NewItem('~Z~oomen', 'F5', kbF5, cmZoom, 0,
- NewItem('~N~ächstes', 'F6', kbF6, cmNext, 0,
- NewItem('~L~etzes', 'Shift-F6', kbShiftF6, cmPrev,0,
- NewItem('~S~chließen', 'Alt-F3', kbAltF3, cmClose,0,
- NIL)))))),
- NIL))));
- END;
-
- PROCEDURE tMyApp.InitStatusLine;
- BEGIN
- GetExtent(R);
- R.A.Y := R.B.Y - 1;
- StatusLine := New(pStatusLine, Init(R,
- NewStatusDef(0, $FFFF,
- NewStatusKey('', kbF10, cmMenu,
- NewStatusKey('~Alt-X~ Ende', kbAltX, cmQuit,
- NewStatusKey('~F1~ Öffnen', kbF1, 100,
- NIL))),
- NIL)));
- END;
-
- PROCEDURE tMyApp.HandleEvent(VAR Event : tEvent);
- BEGIN
- tApplication.HandleEvent(Event);
- IF Event.What = evCommand THEN BEGIN
- CASE Event.Command OF
- 100 : OpenWindow;
- END;
- ClearEvent(Event);
- END;
- END;
-
- BEGIN
- WITH MyApp DO BEGIN
- Init;
- Run;
- Done;
- END;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von WMDEMO.PAS *)
-
-