home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 09_10 / tpw / littgdi5.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1991-06-12  |  2.7 KB  |  94 lines

  1. (* ------------------------------------------------------ *)
  2. (*                     LITTGDI5.PAS                       *)
  3. (*               kleine GDI-Demonstration                 *)
  4. (*         (c) 1991 Andreas Schallmeier & TOOLBOX         *)
  5. (* ------------------------------------------------------ *)
  6. PROGRAM LittleGDI;
  7.  
  8. {$X+}
  9.  
  10. USES WinTypes, WinProcs, Strings, WObjects;
  11.  
  12. TYPE
  13.   pGDIFenster = ^tGDIFenster;
  14.   tGDIFenster = OBJECT(tWindow)
  15.     PROCEDURE WMLButtonDown(VAR Msg : tMessage);
  16.       VIRTUAL wm_First+wm_LButtonDown;
  17.     PROCEDURE WMRButtonDown(VAR Msg : tMessage);
  18.       VIRTUAL wm_First+wm_RButtonDown;
  19.   END;
  20.  
  21.   tMyApp = OBJECT(tApplication)
  22.     PROCEDURE InitMainWindow;  VIRTUAL;
  23.   END;
  24.  
  25. VAR
  26.   MyApp : tMyApp;
  27.  
  28.   PROCEDURE tMyApp.InitMainWindow;
  29.   BEGIN
  30.     MainWindow := New(pGDIFenster, Init(NIL,'GDI Fenster'));
  31.   END;
  32.  
  33. (* ------------------------------------------------------ *)
  34. (*                     Listing 5                          *)
  35. (* ------------------------------------------------------ *)
  36.  
  37.   PROCEDURE tGDIFenster.WMLButtonDown(VAR Msg : tMessage);
  38.   VAR
  39.     MyHDC          : hDC;
  40.     MetaHDC        : hDC;
  41.     NewPen, OldPen : hPen;
  42.     Count          : WORD;
  43.     Client         : tRect;
  44.   BEGIN
  45.     MyHDC := GetDC(hWindow);
  46.     TextOut(MyHDC, 10, 10, 'Start Recording Metafile', 24);
  47.     ReleaseDC(HWindow, MyHDC);
  48.     MetaHDC := CreateMetafile('TESTMETA.WMF');
  49.     FOR Count := 0 TO 999 DO BEGIN
  50.       MoveTo(MetaHDC, Random(200), Random(100));
  51.       LineTo(MetaHDC, Random(200), Random(100));
  52.     END;
  53.     DeleteMetaFile(CloseMetaFile(MetaHDC));
  54.     MyHDC := GetDC(hWindow);
  55.     TextOut(MyHDC, 10, 30, 'Stop Metafile recording', 23);
  56.     ReleaseDC(HWindow, MyHDC);
  57.   END;
  58.  
  59.   PROCEDURE TGDIFenster.WMRButtonDown(VAR Msg : tMessage);
  60.   VAR
  61.     MyHDC      : hDC;
  62.     Client     : tRect;
  63.     x, y       : WORD;
  64.     MetaHandle : tHandle;
  65.   BEGIN
  66.     MyHDC := GetDC(hWindow);
  67.     SetMapMode(MyHDC, MM_ANISOTROPIC);
  68.     SetWindowExt(MyHDC, 500, 500);
  69.     GetClientRect(MyHDC, Client);
  70.     SetViewportExt(MyHDC, Client.Right, Client.Bottom);
  71.     MetaHandle := GetMetafile('TESTMETA.WMF');
  72.     FOR x := 0 TO 1 DO
  73.       FOR y := 0 TO 1 DO BEGIN
  74.         SetWindowOrg(MyHDC, -200*x, -130*y);
  75.         PlayMetaFile(MyHDC, MetaHandle);
  76.       END;
  77.     DeleteMetaFile(MetaHandle);
  78.     ReleaseDC(hWindow, MyHDC);
  79.   END;
  80.  
  81. (* ------------------------------------------------------ *)
  82. (*                   Ende von Listing 5                   *)
  83.  
  84. BEGIN
  85.   MyApp.Init('MyApp');
  86.   MyApp.Run;
  87.   MyApp.Done;
  88. END.
  89. (* ------------------------------------------------------ *)
  90. (*                Ende von LITTGDI5.PAS                   *)
  91.  
  92.  
  93.  
  94.