Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Calculatoare


Qdidactic » stiinta & tehnica » informatica » calculatoare
Controlul slider



Controlul slider


CONTROLUL SLIDER


Controlul Slider bara de glisare) creeaza o bara prevazuta cu un buton de glisare si cu o scala cu gradatii, in executie pozitia cursorului glisant poate fi modificata prin tragerea lui cu ajutorul mouse-ului sau prin efectuarea unui clic in stanga sau in dreapta cursorului. Pozitia cursorului poate fi modificata si prin actionarea tastelor cu sageti sau a tastelor Page Up si Page Down. Controlul poate afisa si o regiune selectata. Pentru selectarea unei regiuni proprietatea SelectRange a controlului trebuie configurata cu valoarea True, iar in timpul selectiei trebuie tinuta apasata tasta SHIFT. Orientarea controlului poate fii orizontala sau verticala.

Controlul Slider este aditional. Pentru afisarea simbolului grafic al controlului din meniul Project se alege comanda Components (CTRL +T). in fereastra de dialog care se afiseaza se alege pagina Controls, in continuare printr-un clic se selecteaza cutia de validare care are eticheta Microsoft Windows Common Controls 5.0. Informatiile referitoare la acest control se gasesc in fisierul:


C:WindowsSystemCOMCTL32.OCX


Simbolul grafic aferent controlului are forma unei iconite.

Proprietatile si metodele specifice controlului Slider sunt urmatoarele:


<titlu> Proprietatile Min si Max (de tip Long)

Permit stabilirea sau citirea domeniului de variatie al cursorului glisant al controlului. Valoarea implicita a proprietatii Min este 0, iar a proprietatii Max este 10, adica daca cursorul se afla la extremitatea din stanga (de sus) a controlului, atunci valoarea proprietatii Value va fi 0, iar daca cursorul se afla la extremitatea din dreapta (de jos), valoarea proprietatii Value este 10. Aceste proprietati pot fi utilizate printr-o secventa de forma:




Dim ValMin As Long, ValMax As Long

NumeControl.Max = ValMax 'Stabilirea limitei superioare.

NumeControl .Min = ValMin 'Stabilirea limitei inferioare.

ValMax = NumeControl.Max 'Citirea limitei superioare.

ValMin = NumeControl.Min'Citirea limitei inferioare.


<titlu> Proprietatea Value (de tip Long)

Permite stabilirea sau citirea pozitiei curente a cursorului glisant. Aceasta proprietate poate fi utilizata printr-o secventa de forma:


Dim Pozitie As Long

Pozitie = NumeControl.Value 'Citirea pozitiei actuale a cursorului.


NumeControl.Value = Pozitie 'Stabilirea pozitiei actuale a cursorului.


<titlu> Proprietatile LargeChange si SmallChange

Proprietatea LargeChange permite selectarea (sau citirea) numarului de gradatii prin care se deplaseaza cursorul glisant al controlului in momentul in care se actioneaza tastele Page Up sau Page Down (sau cand se efectueaza un clic de mouse in partea din stanga, respectiv in partea din dreapta a cursorului glisant). Valoarea implicita a acestei proprietati este egala cu 5. Proprietatea SmallChange permite selectarea (sau citirea) numarului de gradatii prin care se deplaseaza cursorul glisant al controlului in momentul in care se actioneaza tastele cu sageti orizontale. Valoarea implicita a acestei proprietati este egala cu 1. Tipul aferent acestor proprietati este un intreg lung (Long). Aceste proprietati pot fi stabilite in executie printr-o secventa de forma urmatoare:


NumeControl.LargeChange = numar     ' Stabilirea numarului de gradatii la salt lung.

NumeControl.SmallChange = numar     ' Stabilirea numarului de gradatii la salt scurt.


<titlu> Proprietatea Orientation (de tip Integer)

Permite stabilirea orientarii controlului Slider. Aceasta proprietate poate fi stabilita atat in perioada de elaborare a proiectului, cat si in executie, printr-o secventa de forma:


NumeControl.Orientation = Valoare


unde Valoare este o constanta predefinita, avand valorile sldHorizontal (= 0, orientare orizontala, valoare implicita) si sldVertical (= 1, orientare verticala).


<titlu> Proprietatea SelectRange (de tip Boolean)

Stabileste daca controlul Slider poate avea sau nu un domeniu selectat. Aceasta proprietate poate fi stabilita atat in perioada de elaborare a proiectului, cat si in executie, printr-o secventa de forma:


NumeControl.SelectRange = True ‘ Controlul poate sa aiba un domeniu selectat.

NumeControl.SelectRange = False' Controlul nu poate sa aiba un domeniu selectat.


Daca aceasta proprietate este initializata cu valoarea False, atunci valoarea proprietatii SelStart coincide cu valoarea proprietatii Value. In acest caz proprietatea SelectRange nu este operanta.


<titlu> Proprietatile SelStart si SelLength

Permit stabilirea sau citirea pozitiei de inceput a zonei selectate, respectiv a lungimii zonei selectate, in executie aceste proprietati se utilizeaza prin constructii de forma urmatoare:


Dim pozitie As Integer, Lungime As Integer

NumeControl.SelStart = Pozitie 'Stabilirea pozitiei de inceputa zonei selectate.

NumeControl.SelLength = Lungime 'Stabilirea lungimii zonei selectate.

Pozitie = NumeControl. SelStart ' Citirea pozitiei de inceput a zonei selectate.

Lungime = NumeControl..SelLength 'Citirea lungimii zonei selectate.

Valoarea proprietatii SelLength nu poate fi mai mica ca 0, iar suma valorilor corespunzatoare proprietatilor SelStart si SelLength nu poate fi mai mare decat valoarea proprietatii Max.


<titlu> Proprietatea TickFrequency

Permite stabilirea sau citirea frecventei gradatiilor afisate pe controlul Slider. Astfel, de exemplu, daca domeniul este fixat la 100, iar frecventa este fixata la 2, atunci vor fi afisate 50 de gradatii. Valoarea implicita a acestei proprietati este 1, adica in fiecare unitate din domeniu se afiseaza o gradatie. Proprietatea poate (fi utilizata printr-o secventa de forma urmatoare:


Dim Frecventa As Integer

NumeControl.TickFrequency = Frecventa 'Stabilirea frecventei gradatiilor.

Frecventa = NumeControl.TickFrequency 'Citirea frecventei gradatiilor.


<titlu> Proprietatea TickStyle

Permite stabilirea unui cod numeric (sau citirea acestui cod) prin care se poate stabili stilul gradatiilor afisate pe controlul Slider. Proprietatea poate fi utilizata printr-o secventa de forma urmatoare:



Dim Stil As Integer

NumeControl.TickStyle = Stil 'Stabilirea stilului.

Stil = NumeControl.TickStyle 'Citirea codului corespunzator stilului utilizat.


Pentru stabilirea stilului gradatiilor pot fi utilizate diferite constante predefinite, centralizate in tabelul urmator:


<tabel>


*Constanta

Valoare

Descriere


*sldBottomRight


Gradatiile sunt pozitionate in partea inferioara a controlului (daca se foloseste orientarea orizontala) sau in partea din dreapta controlului (daca se foloseste orientarea verticala). Valoare implicita.


*sldTopLeft


Gradatiile sunt pozitionate in partea superioara a controlului (daca se foloseste orientarea orizontala) sau in partea din stanga controlului (daca se foloseste orientarea verticala).


*sldBoth


Gradatiile sunt pozitionate atat in partea superioara, cat si in partea inferioara a controlului (respectiv atat in partea din stanga, cat si in partea din dreapta).


*sldNoTicks


Controlul nu este prevazut cu gradatii.


</tabel>


<titlu> Metoda ClearSel

Sterge selectia curenta a controlului Slider, adica valoarea proprietatii SelLength se initializeaza cu 0, iar valoarea proprietatii SelStart este incarcata cu valoarea corespunzatoare proprietatii Value. Metoda poate fi apelata printr-o instructiune de forma:

NumeControl ClearSel


<titlu> Metoda GetNumTicks

Permite citirea numarului de gradatii ale controlului Slider. Pentru apelarea metodei se va folosi o secventa de forma:


Dim Nr As Integer

Nr = NumeControl.GetNumTicks


Pentru modificarea numarului de gradatii se vor reconfigura valorile corespunzatoare proprietatilor Min sau Max; o alta modalitate este modificarea valorii corespunzatoare proprietatii TickFrequency.


EXEMPLUL1:

Forma aplicatiei urmatoare contine un control Slider si o eticheta. La controlul Slider au fost utilizate valorile implicite, in momentul declansarii evenimentelor MouseUp si KeyUp corespunzatoare controlului Slider se citeste pozitia actuala a cursorului glisant. Pozitia actuala este afisata in controlul de eticheta. Fereastra afisata de aplicatie poate avea aspectul urmator:


Fig.pag.354 sub forma unei ferestre.


Pozitia actuala=8


Textul sursa al programului este:


Option Explicit


Private Sub Form_Load

Label1.Caption = 'Pozitia actuala=' & Slider1.Value

Form1.Caption = 'Slider'

End Sub

Private Sub Slider1_KeyUp(KeyCode As Integer, Shift As Integer)

Label1.Caption = 'Pozitia actuala=' & Slider1.Value

End Sub


Private Sub Slider1_MouseUp(Button As Integer,_

Shift As Integer, x As Single, y As Single)

Label1.Caption 'Pozitia actuala=' & Slider1.Value

End Sub


EXEMPLUL 2:

Forma aplicatiei urmatoare contine un control Slider si o cutie de text. in procedura atasata evenimentului Load al formei controlul Slider este pozitionat sub cutia de text. Latimea cutiei de text este initializata la valoarea de 1 twip. Domeniul de variatie al cursorului (proprietatile Min si Max) este fixat la intervalul inchis [1, latimea controlului Slider in unitati de twip].

in momentul in care se modifica pozitia cursorului glisant al controlului (adica in momentul declansarii evenimentului Change corespunzator barei) se citeste pozitia actuala a cursorului glisant, iar latimea cutiei de text este modificata la aceasta valoare. Noua pozitie a cursorului glisant este afisata in cutia de text.

Daca in cutia de text se introduce o valoare numerica, valoarea respectiva este utilizata pentru stabilirea noii pozitii a cursorului glisant si a noii latimi a cutiei de text. Repozitionarea cursorului glisant si redimensionarea cutiei de text are loc in momentul in care cutia de text pierde focarul (evenimentul GotFocus corespunzator cutiei de text). Fereastra afisata de aplicatie poate avea aspectul urmator:


Fig.pag.355 sub forma unei ferestre.


Textul sursa al programului este:


Option Explicit


Private Sub Form_Load()

Form1.Caption = 'Controlul Slider'

Text1.width `Latime initiala pentru cutie de text

Text1.Text ` Textul initial afisat in cutie de text

With Slider1

.Left = Text1.Left' Aliniere Slider cu TextBox.

.Top Text1.Top Text1.Height

.Min

.Max .width


.TickFrequency Slider1.Max

.LargeChange Slider1.Max

.SmallChange Slider1.Max

End With

End Sub


Private Sub Slider1_Change( ` Modificarea pozitiei cursorului glisant

Text1.Width Slider1.Value         `Modificarea latimii cutiei de editare.

Text1.Text Slider1.Value            ` Afisarea pozitiei actuale a cursorului.

End Sub


Private Sub Text1_LostFocus() ` Cutia de editare pierde focarul.

Slider1.Value Text1.Text             Repozitionarea cursorului la valoarea citita.

End Sub


EXEMPLUL 3:

Aplicatia urmatoare ilustreaza modul in care se poate selecta cu ajutorul mouse-ului un domeniu al unui control Slider: tasta SHIFT fiind tinuta apasata, se efectueaza un clic pe controlul Slider si se trage cursorul glisant intr-o noua pozitie, situata in dreapta pozitiei initiale. Forma aplicatiei contine un control Slider si trei etichete, in procedura atasata evenimentului Load al formei proprietatea SelectRange a controlului Slider este initializata la valoarea True, deci controlul poate avea un domeniu selectat, in procedura atasata evenimentului MouseDown al controlului Slider - daca tasta SHIFT este apasata - se citeste pozitia curenta a cursorului glisant. Valoarea citita este afisata intr-un control de eticheta, sub forma 'Start = pozitie curenta'. Proprietatea SelStart este initializata cu aceasta valoare initiala, in procedura atasata evenimentului MouseUp al controlului Slider din nou se citeste pozitia curenta a cursorului glisant. Valoarea citita este afisata intr-un control de eticheta, sub forma 'Stop = pozitie curenta'. Proprietatea SelLength este incarcata cu diferenta dintre pozitia actuala si pozitia initiala. Diferenta este afisata intr-un control de eticheta, sub forma 'Lungime = diferenta'. Fereastra afisata de aplicatie poate avea aspectul urmator:


Fig.pag. 356 sub forma unei ferestre.


Textul sursa al programului este:


Option Explicit


Private Sub Form_Load()

Form1.Caption 'Control Slider-Selectie cu SHIFT'

Label1.Caption

Label2.Caption

Label3.Caption

Slider1.SelectRange True

End Sub


Private Sub Slider1_MouseDown(Button As Integer,_

Shift As Integer, x As Single, y As Single)

Slider1 ClearSel Sterge selectia anterioara.

If Shift vbShiftMask Then 'Daca SHIFT apasat, incepe selectia.

Slider1.SelStart Slider1.Value

Label2.Caption 'Start = ' & Slider1.SelStart

End If

End Sub


Private Sub Slider1_MouseDp(Button As Integer,_

Shift As Integer, x As Single, y As Single)

If (Shift vbShiftMask) And_

(Slider1.Value >= Slider1.SelStart) Then

Slider1.SelLength Slider1.Value Slider1.SelStart

Label1.Caption 'Stop = ' & Slider1.Value

Label3.Caption 'Lungime = ' & Slider1.SelLength

End If

End Sub





Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright