Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Foxpro


Index » educatie » » informatica » Foxpro
» Proiectarea meniurilor si a barelor cu instrumente - Visual FoxPro 6.0


Proiectarea meniurilor si a barelor cu instrumente - Visual FoxPro 6.0


Proiectarea meniurilor si a barelor cu instrumente

Meniurile si barele cu instrumente furnizeaza utilizatorilor o cale structurata si accesibila pentru a folosi comenzile si instrumentele continute in aplicatiile voastre. Planificarea si proiectarea adecvata a meniurilor si barelor cu instrumente va asigura ca functionalitatea aplicatiilor sa fie etalata si ca utilizatorii nu vor fi derutati cand vor incerca sa foloseasca aplicatiile voastre.

Utilizarea meniurilor in aplicatie

Adeseori utilizatorii navigheaza meniurile inainte de a consulta informatiile despre aplicatia voastra. Daca meniurile sunt bine proiectate, utilizatorii pot sa inteleaga aplicatia prin dezvoltarea unui model mental bazat pe organizarea si continutul meniului. Utilizand fereastra Menu Designer din Visual FoxPro, puteti crea meniuri care maresc calitatea aplicatiilor voastre.

Fiecare componenta a unei aplicatii Visual FoxPro poate avea propriul sistem de meniuri[1].



Crearea unui sistem de meniuri

Majoritatea lucrului necesar realizarii unui sistem de meniuri este facut in Menu Designer, unde creati meniurile, submeniurile si optiunile de meniu reale.

Fereastra Menu Designer

 


Crearea unui sistem de meniuri implica mai multe etape. Indiferent de marimea aplicatiei voastre si de complexitatea meniurilor pe care planificati sa le folositi, va trebui sa parcurgeti urmatoarele etape:

Planificarea si proiectarea sistemului.

In aceasta etapa decideti ce meniuri sunt necesare, unde apar ele in interfata, care dintre ele necesita submeniuri s.a.m.d.

Crearea meniurilor si submeniurilor.

Folosind Menu Designer se definesc titlurile de meniu, elementele de meniu si submeniurile.

Asignarea sarcinilor sistemului prin care acesta face ceea ce doriti.

Se specifica sarcinile pe care le vor executa meniurile, cum ar fi afisarea formularelor, a casetelor de dialog etc. In plus, se include codul de initializare (setup code) si codul de terminare (cleanup code), daca este necesar. Codul de initializare se executa inainte de definirea sistemului de meniuri si poate include cod pentru deschiderea fisierelor, declararea variabilelor sau plasare sistemului de meniuri pe o stiva astfel ca ulterior sa fie regasit. Codul de terminare contine cod ce va fi executat dupa codul de definire a meniului asigura sau interzice la selectarea meniurilor si a elementelor de meniu.

Generarea programului meniului.

Rularea programului pentru a testa sistemul de meniuri.

Planificarea unui sistem de meniuri

Utilitatea unei aplicatii poate sa depinda si de calitatea sistemului de meniuri al acesteia. Daca investiti timp pentru planificarea sistemului vostru de meniuri, utilizatorii il vor accepta cu promptitudune si il vor invata rapid.

Cand proiectati sistemul vostru de meniuri aveti in vedere urmatoarele reguli:

Organizati sistemul in concordanta cu sarcinile pe care le vor executa utilizatorii si nu potrivi ierarhiei programelor in aplicatie.

Utilizatorii isi pot forma un model mintal al modului in care este organizata aplicatia prin examinarea meniurilor si elementelor de meniu. Pentru a proiecta eficient meniurile si elementele de meniu, va trebui sa stiti cum gandesc utilizatorii despre modul de solutionare a sarcinilor lor.

Atribuiti fiecarui meniu un titlu cat mai sugestiv.

Organizati elementele de meniu potrivit frecventiei probabile de utilizare, secventei lor logice sau in ordinea lor alfabetica.

Daca nu puteti prevedea frecventa si nici ordinea logica, atunci organizati elementele de meniu in ordine alfabetica. Ordonarea alfabetica este utila in special cand un meniu contine mai mult de opt elemente. Cu un numar asa de mare de elemente, utilizatorul pierde timp cu scanarea lor; ordonarea alfabetica faciliteaza scanarea.

Plasati linii separatoare intre grupurile logice ale elementelor de meniu.

Limitati numarul elementelor pe un meniu la un ecran.

Daca numarul depaseste latimea ecranului, creati submeniuri pentru elementele de meniu corespunzatoare.

Alegeti taste de acces (caracterul subliniat sau marcat dintr-un meniu) si combinatii de taste pentru meniuri si elementle de meniu.

De exemplu, Alt+F poate fi o tasta de acces pentru un meniu Fisier.

Utilizati cuvinte care descriu cu claritate elementele de meniu.

Folositi cuvinte obisnuite in locul jargonului de calculator si utilizati verbe simple, active pentru a indica ce actiune va rezulta prin alegerea fiecarui element de meniu. Nu utilizati substantive ca verbe. In plus, descrieti elementele de meniu utilizand constructii asemanatoare. De exemplu, daca utilizati cuvinte singulare pentru toate elementele, atunci utilizati aceeasi parte a limbajului pentru toate acestea.

Folositi mixarea literelor mici si mari in elementele de meniu.

Crearea meniurilor, meniurilor contextuale, elementelor de meniu si submeniurilor

Dupa planificarea sistemului vostru de meniuri, il puteti crea cu Menu Designer. Puteti realiza meniuri, meniuri contextuale, elemente de meniu, submeniuri ale elementelor de meniu, linii care separa grupurile elementelor de meniu corelate s.a.m.d. Toate acestea vor fi descrise in continuare.

Crearea meniurilor

Puteti crea meniuri prin particularizarea sistemului de meniu existent in Visual FoxPro sau prin dezvoltarea unui meniu propriu. Pentru a incepe cu sistemul de meniu existent in Visual FoxPro, utilizati facilitatea Quick Menu.

Pentru a crea un sistem de meniuri cu Quick Menu

In fereastra Project Manager, selectati eticheta Other, selectati dosarul Menus si apoi executati clic pe butonul New.

In caseta de dialog New Menu executati clic pe butonul Menu.

Pe ecran va apare fereastra Menu Designer.

Deschideti meniul Menu si selectati optiunea Quick Menu.

Fereastra Menu Designer va contine acum informatii despre meniurile principale din Visual FoxPro. Rezultatul va arata astfel:

 


Particularizati sistemul de meniuri prin adaugarea si/sau modificarea elementelor de meniu.

De exemplu, inserati un meniu Clienti inaintea meniului Help prin executarea unui clic pe butonul din stanga meniului Help, selectarea butonului Insert si apoi tastarea cuvantului Clienti in coloana Prompt. Rezultatul va arata astfel:

 


Sugestie Daca aveti nevoie de un meniu Help, plasati-l ultimul in bara de meniu astfel incat utilizatorii sa-l poata gasi rapid.

Inainte de a utiliza meniul vostru intr-o aplicatie, acesta trebuie generat.

Pentru a genera un meniu

Se deschide meniul Menu si se selecteaza optiunea Generate.

Visual FoxPro va cere sa salvati sistemul vostru de meniuri intr-un fisier cu extensia .mnx. Acest fisier este o tabela care va stoca toate informatiile despre sistemul de meniuri. Dupa salvarea sistemului de meniuri, Visual FoxPro va solicita numele unui fisier de iesire cu extensia .mpr. Acest fisier va contine programul meniului generat.

Crearea unui meniu contextual

Meniurile contextuale apar cand executati clic-dreapta pe un control sau obiect si furnizeaza o cale rapida de etalare a tuturor functiilor ce se pot aplica numai acelui obiect. In Visual FoxPro puteti crea meniuri contextuale, pe care le puteti apoi atasa controalelor. De exemplu, puteti crea un meniu contextual care sa contina comenzile Cut, Copy si Paste care se va afisa cand utilizatorul executa clic-dreapta pe datele continute intr-un control Grid.

Pentru a crea un meniu contextual

In fereastra Project Manager, selectati eticheta Other, selectati dosarul Menus si apoi executati clic pe butonul New.

In caseta de dialog New Menu executati clic pe butonul Shortcut.

Apare fereastra Shortcut Designer.

De indata ce sunteti in fereastra Shortcut Designer, procesul de adaugare al elementelor de meniu este acelasi ca si pentru crearea meniurilor.

Crearea meniurilor SDI

Meniurile SDI sunt meniuri care apar in ferestrele de intefetelor pentru un singur document (single-document interface SDI). Pentru a crea un meniu SDI se indica pe timpul proiectarii meniului faptul ca meniul va fi utilizat pe un formular SDI. Altfel spus, procesul de creare a unui meniu SDI este identic cu cel pentru realizarea unui meniu normal.

Pentru a crea un meniu SDI

Cat timp este deschisa fereastra Menu Designer, deschideti meniul View, selectati optiunea General Options. In caseta de dialog General Options care apare, selectati caseta de validare Top-Level Form.

Crearea elementelor de meniu

Dupa crearea meniurilor, puteti plasa elementele de meniu in meniuri. Elementele de meniu pot reprezenta comenzi Visual FoxPro sau proceduri pe care vreti sa fie executate sau pot contine submeniuri care ofera elemente suplimentare de meniu.

Pentru a adauga elemente de meniu unui meniu

In coloana Prompt, selectati titlul meniului pentru care vreti sa adaugati elemente de meniu.

In caseta Result, selectati Submenu.

La dreapta coloanei Result apare un buton Create.

Executati clic pe butonul Create.

Apare o fereastra de priectare goala. In aceasta fereastra, introduceti elementele de meniu.

In coloana Prompt, tastati numele noilor elemente de meniu.

Crearea submeniurilor

Pentru fiecare element, puteti crea unn submeniu care va contine elemente suplimentare de meniu.

Pentru a crea un submeniu

In coloana Prompt, selectati elementul de meniu pentru care doriti sa adaugati un submeniu.

In caseta Result, selectati Submenu.

In dreapta coloanei apare un buton Create. Daca exista deja un submeniu, apare un buton Edit.

Executati clic pe butonul Create sau Edit.

In coloana Prompt, tastati numele noilor elemente de meniu.

Adaugarea prin program a meniurilor

Desi de regula creati meniurile si elementele de submeniu folosind Menu Designer, ele pot fi create si utilizand comenzi Visual FoxPro. De exemplu, puteti crea un meniu folosind comanda DEFINE PAD, un submeniu utilizand comanda DEFINE POPUP si elementele dintr-un meniu folsind un sir de comenzi DEFINE BAR

Gruparea elementelor de meniu

Pentru lizibilitate, separati grupurile elementelor de meniu similare prin linii de divizare. De exemplu, in Visual FoxPro, meniul Edit are o linie care separa comenzile Undo si Redo de comenzile Cut, Copy, Paste, Paste Special si Clear.

Elemente de meniu grupate

 


Pentru a grupa elementele de meniu

In coloana Prompt, tastati caracterele -. Aceasta creaza o linie de divizare.

Trageti butonul din stanga prompt-ului - pentru a muta linia de divizare pana cand aceasta apare in locul dorit.

Salvarea meniurilor ca HTML

Pe timpul cat creati un meniu, puteti folosi optiunea Save As HTML din meniul File pentru a salva continutul meniului ca un fisier HTML (Hypertext Markup Language) file.

Pentru a salva un meniu ca document HTML

Deschideti meniul in fereastra Menu Designer daca meniul nu este deja deschis.

In meniul File selectati Save As HTML. Daca meniul a fost deja deschis si s-au facut modificari in el, vi se solicita salvarea lui.

Apare caseta de dialog Save As HTML:

 


Selectati optiunea corespunzatoare activitatii pe care vreti sa o faceti in continuare asupra fisierului HTML si apoi executati clic pe butonul OK.

Optiunile casetei de dialog Save As HTML au urmatoarea destinatie:

Save file for later use - salveaza fisierul pentru a fi utilizat mai tarziu;

Save and edit file - salveaza fisierul si il deschide pentru a fi editat;

Save file and view in web browser - salveaza fisierul si il deschide in browserul web implicit al calculatorului vostru.

Includerea meniurilor in aplicatie

Dupa ce ati creat sistemul de meniuri il puteti include in aplicatia voastra.

Pentru a include un sistem de menuri in aplicatia voastra

Adaugati fisieul .mnx la proiectul vostru si apoi construiti aplicatia din proiect.

Atasarea meniurilor contextuale la controale

Dupa ce ati creat si generat un meniu contextual, il puteti atasa unui control. De obicei, meniurile contextuale apar cand utilizatorul executa clic-dreapta pe un control. Puteti atasa un meniu contextual unui control prin adaugarea unei cantitati mici de cod in evenimentul RightClick al controlului. Pentru aceasta executati urmatoarele operatii:

Selectati controlul caruia vreti sa-i atasati un meniu contextual.

In fereastra Properties, selectati eticheta Methods si apoi selectati RightClick Event.

In fereastra de cod ce se afiseaza, tastati DO meniu.MPR,unde meniu este numele fisierului ce contine meniul contextual.

Atasarea meniurilor SDI la formulare

Dupa cea ati creat un meniu SDI, il puteti atasa unui formular SDI. Pentru aceasta trebuie sa executati urmatoarele:

In fereastra Form Designer, setati proprietatea ShowWindow a formularului pe 2 - As Top Level Form

In evenimentul Init al formularului, apelati meniul SDI.

De exemplu, daca meniul vostru se numeste sdimenu.mpr, adaugati acest cod:

DO sdimenu.mpr WITH THIS,.T.

Asignarea actiunilor unui sistem de meniuri

Pe masura ce creati un sistem de meniuri, trebuie sa aveti in vedere usurinta accesului la el si sa asignati sarcinile acestuia. Trebuie sa atribuiti meniurilor si elementelor de meniu sarcini de executa, cum ar fi afisarea formularelor, a barelor cu instrumente, a altor sisteme de meniuri etc. De asemenea, trebuie sa definiti tastele de acces pentru a permite utilizarea sistemului de meniu si de la tastatura. Este bine ca unor elemente de meniu sa le asociati si combinatii de taste si sa autorizati sau sa interziceti accesul le elementele de meniu.

Asignarea tastelor de acces

Meniurile bine proiectate au taste de acces pentru accesa rapid de la tastatura funcyionalitatile meniurilor. Tasta de access este reprezentata printr-o litera subliniata sau marcata in titlul meniului sau elementului de meniu. De exemplu, meniul Visual FoxPro File foloseste "F" ca tasta de acces a meniului File.

Daca nu asignati o tasta de acces unui titlu de meniu sau element de meniu, Visual FoxPro atribuie automat prima litera ca tasta de access. De exemplu, meniul Clienti creat anterior nu are definita o tasta de acces si ca urmare Visual FoxPro va asigna prima litera (C) ca tasta de access.

Meniuri cu taste de acces

 


Pentru a specifica tasta de access pentru un meniu sau element de meniu

Tastati caracterele < in stanga literei pe care o doriti drept tasta access.

De exemplu, pentru a seta drept tasta de acces litera "l" din titlul meniului Clienti, inlocuiti Clienti cu C<lienti in coloana Prompt.

Remedieri Daca o tasta de acces pentru sistemul de meniuri nu lucreaza, verificati duplicarea tastelor de acces.

Asignarea combinatiilor de taste

Pe langa asignarea tastelor de acces, pentru meniuri si elementele de meniu puteti specifrica si combinatii de taste. Ca si tastele de acces, combinatiile de taste va permite selectarea unui meniu sau element de meniu de la tastatura. Diferenta dintre tastele de acces si combinatiile de taste este ca o combinatie de taste selecteaza un element de meniu fara a afisa mai intai meniul acesteia.

Combinatiile de taste pentru elementele de meniu din Visual FoxPro sunt combinatii dintre tasta Ctrl sau Alt si o alta tasta. De exemplu, puteti crea un nou fisier in Visual FoxPro prin Ctrl+N.

Pentru a specifica o combinatie de taste pentru un element de meniu

In coloana Prompt, selectati titlul de meniu sa element de meniu caruia ii atasati o combinatie de taste.

Executati clic pe butonul din coloana Options pentru a afisa dialogul Prompt Options.

 


In caseta Key Label, apasati o combinatie de taste pe care vreti s-o atasati.

Daca un element nu are asociat o combinatie de taste in caseta Key Label apare textul "(press the key)".

In caseta Key Text, adaugati textul care vreti sa apara in dreapta elementului de meniu.

In mod prestabilit, Visual FoxPro repeta continutul casetei Key Label in caseta Key Text. Totusi, puteti schimba textul din caseta Key Text daca vreti ca aplicatia voastra sa afiseze un text diferit. De exemplu, daca in Key Label si Key Text este afisat Ctrl+R, putei schimba valoarea din Key Text in ^R.

Nota La asocierea combinatiilor de taste trebuie avut grija ca in Visual FoxPro exista deja definite foarte multe combinatii de taste.

Permiterea si interzicerea accesului la elementele de meniu

Puteti permite sau interzice selectarea unui meniu sau element de meniu prin intermediul unei conditii logice.

Pentru a permite sau interzice selectarea unui meniu sau element de meni

In coloana Prompt, selectati titlul meniului sau al elementului de meniu caruia vreti sa-i asociati o conditie logica pentru a permite/interzice selectarea.

Executati clic pe butonul din coloana Options pentru a ase afisa caseta de dialog Prompt Options.

In caseta de dialog Prompt Options executati clic pe butonul din dreapta casetei Skip For.

Apare caseta de dialog Expression Builder:

 


In caseta de editare Skip For <expL>, tastati sau construiti expresia care va determina daca meniul sau elementul de meniu este accesibil sau inaccesibil.

Daca expresia este evaluata false (.F.), meniul sau elementul de meniu va fi accesibil. Daca rezultatul expresiei este true (.T.), meniul sau elementul de meniu este inaccesibil si nu poate fi selectat.

Nota Dupa ce sistemul de meniuri a fost afisat, puteti permite sau interzice accesul la meniuri sau elementele de meniu prin utilizarea comenzii SET SKIP OF

Marcarea starii unu element de meniu

Pe un meniu, prezenta unei bife langa un element de meniu indica faptul ca acesta este activat. De exemplu, daca plasati o bifa langa elementul Credit din meniul Clienti creat anterior, atunci Credit este activat.

Pe timpul executiei, puteti plasa o bifa langa un element de meniu prin utilizarea comenzii SET MARK OF

Asignarea actiunilor meniurilor si elementelor de meniu

