User Tools

Site Tools


ro:clickb

This is an old revision of the document!


ClickB (Funcție)

Engleză: CLICK = clic; Button = buton

Format

clickb
clickb ( )

Întoarce un număr_întreg.

Descriere

Întoarce butonul cu care s-a dat clic cu mouse-ul ultima dată în fereastra grafică. Întoarce valoarea 0 dacă nu s-a făcut clic.

Valori
ConstantăValoareObservații
MOUSEBUTTON_NONE0Niciun buton
MOUSEBUTTON_LEFT1Butonul din stânga
MOUSEBUTTON_RIGHT2Butonul din dreapta
MOUSEBUTTON_CENTER4Butonul din mijloc
MOUSEBUTTON_DOUBLECLICK32S-a înregistrat un dublu clic (utilizat doar de funcția ClickB)
2017/09/11 14:20 · junior-root

Exemplu simplu

# șterge orice clic făcut mai devreme
clickclear
# așteaptă pentru ca utilizatorul să dea clic
print "Fă clic pe fereastra grafică"
while clickb = 0
  pause .01
endwhile
# Arată unde s-a făcut clic
print "Utilizatorul a dat clic la (x=" + clickx + ", y=" + clicky + ")"

Notă

Pentru detectarea butonului cu care s-a dat clic se poate compara valoare întoarsă sau

Exemplu cu detectarea butoanelor

# șterge orice clic făcut mai devreme
clickclear
# așteaptă pentru ca utilizatorul să dea clic
print "Fă clic pe fereastra grafică"
while clickb = 0
  pause .01
endwhile

pause 0.5 #acordă un pic de timp ca să vedem dacă este de fapt un dublu clic

# Arată unde s-a făcut clic
print "Utilizatorul a dat clic cu ";
if clickb & MOUSEBUTTON_LEFT then print "butonul din stânga";
if clickb & MOUSEBUTTON_RIGHT then print "butonul din dreapta";
if clickb & MOUSEBUTTON_CENTER then print "butonul din mijloc";
print " la (x=" + clickx + ", y=" + clicky + ")"

if clickb & 32 then print "De fapt utilizatorul a făcut un dublu clic!... :)" #replace 32 with constant MOUSEDOUBLECLICK

Exemplu complex

# Să dăm clic și dublu clic! - Florin Oprea
col={red,darkred,green,darkgreen,blue,darkblue,cyan,darkcyan,purple,darkpurple,yellow,darkyellow,orange,darkorange,grey,darkgrey}

graphsize 300, 300
clg
fastgraphics
penwidth 2

xx = 0
yy = 0
patrat_x = 0
patrat_y = 0
patrat_s = 0
patrat_c = 0

bucla:
# efect de desenare
if patrat_s <> 0 then
  patrat_s = patrat_s + 20
  patrat_x = patrat_x - 10
  patrat_y = patrat_y - 10
  color col[patrat_c]
  rect patrat_x, patrat_y, patrat_s, patrat_s
  if patrat_x<=0 and patrat_y<=0 and patrat_x+patrat_s>=300 and patrat_y+patrat_s>=300 then patrat_s = 0
end if

# desenează culori
c=0
for y = 50 to 200 step 50
  for x = 50 to 200 step 50

    # verifică dacă este dat un clic în pătrat
    if clickb & MOUSEBUTTON_LEFT and clickx>=x and clickx<=x+30 and clicky>=y and clicky<=y+30 then
      xx = x
      yy = y
      # verifică dacă este un dublu clic
      if clickb & 32 then
        patrat_x = x
        patrat_y = y
        patrat_s = 30
        patrat_c = c
      end if
      clickclear
    end if

    # desenează pătrat
    if xx=x and yy=y then
      color white,col[c]
    else
      color black,col[c]
    end if
    c++ # incrementeză indexul de culoare
    rect x, y, 30 ,30
  next x
next y

refresh
pause 0.1
goto bucla

Vezi și

2016/01/01 22:49

Istoric

0.9.4dAdăugată în acestă versiune
1.99.99.58Added Named Constants
ro/clickb.1505163983.txt.gz · Last modified: 2020/02/28 10:46 (external edit)