home *** CD-ROM | disk | FTP | other *** search
- PROGRAM LittleGDI;
-
- {$X+}
- USES WinTypes, WinProcs, Strings, OWindows;
-
- TYPE
- PGDIFenster = ^TGDIFenster;
- TGDIFenster = OBJECT (tWindow)
- PROCEDURE WMLButtonDown (VAR Msg: tMessage); VIRTUAL wm_First + wm_LButtonDown;
- PROCEDURE WMRButtonDown (VAR Msg: tMessage); VIRTUAL wm_First + wm_RButtonDown;
- END;
-
- TMyApp = OBJECT (tApplication)
- PROCEDURE InitMainWindow; VIRTUAL;
- END;
-
- VAR
- MyApp: TMyApp;
-
- PROCEDURE TMyApp.InitMainWindow;
- BEGIN
- MainWindow := New (PGDIFenster, Init(NIL, 'GDI Fenster mit Brush und Ellipse'));
- END;
-
- (* Original : *)
- (*
- PROCEDURE TGDIFenster.WMLButtonDown (VAR Msg: TMessage);
- VAR
- EinDC: HDC;
- R: TRect;
- i: WORD;
- OldPen, NewPen: HPen;
- BEGIN
- FOR i := 0 TO 199 DO
- BEGIN
- EinDC := GetDC (HWindow);
- GetClientRect (HWindow, R);
- NewPen := CreatePen (ps_Solid, Random(10), RGB(Random(256), Random(256), Random(256)));
- OldPen := SelectObject(EinDC, NewPen);
- MoveTo (EinDC, Random(R.Right), Random(R.Bottom));
- LineTo (EinDC, Random(R.Right), Random(R.Bottom));
- SelectObject (EinDC, OldPen);
- ReleaseDC (HWindow, EinDC);
- DeleteObject (NewPen);
- END;
- END;
- *)
-
- PROCEDURE TGDIFenster.WMLButtonDown (VAR Msg: tMessage);
- VAR
- EinDC: hDC;
- R: tRect;
- x,y: INTEGER;
- i: WORD;
- OldBrush, NewBrush: hBrush;
- ALogBrush: tLogBrush;
- BEGIN
- FOR i := 0 TO 199 DO
- BEGIN
- EinDC := GetDC (hWindow);
- GetClientRect (hWindow, R);
- ALogBrush.lbStyle := bs_solid;
- ALogBrush.lbColor := RGB(Random(256), Random(256), Random(256));
- NewBrush := CreateBrushIndirect (ALogBrush);
- OldBrush := SelectObject (EinDC, NewBrush);
- x := Random(R.Right);
- y := Random(R.Bottom);
- Ellipse (EinDC, x, y, x+30, y+Random(50));
- SelectObject (EinDC, OldBrush);
- ReleaseDC (hWindow, EinDC);
- DeleteObject (NewBrush);
- END;
- END;
-
- PROCEDURE TGDIFenster.WMRButtonDown (VAR Msg: tMessage);
- BEGIN
- InvalidateRect (hWindow, NIL, TRUE);
- END;
-
- BEGIN
- MyApp.Init ('MyApp');
- MyApp.Run;
- MyApp.Done;
- END.
-