Crearea de meniuri și bare de instrumente la Lazăr

ActionList ca bază a interfeței cu utilizatorul

Oricine a trebuit să dezvolte o interfață grafică de utilizator, cu care se confruntă cu faptul că există unele principii general acceptate ale construcției sale. În special, aproape fiecare fereastră are un meniu și bara de instrumente. De regulă, sunt situate pe butoanele barei de instrumente care se suprapun elementele de meniu cel mai frecvent utilizate. În plus, pentru comoditate, unele dintre principalele elemente de meniu pot fi duplicate în meniul contextual care apare atunci când faceți clic-dreapta pe un alt formular de control.

Desigur, cu o astfel de problemă duplicarea repetată adăugarea și modificarea comenzilor: una și este necesară aceeași acțiune pentru a descrie câteva ori. Acesta a fost atunci, și ne va ajuta ActionList, mai precis, elementele constitutive ale acțiunii. Aceste elemente acumulează toate comune proprietățile elementelor de meniu și butoane, precum și ne permite să determinăm manipulare eveniment comune, care va fi activat de fiecare dată când activarea unuia dintre elementele care se referă la acțiune.

Mai mult decât atât, în timpul executării programului, putem schimba proprietățile oricărui element de acțiune și modificările sunt propagate automat la toate componentele conectate. De exemplu, dacă setați proprietatea Enabled False într-unul dintre elementele acțiunii, toate componentele aferente devin indisponibile.

Înarmat cu astfel de cunoștințe valoroase, să creeze un nou proiect în Lazarus și puneți-l pe principală (și numai) sub formă de componente și StaticText ActionList. Primul dintre acestea vor fi folosite pentru a indica activarea diferitelor elemente din meniu și butoanele din bara de instrumente, prin urmare, crește fontul pentru a vedea mai bine. Al doilea va oferi cinci elemente de acțiune, va crea pentru ei manipulare OnExecute evenimente în care vom atribui proprietatea Caption a textului nostru StaticText simplu, care spune care a fost realizată o acțiune.

Crearea de meniuri și bare de instrumente la Lazăr
Cu toate acestea, fără componenta ActionList asociată nu se manifestă, și, prin urmare, inutil. Dă sens existenței sale pentru a ajuta cu elementele lor de meniu și bara de instrumente cu butoane.

Crearea meniului principal

Adăugați o componentă MainMenu pe formularul de sine, de a crea un element de nivel superior 3 și în fiecare dintre acestea se adaugă un submeniu de 1-2 puncte, astfel încât în ​​toate submeniuri a primit un total de 5 puncte. Proprietatea de acțiune a fiecăreia dintre aceste cinci elemente, selectați elementele de ActionList noastre. Proprietățile elementelor de meniu, cum ar fi Caption, va varia în funcție de acțiunea selectată. Meniul este afișat în partea de sus a formularului, așa cum ar trebui.

Crearea de meniuri și bare de instrumente la Lazăr

Crearea unui meniu contextual

meniul contextual, sau, cu alte cuvinte, un meniu pop-up - și element de transfer foarte convenabil. Adăugarea-l într-o formă similară cu adăugarea unui meniu principal, cu singura diferență că are o structură verticală, și nu neapărat numai: aproape fiecare componentă a formularului, puteți seta meniul contextual. La fel ca meniul principal, pentru a adăuga la meniul contextual 5 puncte, în timp ce elementul pentru care noi declarăm forma în sine. Aceste forme de proprietate PopupMenu atribui numai că a pregătit meniul contextual.

Crearea de meniuri și bare de instrumente la Lazăr

Crearea unei bare de instrumente

Bara de instrumente, fără îndoială, - cea mai dificilă parte a interfeței, mai ales dacă vrem să-l facă frumos, confortabil și funcțional. Ca bază să luăm TToolBar nu primitivă, dar panoul de TPanel, care va fi adăugarea de diverse componente. Că panoul nostru a fost exact ca bara de instrumente, setați proprietatea Aliniere în ALTOP sa. Deci, ea se întindea de-a lungul frontierei de sus a ferestrei disponibile. Acum, adăugați la panoul are cinci butoane TSpeedButton și un alt panou pe care să plaseze o listă drop-down și un buton simplu TButton. Toate butoanele și panoul Align Left, Align setarea proprietăților lor în alLeft și o mică întindere. Ar trebui să arate ceva de genul asta:

Crearea de meniuri și bare de instrumente la Lazăr
Vă întreb, în ​​cazul în care a făcut piktorgammy pe butoanele? Le-am pus acolo manual. De fapt, pentru a controla pictogramele de butoane și elemente de meniu pot fi utilizate componente TImageList. Cu toate acestea, pe de o parte, acest lucru nu este o sarcină banală, deoarece pentru butoane și imagini diferite dimensiuni folosind meniuri, iar pe de altă parte - în punerea în aplicare a TImageList Lazăr, din păcate, nu este încă finalizată.

Să examinăm acum mai detaliat TPanel componenta propriu-zisă. În acest caz, suntem cel mai interesat, ca cel mai estetic și eficient găzdui panoul de alte componente. TPanel oferă o mulțime de oportunități pentru asta. În primul rând, acesta poate fi plasat pe nu numai cheile, ci și alte componente, cum ar fi panourile suplimentare care pot conține elemente care nu necesită scalare. Amintiți-vă că ne aliniem toate componentele copilului la stânga, iar acum acestea sunt la același nivel unul cu celălalt și de a schimba înălțimea, repetând înălțimea panoului? Deci: lista drop-down și butonul realizate folosind schimbarea nu ar trebui să schimbe nici dimensiunea, nici poziția relativă a anula. Acesta este motivul pentru care sunt plasate în interiorul unui panou suplimentar.

În ceea ce privește aspectul și plasarea componentelor încorporate, panoul are un set de proprietăți pe care le puteți schimba toate acestea într-o gamă destul de largă. Pentru a începe, încercați să experimenteze cu proprietăți BevelOuter BevelInner, care definesc viziunea panoului de cadru. Prin selectarea diferitelor combinații ale acestor proprietăți pot fi atinse rezultate destul de bizare. Alte proprietăți importante sunt diferitele padding și frontiera. Iată cum unele dintre ele afectează amplasarea componentelor în compoziția panoului:

Crearea de meniuri și bare de instrumente la Lazăr

Dar asta nu e tot. Să umple lista verticală cu următoarele linii: Apoi, procedurile zaprogrammiruem evenimentului și o listă de butoane ca făcut în lista de mai sus. Să rula programul și alegând un rând diferit în listă, asigurați-vă că punctele relevante din meniul principal și contextual precum și butoanele din bara de instrumente dispar sau devin inaccesibile. Un astfel de comportament a interfeței este destul de utilă, de exemplu, punerea în aplicare a sistemului de separare a drepturilor de acces.