Cand un meniu sau element de meniu este selectat, acesta executa o actiune, cum ar fi afisarea unui formular, a unei bare cu instrumente etc. Pentru a executa o actiune, un meniu sau element de meniu trebuie sa executa o comanda Visual FoxPro. Comanda poate fi continuta intr-o singura linie sau poate fi un apel de procedura.

Sugestie Daca va ganditi sa folositi un set de comenzi in diferite locuri, scrieti o procedura. Procedura trebuie sa fie denumita explicit si scrisa in codul de terminare al meniului sau undeva de unde poate fi referita de orice meniu sau obiect.

Executarea actiunilor prin comenzi

Pentru ca un emeniu sau element de meniu sa execute o actiune, ii puteti asigna o comanda. O comanda poate fi orice comanda Visual FoxPro valida, inclusiv un apel la un program ce in directorul specificat sau o procedura definita in optiunea Cleanup a casetei de dialog General Options.

Pentru a assigna o comanda unui meniu sau element de meniu

In coloana Prompt, selectati titlul meniului sau elementului de meniu corespunzator.

In caseta Result, selectati optiunea Command.

In caseta din dreapta lui Result, tastati comanda adecvata:

Asignarea unei comenzi unui meniu


Daca comanda apeleaza o procedura din codul cleanup al meniului, folositi comanda DO cu urmatoarea sintaxa:

DO nume_procedura IN nume_meniu

unde: nume_meniu specifica localizarea procedurii. Acesta este fisierul meniului si trebuie sa aiba extensia .mpr. Daca in comanda DO nu specificati localizarea prin nume_meniu, trebuie sa o indicati cu comanda SET PROCEDURE TO nume_meniu.mpr, daca procedura este in codul cleanup al meniului.

Afisarea formularelor si casetelor de dialog

Dintr-un meniu sau element de meniu, puteti afisa un formular compilat (sau o caseta de dialog) prin apelarea lui cu o comanda sau o procedura. De exemplu, pentru a afisa un formular numit "Comenzi", se foloseste comanda urmatoare:

DO FORM Comenzi

Sugestie Cand creati un meniu sau un element de meniu care afiseaza un formular sau caseta de dialog, puneti trei puncte la sfarsitul prompt-ului pentru a indica utilizatorului ca sunt necesare informatii suplimentare.

Punctele de suspensie dupa un element de meniu arata ca sunt necesare date

 


Afisarea barelor cu instrumente

Daca ati creat o bara proprie cu instrumente pentru o aplicatie, o puteti afisa prin apelarea ei dintr-un meniu sau element de meniu.

Executarea sarcinilor folosind proceduri

Unui meniu sau element de meniu ii puteti asigna o procedura. Modul de asignarea a unei proceduri depinde daca meniul sau elementul de meniu asre sau nu submeniuri.

Pentru a assigna o procedura unui meniu sau element de meniu fara submeniuri

In coloana Prompt, selectati titlul meniului sau elementului de meniu corespunzator.

In caseta Result, selectati optiunea Procedure.

In dreapta coloanei Result apare butonul Create. Daca anterior a fost definita o procedura, apare un buton Edit in locul butonului Create.

Executati clic pe butonul Create sau Edit.

Apare fereastra de editare a codului procedurii meniului sau elementului de meniu.

Asignarea unei proceduri unui meniu fara submeniuri

 


In fereastra de editare afisata, tastati codul necesar.

Nota Nu trebuie sa tastati comanda PROCEDURE in fereastra de editare a procedurii, deoarece Visual FoxPro genereaza aceasta declaratie in locul vostru. L:ocul in care trebuie sa plasati declaratia PROCEDURE este in codul cleanup.

Pentru a asigna o procedura unui meniu sau element de meniu cu submeniuri

In caseta Menu level, selectati nivelul care include meniul sau elementul de meniu necesar. De exemplu, sa presupunem ca sistemul vostru de meniuri include meniul Clienti creat anterior. Pentru a asigna o procedura meniului Clienti, se selecteaza nivelul "Menu Bar" in caseta Menu Level. In mod similar, pentru a assigna o procedura unui element din meniul Clienti, se selecteaza nivelul "Clienti" in caseta Menu Level.

Deschideti meniul View si selectati Menu Options.

Visual FoxPro afiseaza caseta de dialog Menu Options.

 


Assignati procedura dolosind unul din urmatoarele procedee:

    • Scrieti sau apelati procedura in caseta de editare Procedure.

- sau -

    • Executati clic pe butonul Edit si apoi pe butonul OK pentru a se deschide o fereastra separata de editare si scrieti sau apelati procedura.

Adaugarea codului Setup unui meniu sistem

Puteti particulariza un sistem de meniuri adaugand in el codul setup. Codul setup poate include cod pentru crearea mediului de date, definirea variabilelor, deschiderea fisierelor necesare si salvarea sau restaurarea sistemelor de meniu cu comenzile PUSH MENU si POP MENU

Pentru a adauga cod setup unui sistem de meniuri

Deschideti meniul View si selectati General Options.

Apare caseta de dialog General Options.

In zona Menu Code a casetei de dialog General Options, selectati caseta de validare Setup si apoi executati clic pe butonul OK.

In fereastra codului Setup, tastati codul setup corespunzator.

Modificarile facute se vor salva la inchiderea ferestrei Menu Designer.

Adaugarea codului Cleanup unui meniu sistem

Puteti adapta sistemul vostru de meniuri prin adaugarea codului cleanup. Codul cleanup contine de obicei cod care initializeaza accesibilitatea sau inaccesibilitatea meniurilor si elementelor de meniu. Cand generati si executati un program de meniu, codul setup si codul de definire al meniului este prelucrat inaintea codului cleanup.

Pentru a adauga codul cleanup unui sistem de meniuri

Deschideti meniul View si selectati General Options

Apare caseta de dialog General Options.

In zona Menu Code a casetei de dialog General Options, selectati caseta de validare Cleanup si apoi executati clic pe butonul OK.

In fereastra codului Cleanup, tastati codul cleanup corespunzator.

Modificarile facute se vor salva la inchiderea ferestrei Menu Designer.

Sugestie Daca meniul vostru este programul principal din aplicatie, includeti o comanda READ EVENTS in codul cleanup si asignati o comanda CLEAR EVENTS in comanda meniului care este utilizat pentru iesirea sistemului de meniu. Aceasta previne terminarea prematura a aplicatiei pe timpul executiei.

Controlul meniului pe timpul executiei

Fiecare meniu Visual FoxPro are doua nume, iar fiecare element de meniu are un nume si un numar. Visual FoxPro foloseste un nume in interfata utilizatorului si celalalt nume sau numar in programul generat al meniului (.mpr). Puteti utiliza aceste nume sau numere pentru a referi si controla meniurile si elementele de meniu pe timpul executiei. Daca nu furnizati un nume sau un numar atunci cand creati meniurile si elementele de meniu, Visual FoxPro creaza unul cand este generat programul meniului.

Atentie Evitati utilizarea numelor si numerelor generate de Visual FoxPro, deoarece ele se schimba la fiecare generare a programului meniului. Daca referiti un nume sau numar generat, codul vostru este posibil sa esueze.

In Menu Designer, coloana Prompt prezinta ceea ce apare in interfata utilizatorului, iar coloana din dreapta casetei Result prezinta ceea ce apare in programul generat.


Pentru a specifica un nume pentru menu pad

In coloana Prompt, selectati titlul meniului corespunzator.

Nota Coloana Result trebuie sa afiseze Command, Submenu sau Procedure - nu Pad Name.

Executati clic pe butonul din coloana Options pentru a se afisa caseta de dialog Prompt Options.

In caseta Pad Name, tastati numele pe care vreti sa-l folositi pentru referirea meniului in program.

Executati clic pe butonul OK pentru a reveni in Menu Designer.

Pentru a specifica un numar pentru un element de meniu

In coloana Prompt, selectati elementul de meniu corespunzator.

Nota Coloana Result trebuie sa afiseze Command, Submenu sau Procedure - nu Bar #.

Executati clic pe butonul din coloana Options pentru a se afisa caseta de dialog Prompt Options.

In caseta Bar #, tastati numarul pe care vreti sa-l folositi pentru referirea meniului in program.

Executati clic pe butonul OK pentru a reveni in Menu Designer.

Sugestie Daca folositi facilitatea Quick Menu, nu schimbati numele sau numerele pe care Visual FoxPro le furnizeaza pentru meniurile sistem si elementele de meniu; in caz contrar, veti obtine rezultate neprevazute la rularea programului generat al meniului.

Crearea barelor cu instrumente personalizate

Daca aplicatia voastra include actiuni repetitive pe care utilizatorii le vor folosi frecvent, puteti adauga bare proprii cu instrumente pentru a simplifica apelarea lor. De exemplu, daca utilizatorii de obicei tiparesc un raport prin selectarea unei comenzi de tiparire, puteti simplifica activitatea prin furnizarea unei bare cu instrumente avand un buton pentru tiparire.

Urmatoarele sectiuni descriu modul de realizare al barelor cu instrumente pentru aplicatiile voastre.

Definirea unei clase Toolbar

Daca vreti sa creati o bara cu instrumente care sa contina butoane ce nu se gasesc deja in barele cu instrumente existente, puteti face acest lucru prin definirea unei clase pentru bara proprie cu instrumente. Visual FoxPro furnizeaza o clasa de baza Toolbar din care puteti crea clasa necesara.

Dupa definirea clasei Toolbar, puteti adauga obiecte in clasa Toolbar, apoi definiti proprietatile, evenimentele si metodele barei proprii cu instrumente. La sfarsit, puteti adauga bara cu instrumente creata la un set de formulare.

Pentru a defini o clasa a barei proprii cu instrumente

In fereastra Project Manager, selectati eticheta Classes si apoi executati clic pe butonul New.

Apare caseta de dialog New Class.

In caseta Class Name, tastati un nume pentru aceasta clasa.

In caseta combinata Based On, selectati Toolbar pentrua utiliza clasa de baza Toolbar.

- sau -

Executati clic pe butonul din dreapta casetei Based On pentru a alege o alta clasa de bare cu instrumente.

In caseta Store In, tastati numele bibliotecii in care se va salva noua clasa.

- sau -

Executati clic pe butonul din dreapta casetei Store In pentru a alege o biblioteca existenta.

Adaugati obiecte in noua clasa a barei cu instrumente.

De exemplu, puteti stoca clasa tiparire bazata pe clasa de baza Toolbar in biblioteca inventar.

Crearea unei noi clase in caseta de dialog New Class

 


Cand ati terminat de completat informatiile in caseta de dialog New Class, executati clic pe butonul OK. Se va afisa fereastra Class Designer.

Noua bara proprie cu instrumente in fereastra Class Designer


De asemenea, clasa pentru bara cu instrumente poate fi definita si prin executarea uneia dintre urmatoarele operatii:

Deschizand meniul File si selectand optiunea New. In caseta de dialog New se selecteaza optiunea Class si apoi se executa clic pe butonul New file.

Utilizand comanda CREATE CLASS sau MODIFY CLASS

Definind clasa prin program utilizand comanda DEFINE CLASS

Adaugarea obiectelor in clasa barei propri cu instrumente

Dupa crearea clasei pentru bara proprie cu instrumente, puteti adauga obiecte in ea, incluzand orice obiecte suportate de Visual FoxPro. De exemplu, puteti adauga obiecte din bara instrumentelor Form Controls.

Pentru a adauga obiecte in clasa voastra cu instrumente

Deschideti biblioteca clasei care contine clasa barei propri cu instrumente si apoi deschideti clasa respectiva.

In bara cu instrumente Form Controls, selectati obiectul care vreti sa-l adaugati.

In bara proprie cu instrumente, dimensionati obiectul.

Repetati operatiile 2 si 3 pentru toate obiectele pe care vreti sa le plasati in bara proprie cu instrumente.

Daca este necesar, reorganizati obiectele din bara proprie cu instrumente.

De exemplu, le puteti dimensiona obiectele, muta prin tragerea lor, sterge prin apasarea tastei Delete sau adauga spatiu suplimentar intre ele prin inserarea obiectelor Separator din bara instrumentelor Form Controls.

Nota Puteti muta doar un singur obiect la un moment dat.

Setati proprietatile barei cu instrumente in fereastra Properties.

Salvati clasa barei proprii cu instrumente.

Sugestie Puteti adauga un bitmap sau icon pe un buton din bara cu instrumente prin setarea proprietatii Picture a acestuia.

Adaugarea barei proprii cu instrumente la un set de formulare

