'
'Menu Selection Under DXScreen Ver0.1
'Usage: Move mouse on item, Click to select.
'Witten by Nadesom@yahoo.com
'2002.1
'

$INCLUDE "RAPIDQ.INC"

Declare Sub DrawScreen

Declare sub XMouseMove(curX,curY)
Declare Sub XClick

CREATE Form AS QForm
  ClientHeight = 480
  ClientWidth = 640
	CREATE MyButton AS QBUTTON	'must precede qdxscreen!
		Caption = "button"
		left = 10: Height = 20
		Top = 5
	END CREATE
	CREATE ScreenX AS QDXScreen
  		Parent = Form
		Top = 100: Width = 640: Height = 380
  		Init(640, 380)
'  		Align = alClient
	END CREATE
END CREATE

dim curItem
dim oldItem

dim Nitem
dim x(10)
dim y(10)
dim Mstr$(10)

Nitem=3
curItem=0
oldItem=0
dim i
for i=1 to Nitem
    x(i)=100
    y(i)=100+(i-1)*40
next i
Mstr$(1)="ON"
Mstr$(2)="OFF"
Mstr$(3)="Exit"

Form.OnPaint=DrawScreen

ScreenX.OnMouseMove=XMouseMove
ScreenX.OnClick=XClick

Form.ShowModal

'------------------------------------------------------------------------------------------------------------

Sub DrawScreen
   for i=1 to Nitem
       ScreenX.TextOut(x(i),y(i),Mstr$(i),rgb(200,0,0),rgb(0,0,0))
   next i
   ScreenX.Flip
End Sub

sub XMouseMove(curX,curY)
    curItem=0
    for i=1 to Nitem
        if curX>x(i) and curX<(x(i)+ScreenX.TextWidth(Mstr$(i))) and curY>y(i) and curY<(y(i)+ScreenX.TextHeight(Mstr$(i))) then
           curItem=i
           exit for
        end if
    next i
    if oldItem>0 then ScreenX.TextOut(x(oldItem),y(oldItem),Mstr$(oldItem),rgb(200,0,0),rgb(0,0,0))
    if curItem>0 then ScreenX.TextOut(x(curItem),y(curItem),Mstr$(curItem),rgb(0,200,0),rgb(0,0,0))
    oldItem=curItem
    ScreenX.Flip
end sub

Sub XClick
    Select case curItem
      case 0:
        ScreenX.TextOut(x(1),y(Nitem)+40,"No selection.                  ",rgb(0,0,255),rgb(0,0,0))
      case 1:
        ScreenX.TextOut(x(1),y(Nitem)+40,"Your selection is ON.  ",rgb(0,0,255),rgb(0,0,0))
      case 2:
        ScreenX.TextOut(x(1),y(Nitem)+40,"Your selection is OFF.",rgb(0,0,255),rgb(0,0,0))
      case 3:
        end
    End Select
    ScreenX.Flip
End Sub