Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

Meniuri si obiecte multimedia

calculatoare



+ Font mai mare | - Font mai mic



MENIURI si OBIECTE MULTIMEDIA


1. Definire si utilizare meniuri bara (PAD)

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

  • Text
  • Meniu bara (orizontal)
  • Meniu popup  (vertical)

Meniuri Windows

  • Meniu popup
  • Obiecte de interfata grafica

Definirea unor meniuri în care selectia se face cu sageti si ENTER (ca în Norton Comander) se poate realiza în dBASE utili­zâ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:

  • textul continut ce se va specifica prin clauza PROMPT
  • coordonatele primului caracter al textului
  • functia ce se executa la selectia pad-ului, care poate fi o comanda dBASE, inclusiv DO procedura
  • mesajul explicativ afisat pe ultima linie a ecranului

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

2. Definire si utilizare meniuri popup


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;

  • de definire meniu (DEFINE POPUP), care se pastreaza in memorie
  • definire procedura de selectie asociata (ON SELECT POPUP) acti­vata la apasarea tastei ENTER, dupa pozitionarea pe linia dorita.
  • activare meniu (ACTIVATE POPUP), care afiseaza meniul pe ecran;
  • deactivare meniu (DEACTIV POPUP), care sterge de pe ecran meniul fara al sterge din memorie;
  • stergere meniuri de pe ecran si din memorie (CLEAR MENU)
  • afiseaza meniul pentru verificare ( SHOW MENU)

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 mesa­jul 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 proce­dura 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 oare­care 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.

3. Meniuri combinate


Pentru programul de evidenta a studentilor, prezentat ante­rior 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

4. Meniuri Windows


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;

  • Navigator grupa Forms si Untitled Menu-Designer
  • Bara de meniu principal File/New/Menu
  • Speed Bar si     Menu
  • Fereastra Command   CREATE MENU

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:

  1. Apare in fereastra primul meniu si se scrie FILE – numele meniului
  2. Se tasteaza sageata verticala si apare prima bara unde scriem &Insert, apoi urmatoarele bare unde scriem &List si &Close. Unde semnul & indica caracterul de selectie rapida si va fi subliniat în meniul afisat.
  3. Se da click pe File si Tab pentru a trece la urmatorul meniu. Se selecteaza din bara de meniu Menu si Insert Edit si se vor insera  automat comenzile de editare Windows Undo, Cut, Copy, Paste cu numele de meniu Edit.
  4. Se da Tab (nou meniu) si se selecteaza din Menu Insert Windows, care ne va permite în timpul rularii afisarea ferestrelor deschise pentru a le selecta ( ca si Windows din meniul principal dBase)
  5. Se da Tab si se completeaza meniul &Record cu barele &Next, &Prev si &Disp.
  6. Se selecteaza pe rând câte o bara din meniurile definite (exceptând Edit si Windows) si cu paleta de proprietati Events i se va asocia câte o procedura.
  7. La închiderea ferestrei Menu Designer se va da meniului proiectat un nume, care va avea ex: Meniu1.mnu si dupa compilare se plaseaza în grupul Forms.
  8. Meniul proiectat se asociaza unui Form în proprietatea MenuFile din Inspector.
  9. La lansarea Form-ului pe care se plaseaza meniul se va afisa meniul în locul barei principale de meniu ( nu pe Form).
  10. Selectând un meniu se vor afisa barele componente care pot fi selectate cu click de mouse pentru a activa procedurile asociate.

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)



6. Definire si utilizare obiecte multimedia


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:

  • câmpul BIN Poza ce va contine poza studentului
  • câmpul OLE Car ce va contine o caricatura executata în PaintBrash

Adaugarea unei poze se face prin:

  • Se deschide fisierul si se da Browse.
  • Se selecteaza câmpul BIN Poza pentru un student cu DblClick   sau F9
  • Apare fereastra Empty Binary Field în care se selecteaza Image Viewer si OK.
  • Va apare fereastra Image Viewer în care se introduce imaginea selectata cu FILE/Insert From File si se cauta imaginea din orice director si OK.
  • Inchizând fereastra, poza ramâne atasata câmpului si se afiseaza cu DblCick.

La fel se procedeaza si la schimbarea unei poze.




Pentru adaugare fisier de sunet la un câmp BIN

  • se selecteaza Sound Player si OK
  • va apare Stop si Play.
  • se selecteaza fisierul de sunet (.wav) cu:

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.

  • Se da Dblclick pe câmpul OLE ce trebuie initializat sau modificat.
  • Apare fereastra OLE Viewer
  • Se selecteaza constructorul cu EDIT/Insert OLE (în cazul nostru PaintBrush)
  • Se creeaza sau se modifica obiectul
  • La închiderea obiectului se va memora legatura în câmpul OLE din fisier.

La modificarea unui obiect OLE:

  • se da DblClick pe câmpul OLE ce contine obiectul
  • obiectul va fi afisat într-o fereastra
  • se da DblClick pe fereastra ce contine obiectul si se va activa programul constructor (PaintBrush în exemplul nostru)
  • se modifica obiectul si se închide programul constructor memorând în câmp legatura spre noul obiect modificat 



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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 243
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved