'			*********************** 
'************************      DIRECTIVAS     *********************************
'			***********************


'$APPTYPE  GUI
$TYPECHECK ON
$INCLUDE "RAPIDQ.INC"

'$RESOURCE logoimg AS "logo.bmp"

'		    ******************************
'******************** DECLARACION SUBS/FUNCTIONS *****************************
'		    ******************************

DECLARE SUB dxInitialize(sender AS QDXSCREEN)
DECLARE SUB dxInitializeSurface(sender AS QDXSCREEN)
DECLARE SUB dxTimerExpired
DECLARE SUB exitItemClick(sender AS QMENUITEM)
DECLARE SUB openItemClick
DECLARE SUB pantallacompleta
DECLARE SUB tecla(key AS BYTE)

'botones


DECLARE SUB Button2Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button2Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button3Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button3Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button4Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button4Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button5Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button5Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button6Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button6Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button7Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button7Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button8Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button8Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button9Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button9Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button10Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button10Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button11Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button11Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button12Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button12Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB Button13Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
DECLARE SUB Button13Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)

DECLARE SUB ayuda
DECLARE SUB cerrarayuda

DECLARE SUB KeyDown(Key AS BYTE, Shift AS INTEGER)
DECLARE SUB mouse

'		     ***************************
'********************* CONSTANTES DEL PROGRAMA *******************************
'		     ***************************


'-- Tipo de Luces
CONST D3DRMLIGHT_AMBIENT = 0
CONST D3DRMLIGHT_POINT = 1
CONST D3DRMLIGHT_SPOT = 2
CONST D3DRMLIGHT_DIRECTIONAL = 3
CONST D3DRMLIGHT_PARALLELPOINT = 4

'-- Renderer modes
CONST D3DRMRENDERMODE_BLENDEDTRANSPARENCY = 1
CONST D3DRMRENDERMODE_SORTEDTRANSPARENCY = 2
CONST D3DRMRENDERMODE_LIGHTINMODELSPACE = 8
CONST D3DRMRENDERMODE_VIEWDEPENDENTSPECULAR = 16
CONST D3DRMRENDERMODE_DISABLESORTEDALPHAZWRITE = 32

'-- Wrap Types
CONST D3DRMWRAP_FLAT = 0
CONST D3DRMWRAP_CYLINDER = 1
CONST D3DRMWRAP_SPHERE = 2
CONST D3DRMWRAP_CHROME = 3
CONST D3DRMWRAP_SHEET = 4
CONST D3DRMWRAP_BOX = 5


'			**********************
'************************ VARIABLES GLOBALES *********************************
'			**********************

DIM px AS INTEGER   
DIM py AS INTEGER 
DIM pz AS INTEGER 


DIM rx AS INTEGER   
DIM ry AS INTEGER 
DIM rz AS INTEGER 
DIM ra
ra = 1/10

'botones

dim button2abajo as integer
dim button3abajo as integer
dim button4abajo as integer
dim button5abajo as integer
dim button6abajo as integer
dim button7abajo as integer
dim button8abajo as integer
dim button9abajo as integer
dim button10abajo as integer
dim button11abajo as integer
dim button12abajo as integer
dim button13abajo as integer

DIM Mx AS INTEGER 
DIM My AS INTEGER 

DIM dx
DIM dy
DIM dz
DIM ux
DIM uy
DIM uz

dx = 0.35
dy = -0.65
dz = 1.0 
ux = -0.15
uy = 17
uz = 0.5


'		 	***********************
'************************ CREACION DE OBJETOS ********************************
'			***********************

DIM dxTimer AS QDXTIMER
    dxTimer.enabled = 1
    dxTimer.interval = 0
    dxTimer.activeOnly = 0
    dxTimer.onTimer = dxTimerExpired
DIM frameView AS DOUBLE
    frameView = 10
DIM wrapType AS LONG
    wrapType = D3DRMWRAP_SPHERE
DIM T! AS SINGLE
DIM meshFrame AS QD3DFRAME
DIM meshBuilder AS QD3DMESHBUILDER
DIM wrap AS QD3DWRAP




CREATE Form AS QFORM
    Caption = "3DX Plus V2.2--"
    Width = 806
    Height = 581
    Center
    BorderStyle = 0
    CREATE Panel1 AS QPANEL
        Left = 511
        Top = 0
        Height = 541
        TabOrder = 1
        CREATE Button1 AS QBUTTON
            Caption = "ABRIR"
            Left = 50
            Top = 25
	    OnClick = openItemClick
        END CREATE
        CREATE Button3 AS QBUTTON
            Caption = "Pos Z-"
            Left = 50
            Top = 95
            TabOrder = 2
            OnMouseDown = Button3Down
            OnMouseUp = Button3Up
        END CREATE
        CREATE Button2 AS QBUTTON
            Caption = "Pos Z+"
            Left = 50
            Top = 62
            TabOrder = 1
        OnMouseDown = Button2Down
        OnMouseUp = Button2Up
	END CREATE
        CREATE Button4 AS QBUTTON
            Caption = "Pos X+"
            Left = 50
            Top = 131
            TabOrder = 3
            OnMouseDown = Button4Down
            OnMouseUp = Button4Up
        END CREATE
        CREATE Button5 AS QBUTTON
            Caption = "Pos X-"
            Left = 50
            Top = 168
            TabOrder = 4
            OnMouseDown = Button5Down
            OnMouseUp = Button5Up
        END CREATE
        CREATE Button6 AS QBUTTON
            Caption = "Pos Y+"
            Left = 50
            Top = 200
            TabOrder = 5
            OnMouseDown = Button6Down
            OnMouseUp = Button6Up
        END CREATE
        CREATE Button7 AS QBUTTON
            Caption = "Pos Y-"
            Left = 50
            Top = 237
            TabOrder = 6
	    OnMouseDown = Button7Down
            OnMouseUp = Button7Up
        END CREATE
        CREATE Button8 AS QBUTTON
            Caption = "Rot X+"
            Left = 50
            Top = 275
            TabOrder = 7
            OnMouseDown = Button8Down
            OnMouseUp = Button8Up
        END CREATE
        CREATE Button9 AS QBUTTON
            Caption = "Rot X-"
            Left = 50
            Top = 310
            TabOrder = 8
            OnMouseDown = Button9Down
            OnMouseUp = Button9Up
        END CREATE
        CREATE Button10 AS QBUTTON
            Caption = "Rot Y+"
            Left = 50
            Top = 344
            TabOrder = 9
            OnMouseDown = Button10Down
            OnMouseUp = Button10Up
        END CREATE
        CREATE Button11 AS QBUTTON
            Caption = "Rot Y-"
            Left = 50
            Top = 374
            TabOrder = 10
            OnMouseDown = Button11Down
            OnMouseUp = Button11Up
	END CREATE
        CREATE Button12 AS QBUTTON
            Caption = "Rot Z+"
            Left = 50
            Top = 400
            TabOrder = 11
            OnMouseDown = Button12Down
            OnMouseUp = Button12Up
        END CREATE
        CREATE Button13 AS QBUTTON
            Caption = "Rot Z-"
            Left = 50
            Top = 430
            TabOrder = 12
            OnMouseDown = Button13Down
            OnMouseUp = Button13Up
        END CREATE
	 CREATE Button14 AS QBUTTON
            Caption = "AYUDA"
            Left = 50
            Top = 430
            TabOrder = 12
	    OnClick = ayuda	
	END CREATE

    END CREATE


 CREATE dxScreen AS QDXSCREEN
'        align = alClient
        Width = 550
        Height = 500
        bitCount = 24'16
        use3D = 1
        useHardware = 1
		FullScreen = 1
        onInitialize = dxInitialize
        onInitializeSurface = dxInitializeSurface
        OnKeyPress = KeyDown
 END CREATE

 END CREATE





'ayuda


CREATE ayudaForm AS QFORM
    Caption = "Ayuda 3DX Plus V1.0"
    Width = 380
    Height = 292
    Center
    BorderStyle = 5
    CREATE Imageayuda AS QIMAGE
        Left = 17
        Top = 15
        Width = 65
        Height = 57
'	BMPHandle = logoimg
	Transparent = 1
    END CREATE
    CREATE Label1 AS QLABEL
        Caption = "3DX Plus V1.0"
        Left = 17
        Top = 60
        Width = 80
        Transparent = 1
    END CREATE
    CREATE Button1ayuda AS QBUTTON
        Caption = "Ya no necesito ayuda"
        Left = 114
        Top = 208
        Width = 131
	OnClick = cerrarayuda
    END CREATE
    CREATE RichEdit1 AS QRICHEDIT
        Left = 112
        Top = 21
        Width = 209
        Height = 177
        TabOrder = 1
		 AddStrings "		 3DS Plus Version 1.0 (Octubre 2003)"
                 AddStrings "               "   
		 AddStrings "                "
                 AddStrings "Este programa utiliza Direct3D(R) para mostrar, mover, rotar camara con el mouse y el objeto con los botones de los modelos en 3D en formato .X los cuales ese pueden convertir del formato .3ds con el programa conv3ds.exe de Microsoft(R)."   
		 AddStrings "Se puede distribuir copiar modificar sin ningun problema, solo enviando un e-mail al correo: jsvcx@msn.com con los cambios o mejoras."
		 AddStrings "  "
		 AddStrings "  "
		 AddStrings "Creado en Colombia por:"
		 AddStrings "  "
		 AddStrings "GPVC Software Y Animaciones(2003)"
	ReadOnly = 1
	ScrollBars = 3
	Enabled = 1
	END CREATE
END CREATE





'		 	    *************
'**************************** FUNCIONES **************************************
'			    *************



'			       ********
'******************************* SUBS ****************************************
'			       ********


SUB exitItemClick(sender AS QMENUITEM)
    form.close
END SUB


SUB openItemClick
    DIM openDialog AS QOPENDIALOG

    openDialog.filter = "*.x (X modelos)|*.x"
    IF openDialog.execute THEN
       '-- Remove previous object from frame
       meshFrame.deleteVisual(meshBuilder)
       '-- Rebuilds mesh, removing the old object
       dxScreen.createMeshBuilder(meshBuilder)
       '-- Load a new object
       meshBuilder.load(openDialog.fileName)
       '-- Add this new object to the frame
       meshFrame.addVisual(meshBuilder)
		'meshBuilder.SetQuality(64)	'  D3DRMRENDER_WIREFRAME,
    END IF
END SUB


SUB rotateStopButtonClick(sender AS QBUTTON)
    meshFrame.setRotation(0, 0, 0, 0)
END SUB


SUB dxInitialize(sender AS QDXSCREEN)
   DIM light AS QD3DLIGHT, ambient AS QD3DLIGHT
   DIM lightFrame AS QD3DFRAME

   dxScreen.createFrame(lightFrame)
   dxScreen.createFrame(meshFrame)

   dxScreen.createLightRGB(D3DRMLIGHT_DIRECTIONAL, 0.9, 0.9, 0.9, light)
   lightFrame.addLight(Light)

   dxScreen.createLightRGB(D3DRMLIGHT_AMBIENT, 0.1, 0.1, 0.1, ambient)
   dxScreen.addLight(ambient)

   meshFrame.setPosition(0, 0, 0)

   dxScreen.setCameraPosition(0, 0, 0)
END SUB


SUB dxInitializeSurface(sender AS QDXSCREEN)
   dxScreen.setRenderMode(D3DRMRENDERMODE_BLENDEDTRANSPARENCY OR D3DRMRENDERMODE_SORTEDTRANSPARENCY)
END SUB


