Delphi programozási blog, pop-up ablakok (pop-up)
Képzeljük el, hogy mi nem csak fog generálni pop-up hirdetéseket, és a megjelenése az ablak egy reakció egy bizonyos esemény. Ezek az események akkor létrehoz egy időzített eseményt, és elérni egy bizonyos hatást valószerűség, a válaszidő időzítő fogjuk tartani a változó (minden alkalommal ez váltja), akkor ez az esemény fogjuk feldolgozni. Mivel az események feltételezett valamilyen külső, előállítására és továbbítására használják azokat kommunikációt. Ezért meg egy állandó azonosítani az üzenetet
Az előbb említett szerkezetet az esemény határozza TPopupInfo, amely tárolja a következő információkat: időponttal, esemény típusa (TEventType) azonosítóját akció, szöveges leírást az esemény, a felhasználói név és a felhasználó ikont.
A fenti művelet szimuláltuk érkezése olyan üzenetet, hogy most fel kell dolgozni. Mi a leírása űrlapunkat, hogy adjunk egy felvezető WM_POPUPEVENT eseményeket. A felvezető telt kivonat az esemény típusát és az esemény adatait, majd hozzon létre egy felugró űrlapot tervező, hogy elviszi a leírása a szerkezet az esemény.
Következő mi lesz egy másik érdekes lépés. Annak érdekében, hogy ellenőrizzék a pop-up (rendelni őket), és hogy információt nyújtson a beállítások ablak (szín, a fedettség, megjelenítési idő) leírják az osztály TPopupConfig:
milyen módszerek és változók a mi osztály? 1. tömbök színek, Alpha, Interval - tárolja a beállítások ablakot, a típusát betöltendő állások a kivitelező. 2. A konstruktor és destruktor. 3. Amikor létrehoz egy pop-up ablak, az ablak kerül rögzítésre a mi osztály, és a záró fordítva. Erre a függvény registerPopup unregisterPopup. 4. A lista az összes megnyitott ablak tárolható a listán popupList 5. átszervezése ablakok listája egy eljárás UpdateWindowPos. (Azaz például, amikor lezárja az első pop-up ablakot, hogy elindult lefelé a többi). Tehát, a tervező (kitöltőszínt, az átláthatóság, az idő, inicializálja az ablakok listája), és a destruktor (kiadja a lista):
A regisztráció során egy új ablakhoz az osztályban, akkor adja át a felvezető, add hozzá a listához, majd hívja a reorganizációs eljárás. Miután az ablak bezárása, átadva a fogantyút az ablak művelet eltávolítja az ablak a listából, és átrendezheti az ablakokat újra.
Az eljárás maga az átszervezés az ablak lista koordinátáinak kiszámításához, amelyben mozgatni egy ablakot, kezdve a jobb alsó sarokban. Sőt, a regisztráció során egy új ablakban fog megjelenni, hogy itt van, és nem olyan módon, közvetlenül a forma felugró ablakban.
Kezelni a virágládák és egyéb tulajdonságait is hozzászólok TypeCombo (TComboBox) gombot a fő formája kiválasztásához egyedi ablakok, TButtonColor válassza ki a színt az ablak, és egy pár tSzerkesztés TUpDown szabni a kijelző az idő és az átláthatóság. Ezekkel ellenőrzéseket fog változni a megfelelő tulajdonságokkal TPopupConfig.
Hosszabbítsa meg a folyamat létrehozása a fő formáját, és amellett, hogy kitölti a listán a „kapcsolat” épít az osztály konfiguráció (globális változó), és töltse ki a typeCombo és végre a kapcsolódó intézkedéseket
De általában, hogy minden, ami kapcsolódik a program fő modult. Most folytassa közvetlenül a nagyon popup. Itt kell átírni a kivitelező az ablakot, amelyben a lépések végrehajtásához felállításához a maga nemében távon időmérő ablak az élet, amelyre a művelet ablak zárva van, nos, valóban nagyon közel ablak eljárást. Szóval, mi is átírni a kivitelező, hogy a paraméter, ő vette, mint már goovrit fenti leírás a szerkezet a mi eseményeket.
Milyen intézkedéseket kell végezni a kivitelező: 1. hívás szülő kivitelező. 2. Állítsa be a szín, az átláthatóság és az élettartam, miután megkapta őket popupConfig 3. Töltsük ki az adatokat, és állítsa be az ikon Label'ah 4 regisztráljuk ablak popupConfig 5. Az időzítő elindításához 6. A tiszta emlékét életben részt vesznek a kapott szerkezet TPopupInfo
Ha az on-időablak kell zárni
Ennek eredményeként az úgynevezett felvezető OnDestory események, amelyhez fokozatosan elrejteni az ablakot, és razregistriurem azt a mi popupConfig'e
Ez minden. Mellesleg alkotják a látható tulajdonság értéke hamis, valamint a onClick eseménykezelő is megadhatja popupTimerTimer az ablak bezárásához kattintva. Itt úgy tűnik, és le minden érintés, hogy hozzon létre a felugró ablakokat. Tény, hogy ez a végrehajtási van egy hátránya ennek végrehajtása az ablak zárása csillapítás, azaz a használata az alvás funkció, a fennmaradó fő stream, vagyis a fő formája a program nem válaszol. Azaz meg kell vslyvayuschie ablakok fut egy új téma. Végül a szokásos mintázat