Dupa definirea unei clase a barei cu instrumente, puteti crea o bara cu instrumente din ea. Puteti coordona barele cu instrumentele si formularele folosind Form Designer sau scriind cod.

Coordonarea barelor cu instrumente si formularelor cu Form Designer

Puteti adauga o bara cu instrumente la un set de formulare astfel incat sa se deschida impreuna cu formularele setului de formulare. Nu puteti adauga o bara cu instrumente direct la un formular.

Pentru a adauga o bara cu instrumente la un set de formulare folosind Form Designer

Inregistrati si selectati biblioteca care contine clasa barei cu instrumente.

Deschideti setul de formulare cu care vreti sa folositi clasa barei cu instrumente, executati clic pe butonul View Classes din bara instrumentelor Form Controls si apoi selectati clasa barei cu instrumente din lista afisata.

In bara instrumentelor Form Controls selectati clasa barei cu instrumente.

Executati clic in Form Designer pentru a adauga bara cu instrumente si apoi trageti bara instrumentelor in pozitia adecvata acesteia.

Visual FoxPro adauga bara instrumentelor la setul de formulare. Daca nu este deschis un set de formulare, Visual FoxPro va cere sa deschideti unul.

Definiti actiunile barei cu instrumente si a butoanelor acesteia (se vor discuta ulterior in sectiunea "Definirea actiunilor barei cu instrumente").

Sugestie Pentru a determina clasa unui obiect, examinati ToolTip-ul acesteia din bara instrumentelor Form Controls.

Coordonarea barelor cu instrumente si a formularelor folosind cod

IPe langa utilizarea ferestrei Form Designer, adaugarea barelor cu instrumente la setul de formulare se poate face si prin cod.

Pentru a adauga o bara cu instrumente unui set de formulare folosind cod

In evenimentul Init al setului de formulare, folositi comanda SET CLASSLIB pentru a specifica biblioteca care contine clasa barei cu instrumente si apoi creati o bara cu instrumente din respectiva clasa in setul de formulare.

De exemplu, pentru a adauga si afisa bara instrumentelor tbrPrint, care se bazeaza pe clasa tiparire din biblioteca de clase inventar, adaugati urmatorul cod in evenimentul Init al setului de formulare:

SET CLASSLIB TO inventar
THIS.AddObject('tbrPrint','tiparire')
THIS.tbrPrint.Show

Nota Daca clasa barei cu instrumente nu defineste actiuni ale barei cu instrumente si ale butoanelor acestei, trebuie sa definiti actiunile in procedurile eveinementelor asociate barei cu instrumente si butoanelor acestei.

Exemplu: Crearea unei bare proprii cu instrumente

Puteti defini toate aspectele unei bare cu instrumente prin cod. De exemplu, daca adaugati urmatorul cod in evenimentul Init al unui set de formulare, atunci cand setul de formulare este incarcat Visual FoxPro creaza si afiseaza bara cu instrumente definita in cod. Aceasta bara cu instrumente contine doua butoane.

Bara cu instrumente cu doua butoane

 


Cand sunt selectate, aceste butoane vor schimba atributele fomtului formularului frmForm1 din setul de formulare.

Codul evenimentului Init al setului de formulare

Cod

Comentariu

THIS.AddObject('tbrTool1','mytoolbar')
THIS.tbrTool1.Show

Adauga o bara cu instrumente a clasei mytoolbar la setul de formulare curent si o face vizibila.

Codul de definire a clasei

Cod

Comentariu

DEFINE CLASS myToolBar AS TOOLBAR
ADD OBJECT cmdBold AS COMMANDBUTTON
ADD OBJECT sep1 AS SEPARATOR
ADD OBJECT cmdItalic AS COMMANDBUTTON

Incepe definirea clasei: o bara cu instrumente cu buton de comanda, un separator si un alt buton de comanda.

Left = 1
Top = 1
Width = 25
Caption = 'Form Attributes'

Stabileste proprietatile obiectului.

cmdBold.Caption = 'B'
cmdBold.Height = 1.7
cmdBold.Width = 10
cmdItalic.Caption = 'I'
cmdItalic.Height = 1.7
cmdItalic.Width = 10
cmdItalic.FontBold = .F.

Seteaza proprietatile controalelor. Remarcati ca aici nu este setata proprietatea Top sau Left pentru controalele de pe bara. Controalele de pe o bara cu instrumente sunt pozitionate automat in ordinea in care ele sunt adaugate. Proprietatea FontBold a lui cmdItalic este setata pe false (.F.), deaorece FontBold este implicit true (.T.

PROCEDURE Activate
THIS.cmdBold.FontBold = ;
THISFORMSET.frmForm1.FontBold
THIS.cmdItalic.FontItalic = ;
THISFORMSET.frmForm1.FontItalic
ENDPROC

Cand bara cu instrumente este activata, atributele fontului a celor doua butoane de comanda sunt setate pentru a reflecta setarile Bold si Italic ale lui frmForm1.

PROCEDURE cmdBold.CLICK
THISFORMSET.frmForm1.FontBold = ;
!THISFORMSET.frmForm1.FontBold
THIS.FontBold = ;
THISFORMSET.frmForm1.FontBold
ENDPROC

Cand utilizatorul executa clic pe cmdBold, setarea FontBold a lui frmForm1 este inversata si setarea FontBold a lui cmdBold este modificata pentru a carespunde acesteia.

PROCEDURE cmdItalic.CLICK
THISFORMSET.frmForm1.FontItalic = ;
!THISFORMSET.frmForm1.FontItalic
THIS.FontItalic = ;
THISFORMSET.frmForm1.FontItalic
ENDPROC

Cand utilizatorul executa clic pe cmdItalic, setarea FontItalic a lui frmForm1 este inversata si setarea FontItalic a lui cmdItalic este schimbata pentru a carespunde acesteia.

ENDDEFINE

Sfarsitul definirii clasei.

Setarea proprietatilor bare proprii de instrumente

In timp ce proiectati o bara proprie cu instrumente, puteti seta proprietatile acesteia. De exemplu, puteti stabili proprietatea Movable pentru a permite utilizatorului sa mute bara cu instrumente.

In plus, puteti utiliza metodele si evenimentele pentru a controla barele proprii cu instrumente. De exemplu, puteti folosi metoda Dock pentru a "parca" sau a "flota" o bara cu instrumente si puteti utiliza evenimentele BeforeDock si AfterDock pentru a controla ce se intampla inainte si dupa ce o bara cu instrumente este "parcata".

Definirea actiunilor barei cu instrumente

Dupa crearea unei bare cu instrumente, trebuie sa definiti actiunile asociate barei cu instrumente si obiectelor sale. De exemplu, trebuie sa definiti ce se intampla cand utilizatorul executa clic pe bara cu instrumente sau pe unul din butoanele acesteia.

Pentru a defini o actiune a barei cu instrumente

Selectati obiectul pentru care vreti sa definiti o actiune: bara cu instrumente sau unul din butoanele acesteia.

In fereastra Properties, selectati eticheta Methods.

Editati evenimentul corespunzator.

Adaugati codul care specifica actiunea.

In plus, puteti seta proprietatile si metodele barei cu instrumente si ale obiectelor sale.

Coordonarea meniurilor si barelor cu instrumente

Daca ati creat o bara cu instrumente, trebuie sa sincronizati cu comenzile de meniu cu butoanele corespunzatoare din bara cu instrumente. De exemplu, daca permiteti accesul la un buton de pe bara cu instrumente, trebuie sa permiteti accesul si la comanda de meniu corespunzatoare acestuia.

Trebuie sa proiectati si sa creati aplicatiile voastre pentru:

A executa anumite actiuni cand utilizatorul selecteaza butoanele barei cu instrumente si elementele de meniu asociate.

A coordina accesibilitatea/inaccesibilitatea butoanelor barei cu instrumente si a elementellor de meniu asociate.

Respectati acesti pasi generali atunci cand coordonati elementele de meniu si butoanele barei cu instrumente:

Creati o bara cu instrumente prin definirea unei clase a barei cu instrumente, adaugati butoanele de comanda necesare si includeti codul operational in metodele asociate cu evenimentele Click al butoanelor de comanda.

Creati meniul coordonat.

Adaugati bara de instrumente si meniul coordonat unui set de formulare.

Crearea meniului coordonat

Cand coordonati un meniu cu o bara cu instrumente, elementele de meniu rezolva aceleasi sarcini ca si butoanele barei cu instrumente si elementele de meniu sunt facute automat inaccesibile cand butonul barei cu instrumente este inactivat.

Pentru a crea un meniu care este coordonat cu o bara cu instrumente

In fereastra Menu Designer, creati un submeniu cu un prompt descriptiv pentru fiecare buton de pe bara instrumentelor.

In coloana Result a fiecarui element de submeniu, selectati Command.

Pentru fiecare element de submeniu, apelati codul asociat cu evenimentul Click ea butonului corespondent de pe bara instrumentelor.

D exemplu, daca numele butonului de pe bara instrumentelor este cmdA, adaugati urmatoarea linie de cod in caseta de editare a comenzii elementului de submeniu:

Formset.toolbar.cmdA.Click

Selectati butonul din coloana Options pentru a deschide caseta de dialog Prompt Options si apoi selectati butonul Skip For.

In fereastra Expression Builder, introduceti o expresie care sa indice ca optiunea de meniu va fi sarita cand butonul butonul de comanda al barei cu instrumente este inaccesibil.

De exemplu, daca numele butonului de pe bara instrumentelor este cmdA, introduceti urmatoarea expresie in caseta Skip For:

NOT formset.toolbar.cmdA.Enabled

Generati meniul.

Adaugati meniul setului de formulare cu bara de instrumente si rulati setul de formulare.

Cand utilizatorul deschide meniul, Visual FoxPro evalueaza conditia Skip For, inactivand elementul de meniu daca butonul de comanda corespunzator de pe bara instrumentelor este inaccesibil. Cand utilizatorul selecteaza un element de meniu, codul din evenimentul Click este executat.

Adaugarea barei cu instrumente si meniului coordonat unui set de formulare

Dupa ce ati creat o clasa a barei cu instrumente si un meniu care sunt destinate sa lucreaze impreuna, este usor sa le incorporati intr-un set de formulare.

Pentru a incorpora o bara de instrumente si un meniu coordonat intr-un set de formulare

Adaugati bara cu instrumente la setul de formularele prin unul din procedeele urmatoare:

Trageti clasa barei cu instrumente din Project Manager in Form Designer.

Inregistrati biblioteca clasei si adaugati bara cu instrumente pe setul de formulare din bara instrumentelor Form Controls.

In evenimentul Init al setului de formulare, includeti codul cu metoda AddObject pentru a adauga bara cu instrumente.

In evenimentul Load al setului de formulare, salvati meniul existent si rulati programul meniului vostru.

De exemplu, daca numele meniului vostru este meniu_propriu, includeti urmatoarele linii de cod care folosesc comenzile PUSH MENU si DO commands:

PUSH MENU _MSYSMENU    && Se salveaza meniul original
DO meniu_propriu.mpr    && Se lanseaza in executie meniul propriu

In evenimentul Unload al setului de formulare, restaurati meniul original utilizand comanda POP MENU

POP MENU _MSYSMENU    && Se restaureaza meniul original

Daca unele dintre comenzile meniului sunt utilizate mai des decat altele, puteti crea o bara cu instrumente pentru acele comenzi. Atunci, utilizatorii vor putea executa clic pe butoane daca au nevoie de acele comenzi. Totusi, daca realizati o bara cu instrumente, va trebui sa o sincronizati cu butoanele corespondente.

Testarea si depanarea sistemului de meniuri

Puteti previzualiza un sistem de meniuri pe masura ce-l proiectati sau il puteti testa si depana dupa generarea programului meniului.

Pentru a previzualiza un sistem de meniu pe timpul proiectarii

In fereastra Menu Designer, executati clic pe butonul Preview.

Cand executati clic pe butonul Preview, sistemul de meniuri pe care l-ati definit apare la partea superioara a ecranului. In plus, caseta de dialog Preview afiseaza numele fisierului (sau un nume temporar de fisier) sistemului de meniuri.

Previzualizarea unui sistem de meniu

 


Daca selectati un titlu de meniu sau element de meniu, acesta apare si in caseta de dialog Preview, impreuna cu comanda asignata acestuia, daca exista una.

Pentru a testa un sistem de meniuri

Deschideti meniul Menu si selectati Generate.

Daca ati facut schimbari in meniu, Visual FoxPro va solicita sa salvati modificarile.

In caseta de dialog Generate Menu, introduceti un nume pentru programul de meniu generat prin tastarea lui in caseta Output File sau executati clic pe butonul de langa caseta pentru a stabili locul unde se va salva programul generat.

 


Executati clic pe butonul Generate pentru a se produce fisierul programului de meniu cu extensia .mpr.

Deschideti meniul Program si selectati Do pentru a rula programul.

Atentie Daca modificati programul meniului generat (fisierul .mpr), veti pierde schimbarile atunci cand modificati meniul folosind fereastra Menu Designer si apoi regenerati programul meniului.

Daca programul de meniu nu functioneaza corect, folositi instrumentele de diagnosticare furnizate cu Visual FoxPro.

Remedieri Daca rulati o aplicatie (fisier .exe) in care programul principal este un meniu si aplicatia se termina imediat dupa afisarea meniului, includeti comanda READ EVENTS in codul cleanup. De asemenea, trebuie sa includeti CLEAR EVENTS in comanda de meniu prin care se iese din sistemul de meniuri.

Personalizarea unui sistem de meniuri

Dupa crearea unui sistem de meniuri de baza, il puteti particulariza. De exemplu, puteti crea mesaje ale barei de stare, defini localizarea meniului sau defini procedurile implicite.

Afisarea mesajelor barei de stare

Cand un meniu sau element de meniu este selectat, puteti afisa in bara de stare une mesaj care descrie optiunea. Asemenea mesaje ajuta utilizatorul prin adaugarea informatiilor despre meniul ales.

Pentru a afisa un mesaj cand este selectat une meniu sau element de meniu

In coloana Prompt, selectati titlul meniului sau elementului de meniu corespunzator.

Executati clic pe butonul din coloana Options pentru a se afisa caseta de dialog Prompt Options.

Executati clic pe butonul din dreapta casetei de text Message.

Apare caseta de dialog Expression Builder.

In caseta de editare Message <expr>, tastati mesajul adecvat inclus intre ghilimele.

Definirea dispunerii titlurilor de meniu

Puteti particulariza dispunerea titlurilor meniului definit de utilizator din aplicatiile voastre. Puteti preciza o dispunere relativa fata de sistemul de meniu activ prin alegerea optiunilor din caseta de dialog General Options. In plus, puteti specifica dispunerea titlurilor de meniu atunci cand utilizatorul editeaza un obiect vizual.

Pentru a specifica dispunerea relativa pentru titlurile meniului definit de utilizator

Deschideti meniul View si selectati General Options.

In zona Location a casetei de dialog General Options selectati optiunea adecvata: Replace, Append, Before sau After.

Visual FoxPro repozitioneaza toate titlurile de meniu pe care le-ati definit. Daca vreti sa repozitionati unele insa nu toate, trageti de butoanele pentru mutare (plasate in stanga titlului) ale titlurilor de meniu in fereastra Menu Designer.

In plus, puteti specifica localizarea titlurilor de meniu atunci cand utilizatorul editeaza un obiect in aplicatia voastra. Daca includeti un obiect si utilizatorul il activeaza, titlurile voastre de meniu nu vor apare pe bara de meniu rezultata in afara cazului cand indicati ca vreti ca ele sa apara.

Pentru a controla locul titlului de meniu pe timpul editarii vizuale a unui obiect

In coloana Prompt, selectati titlul de meniu corespunzator.

Executati clic pe butonul din coloana Options pentru a se afisa caseta de dialog Prompt Options.

Setati caseta de validare Negotiate.

Alegeti una din urmatoarele optiuni:

None - nu se plaseaza titlul meniului pe bara de meniu. Alegerea optiunii None este similara cu nealegerea niciunei optiuni.

Left - plaseaza titlul meniului in stanga grupului de titluri de pe bara de meniu.

Middle - plaseaza titlul meniului in centrul grupului de titluri de pe bara de meniu.

Right - plaseaza titlul meniului in dreapta grupului de titluri de pe bara de meniu.

Daca nu alegeti Left, Middle sau Right, titlul meniului nu apare pe bara de meniu cand utilizatorul editeaza un obiect.

Salvarea si restaurarea meniurilor

Puteti salva si restaura meniurile cu comenzile PUSH MENU si POP MENU. Plasarea pe stiva si scoaterea din stiva este utila cand vreti sa eliminati temporar un meniu, sa-l inlocuiti cu altul si apoi sa restaurati meniul original.

Numarul de meniuri pe care le puteti salva in menorie depinde numai de capacitatea memoriei.

Sugestie Memoria disponibila se verifica cu functia SYS(1016). De exemplu, pentru a verifica cata memorie foloseste sistemul vostru de meniuri, apelati SYS(1016), puneti meniul pe stiva si apoi apelati din nou SYS(1016)

Crearea unei proceduri implicite pentru sistemul de meniuri

Puteti crea o procedura globala care se aplica intregului sistem de meniuri al vostru. O asemenea procedura se ruleaza daca este selectat un meniu fara procedura asignata.

De exemplu, sa presupunem ca dezvoltati o aplicatie pentru care unele meniuri nu au submeniuri, proceduri s.a.m.d. Pentru aceste meniuri, puteti crea un fragment de cod care se va executa cand meniurile sunt selectate. De exemplu, puteti crea o procedura generala care include aceasta functie:

MESSAGEBOX('Facilitatea nu este inca disponibila')

Pentru a crea o procedura implicita

Deschideti sistemul de meniuri pe care-l proiectati.

In meniul View selectati optiunea General Options.

Asignati procedura executand una din operatiile:

Scrieti sau apelati o procedura in caseta Procedure.

- sau -

Executati clic pe butonul Edit si apoi pe butonul OK pentru a deschide o fereastra de editare separata si scrieti sau apelati o procedura.

Setarea meniului sistem

Puteti manipula meniurile care folosesc sistemul de meniuri Visual FoxPro prin comanda SET SYSMENU. Cu SET SYSMENU, puteti dezactiva meniurile voastre, adauga si elimina elemente din meniurile voastre, restaura meniurile implicite Visual FoxPro si controla accesul la meniurile voastre pe timpul executiei.



sistem de meniuri (menu sistem) - o combinatie formata dintr-o bara de meniu, titluri de meniu, meniu si elemente de meniu.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate