home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 23 / IOPROG_23.ISO / SOFT / DELPHIX.ZIP / Samples / Graphic / Surface / Unit1.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1998-10-06  |  1.3 KB  |  59 lines

  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   DXClass, ExtCtrls, DXDraws, StdCtrls, DIB;
  8.  
  9. type
  10.   TForm1 = class(TDXForm)
  11.     DXDraw1: TDXDraw;
  12.     DXDIB1: TDXDIB;
  13.     procedure DXDraw1Initialize(Sender: TObject);
  14.     procedure DXDraw1Finalize(Sender: TObject);
  15.     procedure DXDraw1RestoreSurface(Sender: TObject);
  16.     procedure DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X,
  17.       Y: Integer);
  18.   private
  19.     FSurface: TDirectDrawSurface;
  20.   end;
  21.  
  22. var
  23.   Form1: TForm1;
  24.  
  25. implementation
  26.  
  27. {$R *.DFM}
  28.  
  29. procedure TForm1.DXDraw1Initialize(Sender: TObject);
  30. begin
  31.   FSurface := TDirectDrawSurface.Create(DXDraw1.DDraw);
  32. end;
  33.  
  34. procedure TForm1.DXDraw1Finalize(Sender: TObject);
  35. begin
  36.   FSurface.Free;  FSurface := nil;
  37. end;
  38.  
  39. procedure TForm1.DXDraw1RestoreSurface(Sender: TObject);
  40. begin
  41.   FSurface.LoadFromGraphic(DXDIB1.DIB);
  42. end;
  43.  
  44. procedure TForm1.DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X,
  45.   Y: Integer);
  46. begin
  47.   if not DXDraw1.CanDraw then Exit;
  48.  
  49. { for Delphi 4:
  50.   DXDraw1.Surface.Draw(X-FSurface.Width div 2, Y-FSurface.Height div 2, FSurface); }
  51.  
  52.   DXDraw1.Surface.Draw(X-FSurface.Width div 2, Y-FSurface.Height div 2,
  53.     FSurface.ClientRect, FSurface, True);
  54.  
  55.   DXDraw1.Flip;
  56. end;
  57.  
  58. end.
  59.