Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
exe)
Realizarea aplicatiei se face prin contruirea unui proiect VFP (generarea lui cu un wizard) si compilarea lui ca fisier .exe In directorul C:\F1 Manager se afla tabelele: circuit.dbf, impreuna cu circuit.fpt constructor.dbf, impreuna cu constructor.fpt driver.dbf, impreuna cu driver.fpt sponsor.dbf, impreuna cu sponsor.fpt concureaza.dbf, impreuna cu concureaza.fpt investeste.dbf, impreuna cu investeste.fpt Microsoft Visual FoxPro 9.0 si din fereastra Task Se lanseaza in executie Pane Manger se alege Create a new application Obs: In cazul in care fereastra Task Pane Manger nu este vizibila se apasa butonul Task Pane din bara de sus a aplicatiei VFP, ca in imaginea de mai jos:
Buton Task Pane fereastra Task Pane Manger Create a new application
Astfel se porneste un Wizard care ne ajuta in construirea aplicatiei. In fereastra Application Wizard nou aparuta se scrie numele proiectului F1 Manager in campul Project name, iar in campul Project file se specifica adresa pe hard unde este salvat proiectul. Se debifeaza optiunea Create project directory structure (fisierele proiectului vor fi puse toate in acelasi director (C:\F1 Manager) deci nu impartite in directoare de forma C:\F1 Manager\dir1, C:\F1 Manager\dir2). Vezi imaginea de mai jos:
fereastra Application Wizard campul Project name campul Project file Se debifeaza optiunea Create project directory structure
Se apasa butonul OK si Wizardul incepe generarea proiectului. Durata generarii depinde de performantele calculatorului si poate varia intre cateva secunde si cateva minute. In dreapta sus va aparea o fereastra de avertizare de forma:
In fereastra Application Builder, la tabul General in sectiunea Common Dialogs se vor bifa optiunile Splash Screen (ecran de inatmpinare), About dialog (fereastra
despre aplicatie) si Quick start (functii rapide). Aceste optiuni genereaza in aplicatie ferestrele de mai jos:
Splash screen
Quick Start About dialog (despre aplicatie) Se gaseste pe bara de meniu a apllicatie in Help About
In tabul numit Data, folosind butonul Select, navigam catre locatia (in cazul nostru C:\F1 Manager) unde avem tabelele circuit.dbf, constructor.dbf, driver.dbf si sponsor.dbf, concureaza.dbf, investeste.dbf (Nu si f1manager_app.dbf care a fost generat de wizard) si le vom adauga una cate una. Pentru primele patru bifam optiunile Form si Raport si vom obtine ca in imagine:
Optiunea Form nu se bifeaza pentru concureaza.dbf si investeste.dbf Analog pentru optiunea Report
Buton OK
Celelate taburi (Forms, Reports, Advanced) nu ne sunt deocamdata folositoare. Apasam OK si va aparea fereastra urmatoare:
Din nou OK si asteptam procesarea datelor. Apoi in fereastra Project Manager apasam butonul Build
butonul Build
In fereastra nou aparuta Build Options alegem Win32 executable/COM server (.exe) si apasam OK Alegem Win32
Salvam aplicatia in directorul C:\F1 Manager cu numele f1manager.exe ca in imaginea de mai jos:
Cu numele f1manager.exe
Se poate inchide proiectul iar aplicatia F1manager poate fi rulata acum din C:\F1 Manager cu click pe f1manager.exe
Forma (fereastra windows) pe care se lucreaza arata asa (Form Designer): Butonul de maximizare (proprietatea MaxButton) Titlul formei (proprietatea Caption) Marginile formei pot fi modificate prin tragere cu mouse-ul (sau proprietatile Width si Height)
Iar proprietatile ei pot fi observate in fereastra Properties: Camp de editare proprietate Proprietate selectata
Camp care indica detinatorull proprietatilor listate. In acest caz chiar forma Form1. Detalii in paragraful Procesul de adaugare
Personalizarea formei: Actiune Proprietate Modificarea titlului Caption Modificarea dimensiunilor Width Height Dezactivarea butonului de MaxButton maximizare Modificarea icon-ului Icon Dezactivarea modificarii BorderStyle dimensiunilor prin tragere cu mouse-ul in timpul executiei Adaugare poza de fundal Picture Noua valoare Clasamente Generale 506 419 .F. c:\F1 manager\driver_m.ico 1 - Fixed Single
c:\F1 manager\backgroundgeers.jpg
3.2 Salvarea formei Din meniul File alegeti Save as si salvati forma in directorul c:\F1 manager cu numele clasamente_generale (ceea ce va duce la aparitia a doua fisiere in directorul F1 Manager: clasamente_generale.sct, clasamente_generale.scx). Forma, in Form Designer arata ca in (a) si in Run Time ca in (b)
3.3 Rularea formei (modul Run Time) Din meniul Form alegeti Run Form sau din bara de sus folosind butonul: iar forma arata ca mai sus, cazul(b). In fereastra Command se poate observa comanda care lanseaza in executie aceasta forma: DO FORM "c:\f1 manager\clasamente_generale.scx" 3.4 Adaugarea de controale formei
Pentru aceasta vom folosi meniul Form Controls, cara arata ca mai jos. Daca nu este vizibil atunci din meniul View se alege Toolbars si apoi in fereastra nou aparuta se bifeaza optiunea Form Controls Adauga butoane
Adauga etichete
Prosesul de adaugare a unui nou obiect, selectat din form Controls, intr-o forma se desfasoara astfel: click stanga (fara a tine apasat butonul stang al mouseului) pe obiectul de adaugat din Form Controls (si observam modificarea cursorului mouse-ului) si apoi click stanga pe forma si, fara a elibera butonul stang al mouseului, se descrie un dreptunghi. Visual Fox Pro (VFP) atribuie implicit un nume obiectelor inserate in forma astfel Nume obiect Nume implicit Label1, Label2, . Eticheta (simbol in Form Controls: ) Command1, Command2, Buton (simbol in Form Controls: ) Picture1, Picture2, Imagine (simbol in Form Controls: ) Lista derulanta - ComboList (simbol in Combo1, Combo2, Form Controls: ) Line1, Line2, Linie (simbol in Form Controls: ) Se observa ca fereastra de proprietati are un camp in care se specifica numele obiectului caruia se aplica proprietatile respective:
Pentru selectarea obiectelor de dimensiuni reduse sau foarte apropiate (linii cu efect de umbrire: mai jos: line1 si line2) se poate folosi fereastra Properties (si nu click pe obiectul de modificat din forma).
In forma clasamente generale vom adauga: - 3 imagini - 4 linii (grupate cate 2 pentru a creea un efect de umbra) - 3 etichete - 4 butoane Adaugare obiecte: pentru fiecare obiect se selecteaza din meniul Form Controls obiectul respectiv, se insereaza in forma (prin descrierea unui dreptunghi) si din fereastra de Properties se modifica proprietatile corespunzatoare, conform cu tabelul: Nume Obiect Image1 Nume Proprietate Picture Top Left Picture Top Left Picture Top Left Left Top Height Width BorderColor Left Top Height Width Valoare c:\F1 manager\sp5.jpg 69 11 c:\F1 manager\f1m.jpg 5 11 c:\F1 manager\fia.jpg 5 455 1 365 0 500 0,0,0 3 366 0 500
Image2
Image3
Line1
Line2
Line3
Line4
Command1
Command2
Command3
Command4
Label1
BorderColor Left Top Height Width BorderColor Left Top Height Width BorderColor Caption Left Top Height Width Cancel Caption Left Top Height Width Caption Left Top Height Width Caption Left Top Height Width Caption AutoSize BackStyle FontSize ForeColor Left Top WordWrap Alignment Height Width Caption AutoSize BackStyle FontSize
Label2
255,255,255 1 58 0 500 0,0,0 3 59 0 500 255,255,255 Comanda se executa si Close la apasarea butonului 405 Esc de pe tastatura 384 (nu numai cand se da 24 click pe buton) 84 .T. - True Clasament* sponsori 168 228 25 205 Clasament general piloti 168 132 25 205 Clasament general constructori 168 180 25 205 (*) In ordinea sumelor cu care au sponsorizat constructorii. .F. - False 0 - Transparent 7 192,192,192 181 264 .T. - True 2 Center 32 182 Clasamente generale .T. - True 0 - Transparent 14
Label 3
ForeColor Left Top FontBold Left Top Height Width BackColor Caption
In cazul in care se doreste ca anumite obiecte sa fie in spatele sau in fata altora se foloseste meniul Layout. Activarea lui se face din meniul View, optiunea Toolbars si din fereastra nou aparuta se bifeaza Layout. Meniul arata asa:
Butonul Send to Back trece obiectul selectat (care acopera) in spatele celorlalte obiecte din forma
Astfel se selecteaza eticheta Label3 si cu un click pe butonul Send to Back din meniul Layout se aduce in fata butonul Close. ) si se ruleaza ( Se salveaza forma ( Save si respectiv Form Run Form. Forma arata asa: ), sau echivalent din meniu File
3.5 Adaugarea de comenzi pentru butoanele inserate. Adaugarea de comenzi pentru un buton inserat in forma se face astfel: dubluclick pe buton iar in fereastra noua aparuta se scriu liniile de cod (comenzile) ce trebuie executate. Trebuie avut in vedere ca in campul Procedure sa fie valoarea Click, ceea ce inseamna ca respectivele linii de cod se executa cand utilizatorul face click pe butonul respectiv. In forma de mai sus (calsamente generale) codul pentru butonul Clasament general piloti (care se numeste command3) este urmatorul:
Liniile de cod sunt aferente procedurii click (actiunii de click pe buton a utilizatorului)
Linii de cod
care executa programul top_p.prg din directorul f1 manager. Pentru ca fereastra browse care arata rezultatul programului top_p.prg imprumuta dimensiunile mai reduse ale formei (clasamente_generale) unde este gazduit butonul care o generaeza, s-au adaugat linii de cod pentru marirea formei si apoi revenirea acesteia la dimensiunile initiale. Linii care maresc dimensiunile formei:
thisform.Height = 419 thisform.Width = 593
De asemenea se modifica si titlul ferestrei browse cu clasamente generale. Cand se afiseaza situatia pilotilor titlul ferestrei va fi Clasament general piloti care este dat de
thisform.Caption ="Clasament general piloti"
In mod analog liniile de cod care se adauga pentru butonul Clasament general constructori sunt:
thisform.Caption ="Clasament general constructori" thisform.Height = 419 thisform.Width = 593 DO "c:\f1 manager\top_c.prg" thisform.Height = 419 thisform.Width = 506 thisform.Caption ="Clasamente"
In ambele cazuri codul este adaugat pentru procedura Click. Un caz mai deosebit este reprezentat de formele unde click-ul pe un buton determina popularea unei liste derulante (combo) cu anumite valori ce vor reprezenta parametrii de intrare pentru programe. In cazul formei piloti F1 un click pe butonul Detalii puncte piloti pe circuite determina aparitie unei liste de piloti.
SCAN *parcurg de la inceput toate inregistrarile din temp thisform.combo2.AddItem(TRIM(temp.nume_p)+ " " +TRIM(temp.prenume_p)) *adaug in lista derulanta combo2 nume prenume ENDSCAN DROP TABLE temp *sterg tabelul temp thisform.combo2.DisplayValue="Alegeti pilotul ..." CLOSE TABLES All * inchid toate tabelele thisform.combo1.Visible = .F. *ma asigur ca cealalta lista nu e viz thisform.combo2.Visible = .T. *combo2 devine vizibila
Alegerea unei valori (de forma nume prenume) din lista derulanta 2 implica o actiune de click. Deci pentru obiectul combo2 trebuie definite anumite comenzi cand utilizatorul face click pe o valoare din lista. In principiu, click-ul utilizatorului trebuie sa trimita catre un program o valoare pe baza careia se vor afisa anumite rezultate. In modul form designer se face dublu click pe obiectul combo2, iar in fereastra nou aparuta se selecteaza in campul procedure valoarea Click si se insereaza codul de mai jos: Modul de lucru este Form Designer (constructie a formei)
Cod adaugat
Cod de inserat
IF LEFT(thisform.combo2.Text,7)="Alegeti" then WAIT "Eroare: Alegerea nu este valida !" WINDOW AT 20,70 NOWAIT * daca se da click pe Alegeti pilotul ... informez utilizatorul ca * alegerea nu e valida ELSE * daca a dat click pe numele unui circuit
thisform.combo2.Visible= .F. *ascund lista derulanta pt ca *acum nu-mi m-ai trebuie, s-a facut o alegere CLOSE TABLES all USE driver nr_max_p=50 * nr maxim de piloti cu care lucreaza aplicatia DIMENSION myAr(nr_max_p,2) *definesc o matrice cu 50 lin si 2 col in * care inregistrarile sunt de forma * myAr(1,1)=nume prenume, myAr(1,2)= cod_p SELECT cod_p,TRIM(nume_p)+" "+TRIM(prenume_p); from driver; ORDER BY 2; INTO ARRAY myAr *salvez in myAr sub forma de mai sus USE FOR gn=1 TO nr_max_p IF thisform.combo2.Value = TRIM(myAr(gn,2)) then *caut numele (myAr(nume prenume, x)) pe care s-a dat click thisform.Caption ="Detalii puncte pilot: " + TRIM(myAr(gn,2)) DO program5.prg WITH myAr(gn,1)*trimit programului codul pilotului (x) *<<with>> spune ca program5 se executa cu argumentul myAr(gn,1) thisform.Caption ="Clasamente" exit endif ENDFOR CLOSE ALL endif
Forme necesare aplicatiei F1 Manager: circuit: realizarea parcurgerea in ordine alfabetica a circuitelor existente in baza de date circuit.dbf
constructor: realizarea parcurgerea in ordine alfabetica a constructorilor existenti in baza de date constructor.dbf
driver: realizarea parcurgerea in ordine alfabetica a pilotilor existenti in baza de date driver.dbf
sponsor: realizarea parcurgerea in ordine alfabetica a sponsorilor existenti in baza de date sponsor.dbf
3.6 Adaugarea formelor la proiect Dublu-click pe f1manager.pjt si din fereastra Project Manager alegem al 3-a tab, numit Docs. Click pe Forms si apoi utilizand butonul Add se adauga formele respective Click pentru a adauga forme Click pe forma respectiva
Dublu-click pe
app_standardtoolbar
Apasam shift (si tinem apasat) si facem click stanga pe toate butoanele din toolbar, apoi din fereastra Properties alegem proprietatea Visible pe care o facem false (valoare .F.-False). Adica nu dorim ca butoanele acestea sa apara in aplicatie.
5. Recompilarea aplicatiei
Vom insera 5 butoane, din care al patrulea va avea doar rol de evidentiere pentru al 5lea buton
Buton 4 Buton 5
Caption Alignment AutoSize DisabledBack Color DisabledFore Color ForeColor Height Picture
Buton1 Piloti
Buton2 Buton3 Constructori Sponsori 1 Middle Right .T. -True 192,192,192 192,192,192 255,255,255 30
c:\f1 manager\b2.j pg
c:\f1 manager\b3.jpg
c:\f1 manager\b4.jpg
c:\f1 manager\b1.jpg
12 Center of control positioned underlying caption PicturePositio n DO FORM DO FORM "c:\f1 DO FORM DO FORM "c:\f1 Click
"c:\f1 manager\pilot i.scx" manager\construct ori.scx" "c:\f1 manager\sponso ri.scx" manager\clasamente_gen erale.scx"
Inregistrarea in meniu In fereastra Project Manager, selectam tabul Other apoi click pe semnul + (plus) din dreptul scrisului Menus ( ), apoi dublu-click pe f1manager_main.
Stergem meniurile Tools, Favorites si Window prin click pe meniul respectiv si apoi click pe butonul Delete (din dreapta) .
Sau completam numele noului item in dreptunghiul alb. Click pe dreptunghiul alb completam \<Quick Start, apoi click pe Submeniu si alegem optiunea command si completam APP_GLOBAL.DoStartupForm() ca mai jos:
Scrierea \<Quick Start implica shortcut-ul din tastatura AltQ pentru a accesa acest meniu
Mai inseram un intem: completam Clasamente generale in dreptunghiul alb si il apoi tras in sus sau in jos) dupa Quick Start. In coloana pozitionam (cu clic pe Result alegem optiunea submeniu si apoi click pe butonul Create ( ), ca mai jos: Click pe Create pentru a creea un submeniu
Coloana Prompt
Coloana Result
Revenirea la nivelul anterior (de sus) se face prin selectarea optiunii Menu Bar din campul Menu Level Revenirea la meniul superior
In mod analog se mai insereaza doua meniuri: Detalii si Administrare, ca mai jos:
\<Constructori
Procedure
C\<ircuite
Procedure
\<Sponsori
Procedure
Valoarea \- insereaza o linie de separare ( meniului (se poate obtine si prin click pe butonul Inser Bar )
) intre elementele
Submeniul concureaza: Prompt \<Up-date relatie \<Vezi inregistrari Result Procedure Procedure Create / Edit
DO FORM "c:\f1 manager\concureaza_up.scx" CLOSE ALL USE concureaza EXCLUSIVE
Submeniul concureaza
Submeniul investeste: Prompt \<Up-date relatie \<Vezi inregistrari Result Procedure Procedure Create / Edit
DO FORM "c:\f1 manager\investeste_up.scx" CLOSE ALL USE investeste EXCLUSIVE append CLOSE ALL
Submeniul investeste
Create / Edit
DO FORM "c:\f1 manager\web.scx" APP_GLOBAL.DoAboutBox()
Pentru modificarea formei de intampinare (splash screen) trebuie editat (dublu click) app_splash din Project Manager, tabul Classes, categoria f1manager_app (click pe semnul + [plus])
In forma app_splash inseram o imagine (Image1) cu proprietatile: Height: 283 Left: 0 Picture: c:\f1 manager\sp.jpg Top: 1 Width: 304
a)
b)
Click pe Build
atunci din Tools submeniul Options..., tabul File Locations se cauta in lista Menu Builder. Apoi click Modify si folosind butonul se navigheaza catre locatia fisierului genmenu.prg. Implicit acesta se gaseste in c:\program files\microsoft visual foxpro 9\genmenu.prg
Apoi se reia procesul de constructie a fisierului .exe si totul ar trebui sa mearga bine.