This shows you the differences between two versions of the page.
ro:clickb [2017/09/12 03:18] junior-root [Notă] |
ro:clickb [2020/02/28 10:46] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== ClickB (Funcție) ===== | ||
- | > **Engleză: | ||
- | ==== Format ==== | ||
- | **clickb**\\ | ||
- | **clickb** ( ) | ||
- | |||
- | Întoarce un [[integerexpressions|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. | ||
- | {{page> | ||
- | ==== 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 " | ||
- | </ | ||
- | ==== Notă ==== | ||
- | Funcția **ClickB** va întoarce întotdeauna valoarea unui singur buton, deoarece un utilizator nu poate da clic cu două butoane în exact același moment.\\ | ||
- | Dacă se dorește să se verifice dacă utilizatorul a dat clic cu un anumit buton (să spunem cel din stânga) se poate compara astfel: | ||
- | < | ||
- | if clickb = MOUSEBUTTON_LEFT then print "a fost apăsat butonul din stânga"; | ||
- | </ | ||
- | Deși funcția **ClickB** poate întoarce valoarea unui singur buton apăsat, ea mai poate detecta și acțiunea de dublu clic (două clicuri rapide și succesive cu același buton în aproximativ același loc) . În cazul în care utilizatorul execută un dublu clic, atunci valoarea întoarsă va conține valoare butonului care a generat clicul la care se va adăuga și valoarea MOUSEBUTTON_DOUBLECLICK.\\ | ||
- | Dacă se dorește să se verifice dacă utilizatorul a executat un dublu clic cu butonul din stânga se poate compara cu oricare din variantele: | ||
- | < | ||
- | if clickb = MOUSEBUTTON_LEFT + MOUSEBUTTON_DOUBLECLICK then print "a fost apăsat butonul din stânga"; | ||
- | if clickb = MOUSEBUTTON_LEFT & MOUSEBUTTON_DOUBLECLICK then print "a fost apăsat butonul din stânga"; | ||
- | </ | ||
- | **Atenție: | ||
- | |||
- | ==== Exemplu cu detectarea butoanelor și a dublu clicului ==== | ||
- | < | ||
- | # șterge orice clic făcut mai devreme | ||
- | clickclear | ||
- | print "Fă clic pe fereastra grafică" | ||
- | # așteaptă pentru ca utilizatorul să dea clic | ||
- | while clickb = 0 | ||
- | pause .01 | ||
- | endwhile | ||
- | |||
- | pause 0.5 # utilizatorul a dat clic, totuși acordăm un pic de timp ca să vedem dacă utilizatorul execută un dublu clic | ||
- | |||
- | # Arată unde s-a făcut clic | ||
- | print " | ||
- | if clickb & MOUSEBUTTON_LEFT then print " | ||
- | if clickb & MOUSEBUTTON_RIGHT then print " | ||
- | if clickb & MOUSEBUTTON_CENTER then print " | ||
- | 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, | ||
- | |||
- | 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< | ||
- | 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> | ||
- | 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, | ||
- | else | ||
- | color black, | ||
- | end if | ||
- | c++ # incrementeză indexul de culoare | ||
- | rect x, y, 30 ,30 | ||
- | next x | ||
- | next y | ||
- | |||
- | refresh | ||
- | pause 0.1 | ||
- | goto bucla | ||
- | </ | ||
- | |||
- | ==== Vezi și ==== | ||
- | {{page> | ||
- | ==== Istoric ==== | ||
- | |0.9.4d|Adăugată în acestă versiune| | ||
- | |1.99.99.58|Added Named Constants| | ||