User Tools

Site Tools


ro:clickb

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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ă:** //**CLICK** = clic; **B**utton = buton// 
-==== 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>mousebuttonconstants}} 
-==== Exemplu simplu ==== 
-<code> 
-# ș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 + ")" 
-</code> 
-==== 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: 
-<code> 
-if clickb = MOUSEBUTTON_LEFT then print "a fost apăsat butonul din stânga"; 
-</code> 
-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: 
-<code> 
-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"; 
-</code> 
-**Atenție:** În cazul executării unui dublu clic, BASIC-256 va detecta mai întâi clicul inițial și va semnaliza prin funcția **ClickB** bu tonul apăsat. Dacă se execută un dublu clic, doar al doilea clic **ClickB** va conține atât valoare butonului cu care s-a făcut clic, cât și valoarea MOUSEBUTTON_DOUBLECLICK. 
- 
-==== Exemplu cu detectarea butoanelor și a dublu clicului ==== 
-<code> 
-# ș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 "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 
-</code> 
-==== Exemplu complex ==== 
-<code> 
-# 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 
-</code> 
- 
-==== Vezi și ==== 
-{{page>ro:start#Mouse&noheader}} 
-==== Istoric ====  
-|0.9.4d|Adăugată în acestă versiune| 
-|1.99.99.58|Added Named Constants| 
  
ro/clickb.txt · Last modified: 2020/02/28 10:46 (external edit)