Calculatoare
Controlul updownCONTROLUL UPDOWN Controlul UpDown ('sus — jos') serveste la majorarea sau micsorarea unei valori. Este format dintr-o pereche de butoane cu sageti in sus si jos (sau stanga si dreapta). De regula este asociat la un alt control (de exemplu la o cutie de text); prin actionarea acestor butoane se poate modifica valoarea afisata in cutia de text, intre doua valori definite de utilizator. Controlul este un control 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 —2 5.0. Informatiile referitoare la acest control se gasesc in fisierul: C:WindowsSystemCOMCT232.OCX Simbolul grafic aferent controlului are forma Proprietatile si metodele specifice controlului UpDown sunt urmatoarele: <titlu> Proprietatile Min si Max (de tip Long) Stabilesc valoarea minima respectiv maxima a domeniului de variatie corespunzator controlului UpDown. Valorile implicite ale acestor proprietati sunt 0 si 10; ele pot fi utilizate printr-o secventa de forma urmatoare: Dim Valoare As Long NumeControl.Min = Valoare ' Stabilirea valorii minime. . NumeControl.Max = Valoare ' Stabilirea valorii maxime. Valoare = NumeControl.Min ` Citirea valorii minime. Valoare = NumeControl.Max ` Citirea valorii maxime. <titlu>Proprietatea Value (de tip Long) Permite citirea pozitiei curente a controlului UpDown. Pozitia curenta variaza intre valorile specificate de proprietatile Min si Max. Aceasta valoare este modificata in momentul in care utilizatorul efectueaza un clic pe o sageata a controlului, astfel: • daca se efectueaza un clic pe sageata jos sau stanga, valoarea proprietatii Value se apropie de valoarea proprietatii Min, cu pasul specificat in proprietatea Increment; • daca se efectueaza un clic pe sageata sus sau dreapta, valoarea proprietatii Value se apropie de valoarea proprietatii Max, cu pasul specificat in proprietatea Increment. Pasul specificat in proprietatea Increment (de tip Long) nu poate fi numar negativ. Valoarea implicita a pasului este 1. Proprietatea Value (de tip Long) Poate fi utilizata si pentru stabilirea, prin program, a valorii corespunzatoare pozitiei curente. Valoarea initiala a acestei proprietati este 0. Aceasta proprietate poate fi utilizata printr-o secventa de forma urmatoare: Dim Pozitie As Long Pozitie = NumeControl.Value ' Citirea pozitiei curente NumeControl.Value = Pozitie `Stabilirea pozitiei curente. <titlu> Proprietatea Wrap (de tip Boolean) Se refera la parcurgerea circulara a valorilor din domeniul definit proprietatile Min si Max. Daca proprietatea este incarcata cu valoarea True, parcurgerea valorilor va fi circulara, astfel, de exemplu, dupa valoarea definita in Max va urma valoarea definita in Min. Daca proprietatea este incarcata cu valoarea False (care este si valoarea implicita), atunci domeniul de valori nu va fi parcurs circular. <titlu> Proprietatea Orientation Se refera la orientarea sagetilor controlului UpDown. Daca aceasta proprietate este initializata cu constanta predefinita: cc2OrientationVertical (= 0, valoare implicita) atunci controlul va avea un buton cu sageata in sus si un buton cu sageata injos. Daca se foloseste constanta predefinita: cc2OrientationHorizontal( atunci controlul va avea un buton cu sageata stanga si un buton cu sageata dreapta. <titlu> Proprietatea BuddyControl (de tip Variant) Stabileste controlul asociat la controlul UpDown. Controlul asociat poate fi stabilit atat in perioada de elaborare a proiectului (cu ajutorul inspectorului de obiecte), cat si in executie, printr-o secventa de forma: NumeControl. BuddyControl = 'Numele controlului asociat Astfel, de exemplu, daca se doreste asocierea unei cutii de text (care are numele Text1) la un control UpDown (care are numele UpDown1), atunci se va folosi o secventa de forma: UpDown1.BuddyControl Text1 <titlu> Proprietatea BuddyProperty (de tip String) Desemneaza o oarecare proprietate a controlului asociat controlului UpDown, care va fi utilizata in procesul de sincronizare a celor doua controale. Respectiva proprietate poate fi desemnata atat in faza de elaborare a proiectului (cu ajutorul inspectorului de obiecte), cat si in executie, printr-o secventa de forma: Dim NumePropr As String NumeControl.BuddyProperty = NumePropr unde NumePropr specifica o proprietate a controlului din BuddyControl. Daca nu se utilizeaza secventa anterioara, atunci se va utiliza proprietatea implicita a controlului asociat. Daca proprietatea SyncBuddy este configurata la valoarea True, proprietatea Value a controlului UpDown va fi sincronizata cu proprietatea desemnata in proprietatea BuddyProperty. Se mentioneaza faptul, ca proprietatea BuddyProperty poate fi selectata in perioada de elaborare a proiectului; in acest scop in inspectorul de obiecte se va efectua un clic in linia BuddyProperty, dupa care se va efectua un clic pe butonul cu sageata jos. Se afiseaza o lista care contine toate proprietatile care pot fi utilizate in procesul de sincronizare. Proprietatea necesara poate fi selectata printr-un clic efectuat pe numele proprietatii. Proprietatea BuddyProperty poate fi stabilita doar dupa ce a fost selectata proprietatea BuddyControl.
Astfel, de exemplu, daca in procesul de sincronizare se doreste utilizarea proprietatii Text a unui control asociat de tip cutie de text, atunci se va folosi o secventa de forma: OpDown1.BuddyProperty = 'Text' <titlu> Proprietatea SyncBuddy (de tip Boolean) Se refera la modul de sincronizare a proprietatii Value cu o proprietate a controlului asociat. Daca aceasta proprietate este incarcata cu valoarea True, atunci proprietatea Value a controlului UpDown este sincronizata automat cu proprietatea BuddyProperty a controlului asociat. Astfel, de exemplu, proprietatea Value a controlului UpDown poate, fi sincronizata cu proprietatea Text a unui control TextBox. Daca se modifica valoarea proprietatii Value, atunci valoarea proprietatii Text a cutiei de editare va fi actualizata (si invers, daca se modifica valoarea proprietatii Text, se va actualiza valoarea proprietatii Value). Proprietatea Value a unui control UpDown poate fi sincronizata si cu alte proprietati ale controlului asociat (de exemplu Top, Left, BackColor, ForeColor si altele). Lista completa cu proprietatile controlului asociat care permit sincronizarea cu proprietatea Value poate fi afisata astfel: prima data se incarca proprietatea BuddyControl cu numele controlului asociat, dupa care in inspectorul de obiecte se efectueaza un clic in linia corespunzatoare proprietatii BuddyProperty. in coloana de valori se afiseaza un buton cu sageatajos. Se efectueaza un clic pe acest buton, in urma acestei actiuni se va deschide o lista, care contine numele tuturor proprietatilor care permit efectuarea unei sincronizari. Daca nu se alege nici un element din lista, atunci sincronizarea va fi realizata cu proprietatea implicita a controlului asociat. Daca proprietatea SyncBuddy este incarcata cu valoarea False (care este si valoarea implicita), atunci proprietatea Value a controlului UpDown nu se sincronizeaza cu nici o proprietate a controlului asociat. Proprietatea poate fi modificata sau testata printr-o secventa de forma: Dim Sincronizare As Boolean NumeControl.SyncBuddy = Sincronizare 'Stabilirea valorii proprietatii. Sincronizare = NumeControl.AutoBuddy 'Citirea valorii proprietatii. <titlu> Proprietatea AutoBuddy (de tip Boolean) Se refera la detectarea automata a controlului asociat la controlul UpDown. Daca aceasta proprietate este incarcata cu valoarea True, atunci controlul asociat va fi detectat automat, pe baza ordinii de parcurgere cu Tab-uri a controalelor. Controlul asociat va fi controlul care este situat in fata controlului UpDown, in ordinea de parcurgere cu Tab-uri. Daca nu se gaseste nici un astfel de control, atunci se va cauta un control, care este situat dupa controlul UpDown, in ordinea de parcurgere cu Tab-uri. Daca proprietatea AutoBuddy este incarcata cu valoarea False, care este si valoarea implicita, atunci controlul asociat este stabilit pe baza informatiei memorate in proprietatea BuddyControl. Daca proprietatea AutoBuddy este incarcata cu valoarea True, atunci proprietatea BuddyControl va fi incarcata automat. Daca proprietatea AutoBuddy este incarcata cu valoarea False, informatia din proprietatea BuddyControl va fi stearsa. Proprietatea poate fi modificata sau testata printr-o secventa de forma: Dim ValLog As Boolean NumeControl.AutoBuddy = ValLog 'Stabilirea valorii proprietatii. ValLog = NumeControl.AutoBuddy 'Citirea valorii proprietatii. <titlu> Proprietatea Alignment Stabileste modul de aliniere a controlului UpDown cu controlul asociat. Pentru selectarea modului de aliniere pot fi folosite urmatoarele constante predefinite: cc2alignmentLeft (= 0, controlul UpDown este in stanga controlului asociat) si cc2alignmentRight (= 1, valoare implicita, controlul UpDown este in dreapta controlului asociat). <titlu> Evenimentul Change Este declansat in momentul in care se schimba valoarea proprietatii Value a controlului UpDown. Valoarea acestei proprietati poate fi schimbata in urmatoarele doua moduri: • utilizatorul efectueaza un clic pe un buton cu sageata; • se modifica valoarea intr-un control asociat la controlul UpDown, ' cu conditia ca proprietatea SyncBuddy sa aiba valoarea True. Procedura atasata acestui eveniment (care este evenimentul implicit al controlului) are urmatorul prototip: Private Sub NumeControl_Change( [Index As Integer]) End Sub Parametrul Index este un numar intreg care identifica controlul in cazul in care a fost folosit un tabel de controale. <titlu> Evenimentul DownClick Este declansat in momentul in care utilizatorul efectueaza un clic pe butonul cu sageata jos (sau sageata stanga). Acest eveniment este declansat dupa evenimentul Change. Procedura atasata acestui eveniment are urmatorul prototip: Private Sub NumeControl_DownClick( [Index As Integer]) End Sub Parametrul Index este un numar intreg care identifica controlul in cazul in care a fost folosit un tabel de controale. <titlu> Evenimentul UpClick Este declansat in momentul in care utilizatorul efectueaza un clic pe butonul cu sageata sus (sau sageata dreapta). Acest eveniment este declansat dupa evenimentul Change. Procedura atasata acestui eveniment are urmatorul prototip: Private Sub NumeControl_UpClick( [Index As Integer]) EndSub Parametrul Index este un numar intreg care identifica controlul in cazul in care a fost folosit un tabel de controale. EXEMPLUL 1: Forma aplicatiei urmatoare contine o cutie de text, un control UpDown si un control de tip eticheta. Cutia de text este asociata controlului UpDown. Proprietatile controlului UpDown au fost stabilite in faza de elaborare a proiectului; valorile selectate sunt centralizate in tabelul urmator: <tabel> *Proprietate Valoare *Alignment * cc2AlignmentRight *Orientation cc2Orientation Vertical *BuddyControl *Text1 *AutoBuddy * False *SyncBuddy True Buddy/Property Text *Value *Min *Max *Increment </tabel> In procedura atasata evenimentului Change al controlului UpDown se citeste valoarea proprietatii Value, care reprezinta dimensiunea fontului utilizat la afisarea unui text in controlul de tip eticheta; aceasta valoare va fi afisata automat in cutia de text. Dimensiunea fontului variaza intre 8 si 26 puncte, cu pasul egal cu 2 puncte. Fereastra afisata de aplicatie poate avea aspectul alaturat. Fig.pag.363 sub forma unei ferestre. Textul sursa al programului este: Option Explicit Private Sub UpDown1_Change With Label1 .FontName = 'Times New Roman' ' Selectare numelui de font. .FontSize OpDown1.Value ' Stabilirea dimensiunii de font. .Caption = 'Times New Roman' ' Afisare text in controlul de eticheta. End With End Sub EXEMPLUL 2: Forma aplicatiei urmatoare contine o cutie de text, un control UpDown si un control Shape (model geometric, tip dreptunghi). Cutia de text reprezinta controlul asociat controlului UpDown. in momentul initial latimea modelului geometric este 0 si este plasat deasupra cutiei de text. Proprietatile de baza ale controlului UpDown sunt stabilite in executie, in procedura atasata evenimentului Load al formei. Domeniul de valori al controlului este intervalul [0,10], pasul utilizat este 1. in momentul in care se efectueaza un clic pe controlul UpDown, se declanseaza evenimentul Change, in procedura atasata acestui eveniment se citeste valoarea proprietatii Value (care variaza deci intre 0 si 10). Aceasta valoare este utilizata la stabilirea latimii noi a modelului geometric. Latimea acestui model va varia intre zero si latimea cutiei de text. Fereastra afisata de aplicatie poate avea aspectul urmator: Fig.pag.364 sub forma unei ferestre. Textul sursa al programului este: Option Explicit Private Sub Form_Load() Form1.Caption = 'Controlul UpDown' Text1.Text With UpDown1 .BuddyControl Text1 .BuddyProperty = 'Text' .SyncBuddy True .AutoBuddy = False .Value .Min .Max Increment = .Wrap True End With Shape1.Height Text1.Height Shape1.Width End Sub Private Sub UpDown1_Change Dim v As Integer v = UpDown1.Value Shape1.Width = v * Text1.Width End Sub
|