Utilizarea videoformelor in Visual FoxPro (Generatorul Form Designer) prof. Jiduc Gabriel

Size: px
Start display at page:

Download "Utilizarea videoformelor in Visual FoxPro (Generatorul Form Designer) prof. Jiduc Gabriel"

Transcription

1 Utilizarea videoformelor in Visual FoxPro (Generatorul Form Designer) prof. Jiduc Gabriel

2 Videoformatul sau forma (form) este un obiect care permite crearea unei interfete grafice de lucru in Visual FoxPro Avantajele utilizarii formelor: posibilitatea utilizarii bazelor de date de nespecialistii in informatica o interfata de lucru atractiva posibilitatea introducerii unor conditii pentru modificarea/adaugarea de date in tabele care sa elimine erorile

3 Crearea unei forme: Alegerea optiunii FILE-NEW a meniului principal selectarea radiobutonului FORM actionarea butonului NEW FILE Scrierea in fereastra Command a instructiunii create form

4 Dupa lansarea comenzii se va afisa fereastra Form Designer cu urmatoarele componente importante: Fereastra de afisare si prelucrare a formei Bara de instrumente Form Designer : daca nu este afisata, se alege optiunea View-Toolbars a meniului principal se selecteaza optiunea Form Designer si se actioneaza butonul OK Fereastra Properties, in care pot fi setate proprietatile obiectului daca aceasta nu este afisata se actioneaza instrumentul corespunzator ei din bara de instrumente Form Designer)

5 Fereastra cu controalele (obiectele) care pot fi atasate formei pentru crearea interfetei dorite Daca nu este afisata se actioneaza butonul corespunzator ei din bara de instrumente Form Designer Controalele pot fi atasate formei prin selectarea lor (click stanga mouse) din bara Form Controls si apoi indicarea pozitiei lor pe forma (tot prin click stanga mouse)

6 Proprietati ale formelor (setate in fereastra Properties): AutoCenter (T sau F)-la rulare ea este afisata in centrul ecranului (T) sau unde este pozitionata la creare (F) BackColor-culoarea fundalului Caption-titlul formei Height, Width-inaltimea, respectiv latimea formei Left, Top-pozitia coltului stanga sus a formei (in cazul AutoCenter=.F.) Visible-este (.T.) sau nu (.F.) afisata la rularea programului Dupa setarea proprietatilor formei, rularea (afisarea in lucru) ei se realizaeaza actionand butonul RUN al barei de instrumente standard

7 Un alt set important dupa proprietatile formei este cel al metodelor (method) Acestea permit scrierea unor coduri de programe care ruleaza in anumite conditii (click mouse, incarcare forma in memorie, etc.) Exemple de metode: Init-codul ruleaza cand se creaza forma in memoria calculatorului Load-codul ruleaza inainte de crearea formei in memoria calculatorului Click-codul ruleaza la actionarea butonului stang al mouse-ului pe suprafata formei Dblclick-codul ruleaza la actionarea dubla a butonului stang al mouse-ului pe suprafata formei Hide-codul ruleaza cand se ascunde forma (proprietatea visible=.f.) Release-codul ruleaza cand se elimina forma din memoria calculatorului

8 Pentru scrierea codului corespunzator unei proceduri: Se da dublu click pe numele metodei din lista Method a ferestrei Properties Daca fereastra corespunzatoare codului procedurilor este afisata se alege din lista acestora metoda dorita Aceasta fereastra poate fi afisata prin: Dublu click mouse pe suprafata formei Actionarea butonului Code Window al barei de instrumente Form Designer

9 Controale (obiecte) ce pot fi incapsulate (continute) de forme: Obiecte container-contin alte controale. Exemplu de container este chiar forma Obiecte control-nu contin alte obiecte, putand insa declansa anumite actiuni Controalele pot fi atasate formei prin selectarea lor (click stanga mouse) din bara Form Controls si apoi indicarea pozitiei lor pe forma (tot prin click stanga mouse) Ca si formele orice obiect continut de ele au propriile proprietati si metode

