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

  1. (* ------------------------------------------------------ *)
  2. (*                     LITTGDI.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.   PROCEDURE tGDIFenster.WMLButtonDown(VAR Msg : tMessage);
  34.   VAR
  35.     EinDC          : hDC;
  36.     R              : tRect;
  37.     i              : WORD;
  38.     OldPen, NewPen : hPen;
  39.   BEGIN
  40.     FOR i := 0 TO 199 DO BEGIN
  41.       EinDC := GetDC(hWindow);
  42.       GetClientRect(hWindow, R);
  43.       NewPen := CreatePen(ps_Solid, Random(10),
  44.                 RGB(Random(256), Random(256), Random(256)));
  45.       OldPen := SelectObject(EinDC, NewPen);
  46.       MoveTo(EinDC, Random(R.Right), Random(R.Bottom));
  47.       LineTo(EinDC, Random(R.Right), Random(R.Bottom));
  48.       SelectObject(EinDC, OldPen);
  49.       ReleaseDC(hWindow, EinDC);
  50.       DeleteObject(NewPen);
  51.     END;
  52.   END;
  53.  
  54.   PROCEDURE tGDIFenster.WMRButtonDown(VAR Msg : tMessage);
  55.   BEGIN
  56.     InvalidateRect(hWindow, NIL, TRUE);
  57.   END;
  58.  
  59. BEGIN
  60.   MyApp.Init('MyApp');
  61.   MyApp.Run;
  62.   MyApp.Done;
  63. END.
  64. (* ------------------------------------------------------ *)
  65. (*                Ende von LITTGDI.PAS                    *)
  66.  
  67.  
  68.  
  69.