SUB dxTimerExpired
'   meshFrame.setrotation(0, 0, 0,0)
   dxScreen.forceUpdate(0,0,150,50)    '-- Update FPS text only
   meshFrame.Move(1)                   '-- This does the animation
   dxScreen.render
      dxScreen.textOut(10,10,"FPS: "+str$(dxTimer.frameRate), &HFFFFFF, -1)
      DXScreen.SetcameraOrientation (DX ,DY ,DZ ,UX ,UY, UZ) 

   DXScreen.TextOut(10,50,str$(Dx), 65280, -1)
   DXScreen.TextOut(10,60,str$(Dy), 65280, -1)
   DXScreen.TextOut(10,70,str$(Dz), 65280, -1)
   DXScreen.TextOut(10,80,str$(Ux), 65280, -1)
   DXScreen.TextOut(10,90,str$(Uy), 65280, -1)
   DXScreen.TextOut(10,100,str$(Uz), 65280, -1)

   dxScreen.flip
END SUB


'botones


SUB Button2Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button2abajo = 1
			DO 
			pz++
			doevents
                        meshFrame.setPosition(px, py, pz)
			dxTimerExpired
			LOOP UNTIL button2abajo = 0
	END IF 
END SUB 


SUB Button2Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button2abajo = 0
END IF 

END SUB 


SUB Button3Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button3abajo = 1
			DO 
			pz--
			doevents
                        meshFrame.setPosition(px, py, pz)
			dxTimerExpired
			LOOP UNTIL button3abajo = 0
	END IF 
END SUB 


SUB Button3Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button3abajo = 0
END IF 

END SUB 



SUB Button4Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button4abajo = 1
			DO 
			px++
			doevents
                        meshFrame.setPosition(px, py, pz)
			dxTimerExpired
			LOOP UNTIL button4abajo = 0
	END IF 
END SUB 


SUB Button4Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button4abajo = 0
END IF 

END SUB 



SUB Button5Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button5abajo = 1
			DO 
			px--
			doevents
                        meshFrame.setPosition(px, py, pz)
			dxTimerExpired
			LOOP UNTIL button5abajo = 0
	END IF 
END SUB 


SUB Button5Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button5abajo = 0
END IF 

END SUB 



SUB Button6Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button6abajo = 1
			DO 
			py++
			doevents
                        meshFrame.setPosition(px, py, pz)
			dxTimerExpired
			LOOP UNTIL button6abajo = 0
	END IF 
END SUB 


SUB Button6Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button6abajo = 0
END IF 

END SUB 


SUB Button7Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button7abajo = 1
			DO 
			py--
			doevents
                        meshFrame.setPosition(px, py, pz)
			dxTimerExpired
			LOOP UNTIL button7abajo = 0
	END IF 
END SUB 


SUB Button7Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button7abajo = 0
END IF 

END SUB 


SUB Button8Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button8abajo = 1
                        rx = 0        'elimina el sobrante de rx--
			DO 
			rx++
			doevents
			meshFrame.setrotation(rx, 0, 0,ra)
			dxTimerExpired
                        meshFrame.setrotation(0, 0, 0,0)
			LOOP UNTIL button8abajo = 0
	END IF 
END SUB 


SUB Button8Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button8abajo = 0
END IF 

END SUB 



SUB Button9Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button9abajo = 1
                        rx = 0   'elimina el sobrante de rx++
			DO 
			rx--
			doevents
                        meshFrame.setrotation(rx, 0, 0,ra)
			dxTimerExpired
			meshFrame.setrotation(0, 0, 0,0)
			LOOP UNTIL button9abajo = 0
	END IF 
END SUB 


SUB Button9Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button9abajo = 0
END IF 

END SUB 





SUB Button10Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button10abajo = 1
                        ry = 0   'elimina el sobrante de ry--
			DO 
			ry++
			doevents
                        meshFrame.setrotation(0, ry, 0,ra)
			dxTimerExpired
			meshFrame.setrotation(0, 0, 0,0)
			LOOP UNTIL button10abajo = 0
	END IF 
END SUB 


SUB Button10Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button10abajo = 0
END IF 

END SUB 