10 Eticheta (Label) Permite afisarea unui text Textul etichetei poate fi setat: Prin proprietatea Caption la creare etichetei Prin cod de instructiuni al unei metode Textul etichetei nu poate fi modificat de utilizator la rularea programului (formei) Proprietati: Alignment-modul de aliniere al textului etichetei Autosize-pentru valoarea.t., latimea etichetei se regleaza automat la lungimea textului Backcolor-culoarea fundalului Caption-textul continut de eticheta FontBold-pentru valoarea.t., textul va fi scris ingrosat FontSize-dimensiunea caracterului ForeColor-culoarea caracterelor Height, Width-inaltimea si latimea etighetei Left, Top-coordonatele coltului stanga sus al etichetei

11 Caseta text (text box) Permite afisarea unui text Textul casetei poate fi setat: Prin proprietatea Value la creare casetei Prin cod de instructiuni al unei metode Să preia valoarea unui câmp al unei tabele Textul casetei poate fi modificat de utilizator la rularea programului (formei), eventual pentru introducerea unor date în program sau într-o tabelă Introducerea textului în casetă în timpul rulării este controlată de proprietatea Enable (.T. se poate introduce text,.f. caseta este bloctă) Proprietati: Alignment, Backcolor, FontBold, FontSize, ForeColor, Height, Width, Left, Top ControlSource- câmpul din tabela a cărui valoare este afișată în casetă PasswordChar-caracterul care este afișat la scrierea unei parole de acces în cazul unor casete text tip parolă SelLength-returnează numărul de caractere selectate de utilizator din textul casetei SelStart-indică poziția de unde începe selecția caracterelor unui text dintr-o casetă SelText-returnează textul selectat de utilizator din conținutul unei casete text Metode: GotFocus-evenimentul de a fi selectat obiectul de utilizator LostFocus-evenimentul de a pierde selecția utilizatorului Valid-verifică înainte de părăsirea selecției dacă datele introduse în casetă sunt corecte When-verifică starea (valoarea) casetei înainte de a fi selectată

12 Butonul de comandă(command Button) Permite declanșarea unor acțiuni: Parcurgerea unei tabele Deschiderea/închiderea unei forme, etc. Selectarea automată a unui buton este controlată de proprietatea Default (.T. acțiunea butonului se declanșează la acționarea tastei Enter) Proprietati: DisabledPicture-fișierul (.bmp) când butonul este dezactivat DownPicture-fișierul (.bmp) când butonul este acționat Picture--fișierul (.bmp) atașat butonului Metode: Click

13 Caseta de validare (check box) Permite selectarea unei valori dintr-o listă de opțiuni Pot fi selectate la o rulare mai multe casete de validare, ele funcționând independent unele de altele Starea unei casete (validată sau nu) este dată de proprietatea Value care poate avea valoarea 1 sau.t. dacă a fost selectată sau 0 sau.f. dacă nu a fost validată Valorile atribuite 1 sat.t., respectiv 0 sau.f., depind de tipul sursei atribuite casetei prin proprietatea ControlSource Dacă nu a fost setată proprietatea ControlSource, casetele iau vaorile 1 sau 0 Proprietati: Style-aspectul casetei poate fi în format imagine

14 Butoane de opțiune (Option Group) Este alcătuit din: Grupul de butoane (Option Command Group)-este controlul container al butoanelor de opțiune Butonul de opțiune (Option Button)-este radiobutonul propriu-zis Numărul butoanelor unui grup poate fi setat cu ajutorul proprietății ButtonCount al grupului de butoane (conteiner-ului) Pentru setarea proprietăților unui radiobuton al grupului se selectează acesta din lista aflată în fereastra Properties Dacă la rularea formei se dorește ca un radiobuton să fie selectat se setează proprietatea Value a grupului cu numărul de ordine al butonului respectiv Pentru ca la rulare să se determine care dintre butoanele grupului a fost selectat de utilizator, se verifică proprietatea Value a butoanelor (1 dacă a fost selectat, 0 în caz contrar) În codul programului apelarea unui buton se face prin: thisform.optiongroup1.option1.value

15 Caseta de editare (Edit box) Permite afisarea unui text Față de caseta text, caseta de editare permite scrierea, afișarea unui text de lungime mare, pe mai mute rânduri, vizualizat cu ajutorul unei bare de defilare (scrollbar) Permițând afișarea unui text lung, ea poate fi folosită pentru afișarea conținutului unui câmp tip memo al unei tabele sau introducerea textului interactiv într-un astfel de câmp (atașarea unui câmp memo casetei se face cu proprietatea ControlSource)

16 Caseta listă (List box) Permite selectarea unei valori dintr-o listă pe care o conține Lista poate fi încărcată automat dintr-o tabelă-setarea proprietăților: Rowsourcetype-Fields RowSource-câmpul din tabelă (tabela este atașată inițial videoformei) la rularea formei, cu ajutorul codului următor conținut de procedura INIT a casetei listă: this.additem ("Alexandru") this.additem ("Mihaela") this.additem ("Radu") 1 2

17 Caseta listă (List box) Proprietăți: ColumnCount-numărul de coloane ale casetei ColumnWidth-stabilește lățimea coloanelor Multiselect-setează posibilitatea de a fi selectate (.T.) sau nu (.F.), mai multe valori ale listei ListItem(i)-extrage din lista elementul cu numărul de ordine i Sorted-ordonează (.T.) sau nu (.F.) elementele listei Value-returnează elementul selectat din listă ListIndex-returnează poziția elementului selectat ListCount-returnează numărul elementelor listei Metode: AddItem-adaugă un element în listă (AddItem(valoare)) AddListItem-idem, în cazul listei cu mai multe coloane (AddListItem(valoare,nr_linie,nr_coloana)) RemoveItem-șterge elementul listei indicat (prin poziția sa în listă) RemoveListItem-idem, în cazul listei cu mai multe coloane

18 Caseta combinată(combo box) Permite selectarea unei valori dintr-o listă pe care o conține Este o combinație între o casetă text și o casetă listă Față de caseta listă, caseta combinată afișează un singur element al listei (permite astfel o economisire a spațiului de lucru) Toate proprietățile și metodele (procedurile) casetei listă sunt valabile și pentru caseta combinată

19 Caseta de modificare valorică (Spinner) Conține o valoare numerică, care poate fi modificată cu ajutorul săgeților controlului Implicit pasul (rația) de incrementare/decrementare este 1. El poate fi modificat cu ajutorul proprietății Increment Domeniul valorilor controlului poate fi setat cu ajutorul proprietăților: KeyboardHightValue-valoarea maximă admisă introdusă de la tastatură KeyboardLowValue-valoarea minimă admisă introdusă de la tastatură SpinnerHightValue-valoarea maximă admisă, setată cu săgețile controlului SpinnerLowValue-valoarea minimă admisă, setată cu săgețile controlului Valoarea spinner-ului setată la un moment dat poate fi extrasă cu ajutorul proprietății Value

20 Figuri geometrice Linii (Line) Desenează segmente Proprietăți: BorderWidth-grosimea liniei BorderStyle-tipul liniei LineSlant-direcția de înclinare a liniei (panta) Poligoane (Shape): Desenează pătrate, dreptunghiuri, elipse, cercuri Proprietăți: Curvature-desenarea cercurilor sau elipselor (valoarea 99), pătratelor sau dreptunghiurilor (valoarea 0) FillColor-culoarea de umplere FillStyle-tipul formei (modul de reprezemtare al interiorului ei)

21 Imagini (Image) Permit inderarea de imagini (poze) videoformei Inserarea unei imagini se face setând proprietatea Picture, fie la crearea formei, fie în codul unei proceduri la rulare Pentru vizualizarea corectă (dorită) a imaginii se setează proprietatea Stretch: 0-clip imaginea este tăiată la dimensiunile setate în format 1-isometric se încadrează poza în dimensiunile din formă cu păstrarea proporției dintre lungime și înălțime 2-stretch poza se încadrează strict în dimensiunile formei (cu distorsionarea ei) Implicit dimensiunile imaginii inserate sunt cele reale ale acesteia

22 Controlorul de timp (Timer) Permite executarea unor acțiuni la intervale de timp specificate (Ex: închiderea unei videoforme de tip test la expirarea unei anumite durate) Setarea duratei până la declanșarea acțiunii se realizează cu ajutorul proprietății Interval (valoarea este în ms) Acțiunea (codul) este descrisă în metoda Timer La afișarea formei controlul din cronometru este invizibil

23 Colecția de pagini (Page Frame) Este un obiect de tip container, el conținând mai multe pagini (fiecare pagină putându-se considera o formă de sine stătătoare) Setarea numărului de pagini ale container-ului este realizată prin proprietatea PageCount În timpul rulării formei, accesarea unei pagini se face dând click stânga mouse pe titlul ei La scrierea codului accesarea unui element al unei pagini se face prin traversarea tuturor container-elor superioare. Ex: thisform.pageframe1.page2.image1.visible=.