Delphi blog de programare, pop-up-uri

Să ne imaginăm că noi nu sunt doar de gând să genereze reclame pop-up, iar aspectul ferestrei este o reacție la un anumit eveniment. Aceste evenimente vom genera un eveniment de timer, și pentru a obține un anumit efect veridic, cronometrul timpului de răspuns, vom continua să se schimbe (în fiecare dată când este declanșat), atunci acest eveniment vom procesa. Deoarece evenimentele sunt asumate de unele externe, apoi a genera și transmite acestea utilizează comunicațiile. Prin urmare, pentru a identifica mesajul, definim constanta







Pentru a descrie evenimentul, definiți structura TPopupInfo, care va stoca următoarele informații: ora apariției, tipul evenimentului (TEventType), un anumit act de acțiune, descrierea textului evenimentului, numele utilizatorului și pictograma utilizatorului.

Cu ajutorul celor de mai sus, am simulat sosirea unui mesaj arbitrar, pe care acum trebuie să îl procesăm. Pentru ceea ce în descrierea formularului nostru adăugăm manipularea evenimentului WM_POPUPEVENT. În handler, extrageți tipul evenimentului trecut și informațiile despre eveniment și apoi creați un formular popup, constructorul acestuia acceptând structura descrierii evenimentului.

Apoi, avem un alt pas interesant. Pentru a gestiona ferestrele pop-up (pentru a le ordona) și pentru a oferi informații despre setările ferestrei (culoare, transparență, timp de afișare), vom descrie clasa TPopupConfig:

ce metode și variabile are clasa noastră? 1. matrice Culori, Alfa, Interval - pentru memorarea setarilor ferestrelor, dupa tipul de mesaj, care sunt completate in constructor. 2. Constructorul și distrugătorul. 3. Când creați o fereastră pop-up, fereastra va fi înregistrată în clasa noastră și atunci când este închisă invers. În acest scop, sunt furnizate funcțiile registerPopup unregisterPopup. 4. Lista ferestrelor deschise în prezent va fi stocată în lista popupList 5. Pentru reorganizarea listei de ferestre, este prevăzută procedura UpdateWindowPos. (de exemplu, atunci când închideți prima fereastră pop-up, trebuie să mutați restul în jos). Deci, designerul (completați culorile, transparența, timpul, inițializați lista ferestrelor) și distrugătorul (eliberați lista):







Când înregistrăm o nouă fereastră în clasa noastră, vom trimite un handler, îl vom adăuga în listă și apoi vom apela procedura de reorganizare. După închiderea ferestrei, trecând mânerul ferestrei la procedură, vom elimina fereastra din listă și vom reconstrui din nou ferestrele.

Procedura de reorganizare a listei de ferestre va calcula coordonatele la care ar trebui mutată fereastra, pornind de la colțul din dreapta jos al ecranului. Și atunci când înregistrați o nouă fereastră, va fi afișată, chiar aici, mai degrabă decât folosind metode direct din chiar forma ferestrei pop-up.

Pentru a gestiona cutiile noastre de flori și alte proprietăți vor posta TypeCombo (TComboBox) comutator de pe formularul principal pentru a selecta ferestre personalizate, TButtonColor pentru a selecta culoarea ferestrei, și un cuplu de tEditează TUpDown pentru a personaliza afișarea timpului și a transparenței. Folosind aceste comenzi, vom modifica proprietățile corespunzătoare în TPopupConfig.

Extindem procedura de creare a formularului principal și, pe lângă completarea listei de "contacte", creăm clasa de configurație (variabila globală) și completăm combo-ul nostru de tip și efectuăm acțiuni conexe

În general, asta e tot despre modulul principal al programului. Acum du-te direct la cea mai pop-up fereastră. Aici trebuie să rescriem constructorul de ferestre, în care se vor efectua acțiunile de stabilire a aspectului său, se va executa cronometrul duratei de viață a ferestrei, pe declanșatorul căruia va fi închisă fereastra și procedura efectivă de închidere a ferestrei. Astfel, vom rescrie constructorul, astfel încât, ca parametru, este nevoie, așa cum sa menționat deja mai sus, de structura descrierii evenimentului nostru.

Ce acțiuni ar trebui să se efectueze în constructor: 1. apela constructorul părinte. 2. regla culoarea, transparența, și durata de viață, după ce le-a primit de la popupConfig 3. Completați datele și setați pictograma Label'ah 4 pentru a înregistra fereastra noastră în popupConfig 5. porni cronometrul 6. Memoria clară a vieții sunt angajate în structura rezultată TPopupInfo

Când se declanșează cronometrul, închideți fereastra

Ca rezultat, va fi numit Handlerul evenimentului OnDestory în care ascundem fără probleme fereastra și neînregistrăm-o în popupConfig

asta e tot. Apropo, proprietatea vizibilă a formularului este setată la false, iar evenimentul onClick poate specifica și manipularea popupTimerTimer pentru a închide fereastra făcând clic pe. Se pare și a fost descris tot ce atinge pop-up-urile create. De fapt, această punere în aplicare are un dezavantaj, cu această punere în aplicare a dezintegrării ferestrei la închidere, și anume, folosind funcția de somn, firul principal adormi, adică, forma principală a programului, de asemenea, încetează să mai răspundă. De exemplu, este necesar ca ferestrele de stropire să fie pornite într-un fir nou. În cele din urmă, ca desenul obișnuit







Articole similare

Trimiteți-le prietenilor: