Code Search for Developers
 
 
  

Unit1.pas from Sector-37 at Krugle


Show Unit1.pas syntax highlighted

unit Unit1;

interface

{$I GLScene.inc}

uses
  //VCL
  Windows, Messages, SysUtils, Classes, Graphics, Forms, ExtCtrls,
  Dialogs, Controls, StdCtrls,
  //GLScene
  GLScene, GLObjects, GLCadencer, GLHUDObjects, GLMisc,
  GLWin32Viewer, GLKeyboard, GLWindows, GLGui,
  //Strange Components
  StrangeMouseEmulator, StrangeTypesAndConstants
   {$IFDEF STRANGE_INIFILE_SUPPORT},StrangeIniObjects{$ENDIF};

type
  TForm1 = class(TForm)
    GLScene1: TGLScene;
    Viewer: TGLSceneViewer;
    GLCamera1: TGLCamera;
    GLCadencer1: TGLCadencer;
    GLDummyCube1: TGLDummyCube;
    LogMemo: TListBox;
    GLCube1: TGLCube;
    GLHUDSprite1: TGLHUDSprite;
    Panel1: TPanel;
    Label1: TLabel;
    Button2: TButton;
    Button1: TButton;
    SaveToIniButton: TButton;
    Label2: TLabel;
    procedure ViewerDblClick(Sender: TObject);
    procedure ViewerMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: integer);
    procedure ViewerMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);
    procedure ViewerMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: integer);
    procedure ViewerClick(Sender: TObject);
    procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
      WheelDelta: integer; MousePos: TPoint; var Handled: Boolean);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
    procedure FormKeyUp(Sender: TObject; var Key: word; Shift: TShiftState);
    procedure AltMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);
    procedure Button2Click(Sender: TObject);
    procedure LogMemoEnter(Sender: TObject);
    procedure SaveToIniButtonClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MouseEmulator:   TStrangeMouseEmulator;

const
  SPEED = 550;

implementation

{$R *.dfm}

procedure TForm1.ViewerDblClick(Sender: TObject);
begin
  LogMemo.Items.Add('DblClick');
end;

procedure TForm1.ViewerMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: integer);
begin
  LogMemo.Items.Add('Down');
  if ssCtrl in Shift then Beep;
end;


procedure TForm1.ViewerMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);
begin
  Caption := 'Real mouse is moving';
end;


procedure TForm1.AltMouseMove(Sender: TObject; Shift: TShiftState; X, Y: integer);
begin
  Caption := 'Emulated mouse is moving';
end;


procedure TForm1.ViewerMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: integer);
begin
  LogMemo.Items.Add('Up');
end;


procedure TForm1.ViewerClick(Sender: TObject);
begin
  LogMemo.Items.Add('Click');
end;


procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  WheelDelta: integer; MousePos: TPoint; var Handled: Boolean);
begin
  if WheelDelta > 0 then
    LogMemo.Items.Add('WheelUp')
  else
    LogMemo.Items.Add('WheelDown');
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.Enabled := False;
  SaveToIniButton.Enabled := True;

  MouseEmulator := TStrangeMouseEmulator.CreateAsChild(GLScene1.Objects);
  MouseEmulator.Viewer := Viewer;
  MouseEmulator.LoadCursor('cursor1.bmp');

{$IFDEF STRANGE_INIFILE_SUPPORT}
  MouseEmulator.LoadFromIniFile('config.ini', 'Keyboard Controls', '', '', False, True);
{$ENDIF}
  MouseEmulator.OnClick := ViewerClick;
  MouseEmulator.OnDblClick := ViewerDblClick;
  MouseEmulator.OnMouseWheel := FormMouseWheel;
  MouseEmulator.OnMouseDown := ViewerMouseDown;
  MouseEmulator.OnMouseUp := ViewerMouseUp;
  MouseEmulator.OnMouseMove := altMouseMove;
end;


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  GLCadencer1.Enabled := False;
  if MouseEmulator <> nil then
    FreeAndNil(MouseEmulator);
end;


procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
begin
  if MouseEmulator <> nil then
    MouseEmulator.KeyDown(key);
end;


procedure TForm1.FormKeyUp(Sender: TObject; var Key: word; Shift: TShiftState);
begin
  if MouseEmulator <> nil then
    MouseEmulator.KeyUp(key);
end;


procedure TForm1.Button2Click(Sender: TObject);
begin
  LogMemo.Clear;
end;


procedure TForm1.LogMemoEnter(Sender: TObject);
begin
  Viewer.SetFocus;
end;


procedure TForm1.SaveToIniButtonClick(Sender: TObject);
begin
{$IFDEF STRANGE_INIFILE_SUPPORT}
  MouseEmulator.SaveToIniFile('config2.ini', 'Keyboard Controls');
{$ELSE}
  Assert(False, SIF_ERROR);
{$ENDIF}
end;

end.




See more files for this project here

Sector-37

Sector-37 (real time 3D cosmic strategy)

Project homepage: http://sourceforge.net/projects/sector37
Programming language(s): Pascal
License: lgpl21

  StrangeMouseEmulatorDemo.dpr
  StrangeMouseEmulatorDemo.res
  Unit1.dfm
  Unit1.pas
  _Cleanup.bat
  config.ini
  config2.ini
  cursor1.bmp
  cursor2.bmp
  cursor3.bmp