Continuăm să ne înfrângem în sălbăticia și în complexitatea controalelor cu panglici. Astăzi, ordinea de zi stabilește controlul Ribbon pentru populația vorbitor de limbă rusă, plus un pic de creativitate în ceea ce privește crearea temelor proprii pentru controlul panglicilor.
Amintiți-vă pe cineva de la cititorii blogului, întrebarea a fost "Cum se rostește meniul Costumize Dialog?". Să înțelegem. La urma urmei, nu cad cadre din tavan și sunt introduse în meniul însuși?
Cea mai ușoară cale de a rezolva astfel de probleme este să căutați în dosar
C: \ Program Files \ Embarcadero \ RAD Studio \ 7.0 \ lib \
și căutați un modul cu un nume, cum ar fi RibbonSrt sau RibbonConst. La urma urmei, dezvoltatorii trebuie să respecte toate regulile de scriere a codului, inclusiv evitarea utilizării șirului și, dacă este posibil, a altor constante în corpurile de proceduri și funcții. Deschidem dosarul și chiar urmărim un fișier minunat RibbonConsts.dcu. Fișierul cu același nume, dar cu extensia * .pas se află în dosar
C: \ Fișierele programului \ Embarcadero \ RAD Studio \ 7.0 \ source \ Win32 \ vcl \
După cum puteți vedea, totul este simplu și nu necesită abilități de programare speciale. Numai să puteți utiliza un interpret.
Și acum ne întoarcem la întrebarea, pe care eu, pentru propria mea interes nesănătos, acum stau și de a face la locul de muncă (numai dacă nu a fost autoritățile) - și anume, schimbarea aspectului panglicii. Sau într-un limbaj mai ușor de înțeles - creând propriul tău piele pentru controlul panglicilor. Nesigur ce poate, astfel încât dintr-o dată în câteva ore în întreaga afacere, și chiar decora un blog, dar voi încerca să pună cât mai multe informații, în cazul în care - sper pentru ajutor în dezvoltarea temei. Hai să mergem.
Să începem să studiem subiectul cu cele mai simple scheme de culori. În Delphi, există inițial trei componente gata făcute pentru scheme de culori:
- XPColorMap
- StanderdColorMap
- TwilightColorMap
Să încercăm să le aplicăm în practică. În funcție de logica lucrurilor și, judecând după numele proprietăților componentelor, în funcție de schema de culori, culorile fonturilor și umbra componentelor ar trebui să se schimbe cel puțin. Să verificăm în practică. Am plasat-o pe formular, ca de obicei: ActionManager și Ribbon. Creați un cuplu de acțiune în manager, de la panglică creați o filă și două grupuri (sau puteți avea unul după cum doriți) și plasați grupurile noastre de acțiune în grupuri.
Acum vom arunca forma unui simplu ComboBox. toate cele trei scheme de culori disponibile și un buton. Am o formă simplă:
Acum adăugăm trei linii la ComboBox, fiecare dintre ele urmând să descrie una dintre schemele de culoare și în butonul de manipulare a clicurilor pentru butonul pe care îl scriem cu următorul cod
Rulați aplicația și verificați ce sa întâmplat. Am fost încântat că culorile fonturilor s-au schimbat:
Nu este mulțumit de glitch cu panoul de lansare rapidă - atenție acordată. Și, după cum sa dovedit, această problemă nu dispare chiar dacă reîncarci Delphi ... deși nu poate funcționa decât la o problemă de tip mașină de scris - o să verific acasă cu siguranță. Între timp, continuați.
Acum am luat în considerare una dintre opțiunile de schimbare a schemei de culori - folosind componente standard, deja existente ale schemelor de culori pentru o lungă perioadă de timp.
Dar, panglica are de asemenea un tip propriu de TcustomRibbonColorMap în modulul Panglică. Este posibil și, aparent, trebuie să utilizați acest tip de date atunci când lucrați cu scheme de culori pentru Panglică. Să încercăm să o aplicăm.
După o scurtă manipulare a mouse-ului, forma aplicației a avut următoarea formă:
Fiecare din noul ColorBox va descrie valoarea culorii pentru una dintre proprietățile TcustomRibbonColorMap.
Adăugați butonul de gestionare a evenimentului buton:
Și acum putem experimenta cu schema de culori Ribbon la fel de mult ca dorința inimii noastre, alege culorile noastre de fonturi etc. De exemplu, am adunat aici această schemă "dezgustătoare":
Acum putem să aruncăm o privire la ecranul bitmap al Ribbon și să ne construim imaginea și asemănarea. Fișierul cântărește nu mai puțin de 1056kb, deci de dragul ilustrației, vă voi oferi o imagine comprimată în format gif și o dimensiune mai mică. Aici este:
Din moment ce nu sunt un designer și practic nimic în Photoshop, de dragul experimentului am pictat câteva zone pentru a vedea că am reușit să-mi încarc pielea în program. Acum mergem la faza 2 - scriem modulul nostru pentru încărcarea pielii.
Ați observat că, după prima compilare a proiectului cu Ribbon în utilizări, apare cel puțin un modul suplimentar, RibbonLunaStyleActnCtrls. Vom scrie același modul.
Creați un modul gol și dați-i un nume puternic, de exemplu: RibbonMegaStyleActnCtrls. Imediat în utilizări conectăm trei module: ActnMan, RibbonStyleActnCtrls și Ribbon. Și, de asemenea, declarăm o constantă:
Dacă nu sunteți convins de faptul că pielea se află chiar lângă fișierul executabil - fără probleme, specificați calea. Și trebuie doar să ne înregistrăm noua piele și să o descărcăm la timp. Să nu reinventeze roata din nou (cu atât mai mult în grabă, el poate ajunge departe cu roți rotunde), și scrie la fel ca și pentru piei standard în inițializarea secțiuni și finalizarea:
Și nu uitați înainte de implementare pentru a declara o variabilă globală:
Acum ne conectam modul nostru de la utilizările și în orice loc convenabil pentru tine de a scrie handler:
Am adăugat aceste linii la butonul de manipulare a butoanelor pentru a aplica schema de culori. Asta a făcut programul meu după ce am batjocorit pielea:
Foarte urât, dar este luminoasă și imediat vizibilă că cineva a mutilat în mod deliberat Panglica.
Asta e tot pentru ziua de azi. Ca bonus la post este atașat același program pe care l-am scris pe parcursul lucrului pe articol. Arhiva cu programul pe care îl va găsi, de asemenea sursa, inclusiv modulele RibbonConsts (unul siruri de caractere traduse) și piele de testare modul, care, dacă ceva, te va salva de la mazgalituri inutile - pur și simplu schimba calea și numele de fișier, iar pielea este gata.