CATEGORII DOCUMENTE |
Interfata între program si utilizator se asigura prin meniuri, care permit selectarea unor anumite proceduri ale aplicatiei care realizeaza functia dorita. In VisualdBase se permite utilizarea unor meniuri de tip DOS sau Windows.
Meniuri DOS
Meniuri Windows
Definirea unor meniuri în care selectia se face cu sageti si ENTER (ca în Norton Comander) se poate realiza în dBASE utilizând:
DEFINE MENU - definire meniu orizontal (bara)
DEFINE POPUP- definire meniu vertical intr-o fereastra.
Elementele unui astfel de meniu se specifica in mai multe comenzi. Vom considera un meniu orizontal de forma:
DIRECTOR STRUCTURA BDLISTARE ACTUALIZAREEXIT
0,10,15 0,30 0,45 0,60
Acest meniu urmeaza sa realizeze functiile:
- afisare DIRECTOR curent
- afisare STRUCTURA fisier DBF activ
- CREARE structura pentru un fisier DBF
- ACTUALIZARE fisier
- LISTARE fisier
- terminare program si stergere meniu (EXIT)
Fiecare element al meniului numit PAD se caracterizeaza prin:
Selectia PAD se face cu sageti orizontale (stânga, dreapta), cu mouse-ul, sau cu prima litera. Pad-ul selectat va fi afisat in video invers si comanda asociata se lanseaza la apasarea tastei ENTER.
Definirea unui meniu ca grup de pad-uri se face prin comanda:
DEFINE MENU nume_m [MESSAGE expC]
unde: nume_m - este numele meniului.
expC - contine un mesaj explicativ care se afiseaza pe ultima linie a ecranului cind pad-ul nu are propriul mesaj
ACTIVATE MENU nume_m [PAD nume_p
Afiseaza meniul nume_m anterior definit pozitionat pe nume_p.
La un moment dat poate exista un singur meniu activ. Dezactivarea meniului activ se face fara ai preciza numele prin:
DEACTIV MENU - se sterge meniul de pe ecran.
Un menu deactivat nu se sterge din memorie, el putând fi reactivat ulterior.
Stergerea meniului de pe ecran si din memorie se face cu:
RELEASE MENU nume_m
Se pot sterge toate meniurile de pe ecran si din memorie cu:
CLEAR MENU
Afisarea simpla fara activare a unui meniu se realizeaza cu:
SHOW MENU nume_m
Pad-urile componente ale unui meniu se definesc prin:
DEFINE PAD nume_p OF nume_m PROMPT expC AT x1,y1 [MESS expC]
- clauza OF precizeaza numele meniului din care face parte padul
- PROMPT specifica textul continut in PAD ce poate fi o expresie
- AT indica coordonatele primului caracter din PAD linie, coloana
- MESS da mesajul explicativ afisat la selectia pad-ului
Asocierea unei comenzi pentru un pad definit se face prin:
ON [ SELECTION] PAD nume-P OF nume-m comanda
Daca lipseste clauza SELECTION atunci activarea comenzii (sau procedurii lansate cu DO) asociata se face la pozitionarea pe pad, fara a se cere apasarea tastei ENTER. Comanda asociata pad-ului poate activa un meniu popup prin: ACTIV POPUP nume_p.
Pentru meniul discutat vom scrie un scurt program, care realizeaza functiile in modul cel mai simplu utilizând comenzile DIR, DISP STRU, CREATE fis, LIST. Pad-ul ACTUALIZARE va activa un meniu popup.
*MENU* Program simplu cu meniu orizontal
SET TALK OFF
USE STUD INDEX INUME
DEFI MENU M1
DEFI PAD DIR1 OF M1 PROMPT 'DIRECTOR` AT 0,1 MESS `director crt.`
DEFI PAD STR1 OF M1 PROMPT `STRUCTURA BD` AT 0,15;
MESS ' Afisare structura fisier curent`
DEFI PAD LIST1 OF M1 PROMPT `LISTARE` AT 0,30 MESS `Afisare continut fisier`
DEFI PAD ACT1 OF M1 PRPMPT `ACTUALIZARE` AT 0,45;
MESS `Actualizari fisier`
DEFI PAD TERM OF M1 PROMPT `EXIT` AT 0,60 MESS `Terminare program`
ON SELE PAD DIR1 OF M1 DIR && afisare director
ON SELE PAD STR1 OF M1 DISP STRU && - afisare structura
ON SELE PAD LIST1 OF M1 LIST && - listare fisier
ON SELE PAD ACT1 OF M1 ACTIV POPUP ACT_P && -activare popup
ON SELE PAD TERM OF M1 DEACT MENU && - stergere meniu
ACTIVATE MENU M1 && - activare meniu
RETURN && - terminare dupa deactivare
Meniurile POPUP sau verticale afiseaza pe ecran o fereastra cu texte de tip meniu, care se pot selecta cu sageti sau prima litera din rând. Fiecarei linii (bara) ii va corespunde o functie de executat, stabilita intr-o procedura de selectie asociata meniului. Linia selectata in meniu se indica în procedura de selectie asociata prin numarul ei (l..n), dat de functia BAR().
In cazul utilizarii clauzei PROMPT anumite informatii se afiseaza in meniu. Informatia selectata se transmite procedurii de selectie prin functia PROMT() care ia valoarea respectiva.
Pentru utilizarea unui POPUP se folosesc mai multe comenzi;
DEFINE POPUP nume_p FROM x1,y1 TO x2,y2 [MESSAGE expC]
Defineste meniul popup cu numele nume_p intr-o fereastra definita prin coordonatele x1,y1 si x2,y2,care afiseaza pe ultima linie de ecran mesajul dat de expC.
DEFINE BAR n OF nume_p PROMPT expC [MESS expC] [SKIP [FOR cond]]
Defineste linia n a meniului nume_p, care va contine sirul dat de expC din PROMPT si va afisa pe ultima linie a ecranului mesajul indicat. Se poate interzice selectarea unor linii de menu prin SKIP, sistematic (comentarii, titluri), sau când conditia din FOR e îndeplinita (nu exista proceduri pentru acele functii).
Daca se definesc mai multe linii de meniu decât dimensiunea ferestrei, atunci se face o baleiere in limitele ferestrei.
Varianta a 2-a de definire se face fara linii definite.
Continutul ferestrei va fi format din:
- valorile unui câmp din fisierul curent,
- numele câmpurilor fisierului curent,
- numele fisierelor de date (DBF) din directorul curent.
Valoarea selectata se transmite prin functia PROMPT(),spre procedura de selectie si prelucrare. Sintaxa comenzii este atunci:
DEFINE POPUP nume_p FROM x1,y1 TO x2,y2 [MESSAGE expC];
PROMPT FIELD nume_cimp - afisare valori câmp
FILE LIKE *.DBF - afisare nume fisiere
STRUCTURE - afisare nume câmpuri fisier
Procedura de selectie asociata se activeaza dupa selectia rândului din fereastra si apasarea tastei ENTER.
Numele procedurii asociate unui popup se specifica prin:
ON SELECTION POPUP nume_p DO proced_selectie
Unde numele meniului e dat de nume_p iar procedura de selectie asociate se da in DO.
Dupa definirea meniului si a barelor (daca e cazul), afisarea sa pe ecran se face prin activare specificând numele meniului:
ACTIVATE POPUP nume_p
Stergerea de pe ecran al unui meniu se face prin deactivare, unde nu se specifica numele, fiindca la un moment dat un singur popup poate fi activ. Meniul deactivat ramâne in memorie si poate fi ulterior reactivat.
DEACTIVATE POPUP
Pentru a verifica forma unui meniu definit el poate fi afisat fara activare prin:
SHOW POPUP nume_p
Stergerea din memorie a meniurilor popup se face cu:
RELEASE POPUP nume_p -sterge meniul specificat
CLEAR POPUP - sterge toate meniurile popup din memorie
CLEAR ALL - sterge toate meniurile popup si bara, toate variabilele (inclusiv cele publice si tablouri) ,toate ferestrele, închide toate fisierele DBF, index, report, format din toate zonele.
O procedura de selectie are in principiu structura.
* PSELECT *Procedura de selectie
* Functia BAR() da numarul liniei selectate din meniul popup
PROCED PSELECT
DO CASE
CASE BAR() = 2
DO PCREA && - procedura asociata liniei 2 din meniu
CASE BAR() = 3.OR.BAR() = 4
DO PAD && - procedura asociata liniei 3 si 4
CASE BAR() = 8 && - linia 8 indica iesire din popup (TERM)
DEACTIV POPUP && - stergere de pe ecran meniul popup
RETURN && - revenire in meniul anterior
ENDCASE
RETURN && - revenire in meniul popup
Exemplul 1.
Utilizarea meniului popup cu PROMPT pentru afisare informatii dintr-un fisier oarecare selectat în popup.
* Definire meniu popup ce afiseaza fisierele de date din director
clear
defi popup pop1 from 2,3 to 10,30 prompt File Like *.dbf
on select popup pop1 do afis && -asociere procedura meniului
activate popup pop1 && -activare si afisare nume fisiere
return && -terminare program
* Procedura de selectie si prelucrare activata de popup
PROCEDURE AFIS
v=prompt() && - memorare nume fisier selectat
use &v && - deschidere fisier selectat
clear
disp stru && - afisare structura fisier
wait
list && - afisare continut fisier
wait
return && - revenire in meniul popup
Exemplul 2.
Afiseaza în popup numele câmpurilor fisierului activ. Valorile existente in fisier pentru câmpul selectat se afiseaza.
clear
use stud && -deschidere fisier studenti
* Definire meniu popup ce afiseaza cimpurile fisierului activ
defi popup pop1 from 2,3 to 10,30 prompt stru
on select popup pop1 do afis && - asociere procedura meniului
activate popup pop1 && - activare si afisare nume cimpuri
return && - terminare program
* Procedura de selectie si prelucrare activata de popup
PROCEDURE AFIS
v=prompt() && -memorare nume cimp selectat
clear
list &v && -afisare valori cimp selectat
wait
return && -revenire in meniul popup
Exemplul 3.
Selectia si afisarea unei valori dintr-un câmp al fisierului cu pozitionarea pe înregistrarea care contine valoarea .
clear
use stud
* Definire meniu popup ce afiseaza toate numele studentilor
defi popup pop3 from 2,3 to 10,30 prompt field nume
on select popup pop3 do afis && -asociere procedura meniului
activate popup pop3 && -activare si afisare nume nume
return && -terminare program
* Procedura de selectie si prelucrare activata de popup
PROCEDURE AFIS
clear
? PROMPT() && - afisare numele studentului selectat
Disp
EDIT && - Afisare date student selectat
wait
return && -revenire in meniul popup
Prin modalitatile prezentate mai sus se implementeaza în DOS conceptul de LISTBOX din Windows, care afiseaza valorile unui câmp dintr-un fisier si permite pozitionarea pe înregistrarea care contine valoarea selectata.
Pentru programul de evidenta a studentilor, prezentat anterior se va utiliza acum un program principal pe baza de meniuri orizontale si popup, care sa activeze procedurile existente. Pad-ul Actualizare
* MENIU *Program principal BD studenti cu selectie prin meniu
SET TALK OFF
Clear ALL && inchide toate fisierele, indecsii, legaturile, fis. de proceduri, ferestre
SET PROCEDURE TO FPRO && -specificare fisier proceduri
Clear
* Definire meniu orizontal *
defi menu m1 mess 'selectati cu sageti si ENTER '
defi pad dir1 of m1 prompt 'DIRECTOR' at 0,1 mess 'Directorul curent'
defi pad stru of m1 prompt 'STRUCTURA fis' at 0,10 mess 'Structura fisier studenti'
defi pad crea of m1 prompt 'CREARE fis' at 0,25 mess 'Creare structura fisier '
defi pad actual of m1 prompt 'ACTUALIZARE fis' at 0,40 ;
mess 'Adaugari,Modificari,Stergeri '
defi pad list of m1 prompt 'LISTARI' at 0,60 mess 'Listari parametrice'
defi pad term of m1 prompt 'EXIT' at 0,73
* Definire proceduri pentru fiecare pad*
on select pad dir1 of m1 DIR && -afisare director
on select pad stru of m1 DISP STRU && -afisare structura
on select pad crea of m1 DO PCREA && -creare structura
on select pad actual of m1 ACTIV POPUP A_POP
on select pad list of m1 DO PLIST && -listari fisier
on select pad term of m1 DEACT MENU
La EXIT se sterge meniul bara principal *
* Definire meniu popup pentru actualizari*
defi popup a_pop from 5,5 to 15,35 mess 'selectia se face cu bare sau prima litera'
defi bar 1 of a_pop prompt 'ACTUALIZARI BD' SKIP
defi bar 2 of a_pop prompt repl('=',20) SKIP
defi bar 3 of a_pop prompt space(20) SKIP
defi bar 4 of a_pop prompt 'ADAUGARI MASIVE'
defi bar 5 of a_pop prompt 'ADAUGARI SINGULARE'
defi bar 6 of a_pop prompt 'INTEROGARE '
defi bar 7 of a_pop prompt 'MODIFICARE INREGISTRARI'
defi bar 8 of a_pop prompt 'STERGERE INREGISTRARI'
defi bar 9 of a_pop prompt 'IESIRE'
*Activare procedura selectie popup A_POP
ON SELECTION POPUP a_pop DO SELECT
* Definire fereastra pentru cimp memo
defi wind FM from 9,6 to 21,79
*Activare meniu principal bara M1
ACTIVATE MENU M1
clear all && inchide toate fisierele si sterge toate obiectele
return
* SELECT * Procedura selectie pentru POPUP a_pop *
PROCED SELECT
r=str(bar()-2,1) && -parametru pentru proceduri
clear
do case
case bar()=4 .or. bar()=5
do pad with r && -adaugari inregistrari
case r $ '456' && -corespunde liniilor 6,7si 8
do pims with r && -interogare,modificare,stergere
case bar()=9 && -iesire din meniul popup
deactiv popup && -stergere meniu popup de pe ecran
return && -revenire in meniul superior
endcase
clear
RETURN && -revenire in popup
Meniurile Windows îmbina conceptul de menu bara si popup cu caracteristicile programarii pe obiecte utilizata în interfetele grafice. Pentru proiectarea unui meniu vom folosi Designer-ul de meniu care se activeaza din;
Se va deschide o fereastra de proiectare Untitled Menu-Designer si paleta de proprietati. Se pot plasa mai multe meniuri fiecare având un nume si mai multe bare de comanda. Fiecarei bare de comanda i se va atasa printr-un eveniment o procedura.
Se vor prezenta printr-un exemplu fazele de definire a meniurilor:
Se observa ca bara Insert din meniul File are numele Form.Root.File.Insert. Fiecare bara este tratata ca un obiect si are propriile proprietati. Evenimentul unic asociat este OnClick, iar metoda este una singura Release().
Fiecarui element de meniu (bara) i se poate asocia un ShortCut de tipul CTR+I..
Barele unui meniu pot fi grupate printr-o bara separator, daca bara respectiva are proprietatea Separator = .T.
Se deschide cu Designer un Form cu titlul Evidenta studenti si numele Pmenu1 la care se ataseaza prin proprietatea MenuFile meniul proiectat anterior Meniu1.mnu.
La deschiderea Formului Pmenu1.wfm se va afisa meniul care ne va permite sa selectam procedurile care executa functiile dorite. Se remarca faptul ca meniul nu apare pe Form ci pe bara de meniu principal.
Daca selectam List se va afisa continutul fisierului Stud (Browse) Câmpul memo CV poate fi afisat si modificat prin DblClick care va deschide o fereastra Editor.
Cu Insert se adauga înregistrari noi (Append).
Din meniul Record selectând barele
Next trece la înregistrarea urmatoare (Skip)
Prev revine la înregistrarea precedenta( Skip -1)
Disp afiseaza si permite editarea înregistrarii curente (Edit)
In Visual dBase se pot pastra în câmpurile unor fisiere obiecte multimedia ca imagini, sunete sau obiecte de tip OLE. Pentru aceasta se folosesc câmpurile de tip BIN si OLE care fac referinta la fisierul care contine obiectul.
6.1. Imagini si sunete
Imaginile se pastreaza în fisiere speciale .JPG, .GIF, .BMP, iar sunetele în fisiere Wav. In fisier imaginile si sunetele se pot pastra în fisier în câmpuri de tip BIN.
La crearea unei înregistrari câmpurile BIN sunt goale. Ele trebuie sa faca referinta la fisierele care contin efectiv pozele sau sunetele.
Se considera fisierul de studenti la care prin comanda Modi Struc vom adauga:
Adaugarea unei poze se face prin:
La fel se procedeaza si la schimbarea unei poze.
Pentru adaugare fisier de sunet la un câmp BIN
FILE/ Insert From File se cauta un fisier în directoarele disponibile si OK.
Se observa ca am introdus sunete în câmpul poza, fiindca în ambele cazuri tipul câmpului este BIN. Acestui câmp i se asociaza un fisier care poate fi de imagini sau sunete.Redarea sunetului atasat câmpului se face prin DblClick pe câmp si PLAY.
6.2. Câmpuri OLE
Câmpurile de tip OLE refera obiecte care nu sunt recunoscute direct de Windows. Ele sun create de constructori care permit si prelucrarea sau dezvoltarea lor.
Acestea pot fi documente Word, pagini de calcul Excel, pagini HTML, imagini realizate cu Adobe foto, CorelDraw sau PaintBrush. Daca se da DblClick pe un asemenea câmp se activeaza constructorul ( Word, Excel, Internet Explorer,..) care primeste adresa obiectului care va fi deschis si eventual dezvoltat si prelucrat. Se poate atasa astfel un CV redactat în Word care oricând poate fi afisat dar si modificat.
Atasarea acestor obiecte la câmpurile OLE se face astfel.
La modificarea unui obiect OLE:
6.3. Afisarea imaginilor si redarea sunetelor prin program
Afisarea imaginilor prin program se face folosind comanda:
RESTORE IMAGE FROM fisier.bmp daca se specifica direct fisierul sursa
BINARY camp daca se da un câmp BIN din fisier
Ex:
RESTORE IMAGE FROM BINARY poza
restore image from c:visualdbsamplesairbrln2
Un câmp BIN ce contine o poza poate fi atasat unui obiect Windows IMAGE, care poate fi considerat un container pentru poza, fiindca aceasta se va afisa la dimensiunile cerute.
DEFI IMAGE foto1 OF F1 AT 2,2 PROP width 20, height 10,;
DataSource ’BINARY Poza’
FILE fisier.bmp
Redarea sunetelor prin program se realizeaza prin comanda:
PLAY SOUND BINARY camp_sunet pentru sunet atasat la un câmp BIN
FILENAME fisier.wav pentru un sunet dintr-un fisier.wav
Ex:
PLAY SOUND BINARY sunet
PLAY SOUND filename c:visualdbsampleswelcome.wav
Completarea dinamica în program a unui câmp BIN se face prin comanda REPLACE:
REPLACE BINARY poza FROM fisier.bmp
REPLACE BINARY sunet FROM fisier.wav
Copierea unei poze sau sunet dintr-un câmp într-un fisier se face prin:
COPY BINARY poza TO fisier.bmp
COPY BINARY sunet TO fisier.wav
6.4. Afisare poze din câmp BIN
Pentru programul de meniuri Pmenu1 proiectat anterior vom plasa pe FORM un obiect IMAGE. O sa-i atasam un câmp poza din fisierul STUD pe evenimentul OnClick pe obiectul Image.
La deplasarea în fisier prin meniu (Next, Prev) sau cu Browse se va afisa poza studentului din înregistrarea curenta. In acest fel este posibil sa se selecteze o înregistrare din fisier pe baza pozei persoanei, pentru a afisa datele personale.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 243
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved