unit1.pas

来自「为delphi量身打造的 direct x控件代码」· PAS 代码 · 共 59 行

PAS
59
字号
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DXClass, ExtCtrls, DXDraws, StdCtrls, DIB;

type
  TForm1 = class(TDXForm)
    DXDraw1: TDXDraw;
    DXDIB1: TDXDIB;
    procedure DXDraw1Initialize(Sender: TObject);
    procedure DXDraw1Finalize(Sender: TObject);
    procedure DXDraw1RestoreSurface(Sender: TObject);
    procedure DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    FSurface: TDirectDrawSurface;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.DXDraw1Initialize(Sender: TObject);
begin
  FSurface := TDirectDrawSurface.Create(DXDraw1.DDraw);
end;

procedure TForm1.DXDraw1Finalize(Sender: TObject);
begin
  FSurface.Free;  FSurface := nil;
end;

procedure TForm1.DXDraw1RestoreSurface(Sender: TObject);
begin
  FSurface.LoadFromGraphic(DXDIB1.DIB);
end;

procedure TForm1.DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if not DXDraw1.CanDraw then Exit;

{ for Delphi 4:
  DXDraw1.Surface.Draw(X-FSurface.Width div 2, Y-FSurface.Height div 2, FSurface); }

  DXDraw1.Surface.Draw(X-FSurface.Width div 2, Y-FSurface.Height div 2,
    FSurface.ClientRect, FSurface, True);

  DXDraw1.Flip;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?