SUB Button11Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button11abajo = 1
                        ry = 0   'elimina el sobrante de ry++
			DO 
			ry--
			doevents
                        meshFrame.setrotation(0, ry, 0,ra)
			dxTimerExpired
			meshFrame.setrotation(0, 0, 0,0)
			LOOP UNTIL button11abajo = 0
	END IF 
END SUB 


SUB Button11Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button11abajo = 0
END IF 

END SUB 




SUB Button12Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button12abajo = 1
                        rz = 0   'elimina el sobrante de rz--
			DO 
			rz++
			doevents
                        meshFrame.setrotation(0, 0, rz,ra)
			dxTimerExpired
			meshFrame.setrotation(0, 0, 0,0)
			LOOP UNTIL button12abajo = 0
	END IF 
END SUB 


SUB Button12Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button12abajo = 0
END IF 

END SUB 




SUB Button13Down (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
 DEFSNG t! 
 t! = timer
	IF mousebutton = 0 THEN 
		button13abajo = 1
                        rz = 0   'elimina el sobrante de rz++
			DO 
			rz--
			doevents
                        meshFrame.setrotation(0, 0, rz,ra)
			dxTimerExpired
			meshFrame.setrotation(0, 0, 0,0)
			LOOP UNTIL button13abajo = 0
	END IF 
END SUB 


SUB Button13Up (MouseButton AS LONG, X AS LONG, Y AS LONG, Shift AS LONG, Sender AS QBUTTON)
IF mousebutton = 0 THEN 
button13abajo = 0
END IF 

END SUB 


SUB ayuda
ayudaform.showmodal
END SUB 

SUB cerrarayuda
ayudaform.close
END sub




SUB KeyDown(Key AS BYTE, Shift AS INTEGER)

  SELECT CASE Key
    
    CASE 40  ' Abajo

    CASE 39  ' Derecha
'   Button10Up
    
    CASE 38  ' Arriba
   
    CASE 37  ' Izquierda
  ' Button11Up (0, X, Y,0,button11)

    CASE 27  ' ESC
      Form.Close 
  END SELECT
'

 
END SUB

SUB mouse

DIM sen AS INTEGER 
sen = 200	'sensibilidad
'20.340

Mx = MOUSEX - 370
MY = MOUSEY - 370

DX = Mx/sen '- Mx /sen - Mx/sen 
DY = My/sen - My/sen - My/sen 

'DX -0.9 = MX.35
'DX 0.9 = MX.590

'DY 0.8 = MY.40
'DY -0.8 = MY.430
END SUB 


SUB tecla(key AS BYTE)

SELECT CASE key
  
     CASE 49 '  1
  Dx+=0.1

     CASE 50 '  2
  Dy+=0.1

     CASE 51 '  3
  Dz+=0.1

     CASE 52 '  4
  Ux+=0.1

     CASE 53 '  5
  Uy+=0.1

     CASE 54 '  6
  Uz+=0.1

     CASE 113 '  q
  Dx-=0.1

     CASE 119 '  w
  Dy-=0.1

     CASE 101 '  e
  Dz-=0.1

     CASE 114 '  r
  Ux-=0.1

     CASE 116 '  t
  Uy-=0.1

     CASE 121 '  y
  Uz-=0.1
     CASE 27 'ESC
     form.Close 
  
     CASE 43 '  +
   openItemClick

END SELECT  'Generado con Teclasing. Se descargar en: Guidance RapidQ/resource y utility.

END SUB 

'		     *********************************
'********************* CODIGO PRINCIPAL DEL PROGRAMA *************************
'		     *********************************

button1.OnKeyPress = tecla
button2.OnKeyPress = tecla
button3.OnKeyPress = tecla
button4.OnKeyPress = tecla
button5.OnKeyPress = tecla
button6.OnKeyPress = tecla
button7.OnKeyPress = tecla
button8.OnKeyPress = tecla
button9.OnKeyPress = tecla
button10.OnKeyPress = tecla
button11.OnKeyPress = tecla
button12.OnKeyPress = tecla
button13.OnKeyPress = tecla



dxscreen.OnMouseMove = mouse 
form.ShowModal 