6. diel - Menu, zoznamy obrázkov a poznámky
Vitaj, programator! Už toho určite veľa vieš (z predchádzajúcich
lekcií) a tak sa pustíme do hlavnej veci v programe! A to je MENU. Najprv
však preberieme jednu vecičku, ktorá s tým súvisí! A tak v položke Win32
(tretia odlievať) nájdite
IMAGELIST.
Imagelist
Tu si uložíte obrázky, ktoré idú potom inde použiť. Tak sa pozrime do Object Inspector na dve dôležité veci:
- Height - tentoraz neznačí výšku objektu, ale obrázkov v zozname
- Width - rovnako ako u Height - značí tentoraz šírku obrázkov
Ak chcete pridať obrázok, kliknite dvojito na ikonku ImageListu a v novom okne môžete premiestňovať obrázky, pridávať nové (Add), prepisovať ich inými (Replace), mazať (Delete), ukladať na disk (Export), všetky zmazať (Clear), meniť priehľadnú farbu (uprostred hore) a meniť zarovnanie obrázku (Crop-obrázok sa proste oreže do zadaného rozmeru; Stretch-obrázok sa zmrští, alebo roztiahne, aby bol akurát na zadaný rozmer; Center-vyreže sa stred obrázka v zadaných rozmeroch). A teraz si ukážeme jeden zo spôsobov, ako ImageList použiť:
MainMenu
Urobíme si sľubované menu! V položke Standart hneď druhé zľava je MainMenu čiže hlavné menu. Jednoducho tá lišta hore, kde je Súbor (alebo File), Úpravy (alebo Edit) atď. Takže sa pozrime do Object Inspector na 2 špeciality:
- Images - tu si vyberiete ImageList, z ktorého sa budú používať obrázky do menu (najlepšia je rozmer 16x16)
- Items - a tu si zvolíte položky menu. Vyvolá sa tiež dvojklikom na ikonku menu!
Viď. nižšie:
Po dvojitom kliknutí na Items, alebo na ikonku MainMenu sa vám otvorilo okno s menom menu. Zo začiatku by malo byť prázdne! Len v ľavom hornom rohu by mal byť prerušovanou čiarou urobený rámček! A na neho kliknite!
"Fíha, ono sa v tom v okne vľavo votevřel nějakej objekt bez mena typu TMenuItem! Čo s tým?" Áno, to je správne! Najprv pomenujte položku menu! Môžete síce iba vyplniť Caption a program si vytvorí názov sám, ale nie každému sa páči tlačidlo s nápisom Ukončiť, ktoré sa volá Ukonit1. Vám áno? Potom si ušetrite pomenovávanie položiek v menu! Uloitvytvoennpisyaobrzky1 - ja vás varoval! (Caption = 'Uložiť vytvorené nápisy a obrázky') No, ale poďme ďalej! Aké ďalšie zvláštne položky nás čakajú?
- AutoCheck - Ak chcete, aby po kliknutí na položku sa u nej objavil znak pre označovanie, vyberte True!
- Bitmap - Môžete si načítať z disku obrázok, ktorý bude naľavo od nápisu položky! Najlepšie v rozmeroch 16x16!
- GroupIndex - Tu určíte číslo skupiny zaškrtávacích tlačidiel. Pokiaľ ale nemáte RadioItem (pozri nižšie) ako True, nie je potrebné sa o túto položku starať!
- ImageIndex - A je to tu! Konečne sa bude hodiť poznať ImageList. Tu totiž zadáte číslo, ktoré je vo vopred zvolenom ImageListu pod obrázkom, ktorý chcete naľavo od textu položky.
- RadioItem - Ak zadáte True, v skupine tlačidiel pôjde zaškrtnúť iba jedno (znamienko zaškrtnutie sa zmení na koliesko!).
- Shortcut - Vyberiete si klávesovú skratku, ktorá sa má priradiť položke v menu. Stačí teda stlačiť napr. Len Ctrl + A a nemusíte v hľadať položku v menu! Naviac sa skratka objaví napravo na položke!
- SubMenuImages - Ak poznáte položku v menu, ktorá má má vpravo takú sipecka a keď na nej kliknete, objaví sa ďalší menu po strane už otvoreného, musím vám povedať, že v Delphi to samozrejme ide urobiť tiež! Kliknite v okne pre editáciu menu na vami určenú položku pravým tlačidlom a vyberte položku Create Submenu! Tým vám vznikne ono podmenu zvanej SubMenu ... Vráťme sa ale k SUBMENUIMAGES! Tu nastavíte, ktorý ImageList bude používať SubMenu nadväzujúci na vybranú položku! Stačí? To som rád!
Nakoniec vám ešte chcem povedať, ako vytvoriť oddeľovací čiaru: Jednoducho! Namiesto textu napíšte do položky Caption jednu pomlčku (čiže mínus) a program si oddeľovací čiaru vyrobí sám! A ak chcete, aby bolo nejaké písmeno texte podčiarknuté, napíšte pred neho znak &. Podčiarknuté písmeno bude funkovej podobne, ako klávesová skratka. ... A teraz poďme ďalej:
PopupMenu
Naučím vás robiť aj takéto menu, ktoré sa otvorí pravým kliknutím. Hneď vedľa MainMenu nájdete POPUPMENU Na čo toto okno je, už viete, tak sa pusťme do špeciality v Object Inspector:
- Aligment - Kde sa má objaviť menu, keď kliknete? Napravo od miesta, kam kliknete (paLeft), pod miesto, kam kliknete (paCenter), alebo naľavo (paRight)?
A ostatné je rovnaké, ako u MainMenu!
Ešte by ale chcelo povedať, že ak niekde chcete PopupMenu, musíte ho priradiť nejakému objektu, ktorý má položku PopupMenu. Rovnako tak aj u Main, menu, ale to si okno priradí samo! A to je z menu všetko!
Nezaujíma vás ten divný objekt naľavo od MainMenu? Z položky Standart už poznáte skoro všetko doľava, akurát toto vám to ruší! Tak dobre! Poviem vám o tom! Ale bude to vyžadovať ďalšie znalosti:
Frames (rámy)
Napadlo vás niekedy vložiť okno do okna? Mňa nie a či to napadlo vás, asi sa zcvoknu, pretože som vám ani nepovedal, ako urobiť ďalšie okno! Alebo ANO? NIE! Poviem vám to za chvíľu. Ale ten nápad je možné uskutočniť pomocou tohto objektu! Kliknete niekam az ponuky si vyberiete, ktoré okno chcete vložiť! Objekt má potom rovnaké vlastnosti ako ono okno! Okrem pozície a názvu!
Ale teraz k tvorbe viacerých okien:
Takže! Ak chcete vytvoriť nové okno, vyberte položku New v menu (File) a v SubMenu (dúfam, že viete, čo toje!) Vyberte položku Form! A je to. Teraz už postupujte, ako keď vytvárate nový Project. Proste premenujte okno atď ... Ale takto by som vám nepomohol! Ďalej potrebujete nejako zoradiť okná! A tak preberieme dôležitú položku v menu! Najprv vyberte Project a úplne dole nájdete položku Options! Tu máte veľa častí nastavenie a tak začnime tou, vďaka ktorej vám to vysvetľujem: Forms.
V tejto časti je dôležitá akurát voľba okna, ktoré sa otvorí pri spustení programu (Main form)! A ideme ďalej: Application
Veľmi dôležité! Takže: Title - tu napíšete názov programu (aj s háčikmi a čiarkami). Potom už je len dôležitá položka Icon - po kliknutí na nej vyberiete, aká ikona bude pri programe! Táto ikona bude u EXE súboru a na paneli úloh vo windows (keď spustíte program) spoločne s názvom programu !!! Ikona? Pýtate sa! Áno, odpovedám! ... Dosť! Proste vám chcem povedať, že ikonky, ktoré máte vo Windows môže mať aj váš program! K oknu už ikonku dať viete, ale k EXE súboru? ... Teraz už áno! Ale kde je brať? No, buď na internete alebo si ich sami vyrobiť! AKO ?? V Delphi, predsa!
Teraz si povieme, ako pracovať s viacerými oknami! Síce len 3 základné príkazy, ale čo iné?
Takže tu sú:
- Close - To už určite poznáte (URČITE - na 100%, pretože ak nie, tak neprogramujte. To je základný príkaz!). Pokiaľ ale nechcete zavrieť okno, do ktorého textu príkaz dávate, musíte napísať príkaz v tvare: NazevOkna.Close; Nazov okná samozrejme nahradíte názvom okná, ktoré chcete zatvoriť! Napr .: Form2.Close;
- Show To je to najhlavnejšie! Chcete otvoriť nejaké okno? Potom napíšte: NazevOkna.Show; Nazov okná samozrejme nahradíte názvom okná, ktoré chcete otvoriť! Napr .: Form2.Show; A Form2 sa objaví. Kedykoľvek môžete prekliknúť na iné okno v programe, alebo nejaké zavrieť! POZOR !!! Ak zavriete HLAVNÉ OKNO, zatvorte celý program !!!
- ShowModal - Skoro to isté, ako Show: NazevOkna.ShowModal; Takže napr .: Form2.ShowModal; A Form2 sa objaví, ale kým ho nezavriete, nesmiete k ostatným oknám programu! Tak napr. Fungujú okná s chybovými hláškami! Kým nekliknete potrebné na OK, nemôžete ďalej pracovať!
A to je všetko! Teraz si povieme, ako vyrábať OBRÁZKY!
Obrázky
V menu Delphi nájdite položku Tools. Keď jej rozbalíte, úplne dole je položka Image editor.
Kto vie po anglicky, už zistil, že Image Editor znamená Obrázkový Editor, a že sa tam asi budú vytvárať nejaké obrázky. A uhádol! Image Editor je podprogram Delphi. Nemusíte ho spúšťať priamo z Delphi, ale pokojne aj z Windows (stačí ho nájsť v zložke s Delphi). Keď ho teda spustíte, otvorí sa okno veľmi podobné skicár. Akurát je všetko anglicky a možno tu vytvárať viac vecí pre Delphi. V položke Files a v Submenu z New sa vám zatiaľ bude hodiť akurát Bitmap, Icon a Cursor File.Ak chcete vytvoriť akýkoľvek obrázok, kliknite na Bitmap File. Otvorí sa vám okno. Tu si zvolíte šírku (width), výšku a počet použiteľných farieb (vpravo). Po stlačení OK môžete veselo začať vytvárať. Ak ale chcete vyrobiť ikonu napríklad pre svoj program, kliknite na Icon File! Tiež sa vám otvorí okno! Tentoraz si vľavo vyberiete, či chcete vytvárať malú (small icon), alebo veľkú ikonu (standart icon) a vpravo opäť počet farieb.
Po stlačení OK už nebude editor rovnaký! Vo výbere farieb budú navyše dve farby (viď. Obr. Vpravo)! Keď niekam umiestnite hornú farbu, na onom mieste bude vždy opačná farba, než je pozadie. Dolné farba je naopak priehľadná! A to sa u ikon hodí! Ďalej je tu tiež navyše tlačidlo New ... a výber medzi ďalšími typmi ikony. Keď kliknete na New, do súboru ikony sa pridá ešte jedna ikona, ktorý si zvolíte v otvorenom okne. Môžete teda mať napríklad súbor Ikona.ico, v ktorom budú potrebné 4 obrázky ... A ešte bola reč o Cursor File! Tentoraz sa vám okno neotvorí! Akurát si jednoducho môžete nakresliť svoj súbor kurzora myši. Farby sú len štyri: biela, čierna, priehľadná a nepriehľadná (viz. Icon File). Takže hybaj do kreslenia ikoniek pre svoju hru (alebo samozrejme program)!
Áno, máte pravdu! Prve som hovoril, že odlieva máme skoro celú položku Standart, ale chýba ešte:
Memo (poznámka)
- MEMO - Ten rámček s linkami (akoby textom)! Tu proste upravovali text s viacerými riadkami! Určite vám to chýbalo, že? Tak, aké máme špeciálne vlastnosti ?:
- Color - Opakujem sa, ale musím (alebo skôr mi to pripadá vhodné) uviesť, že to znamená farbu pozadia ...
- Lines - Kliknite 2x na túto položku a otvorí sa vám okno, kde editujete text, ktorý bude v môjmu!
- Text - Táto položka síce nie je v Object Inspector, ale je dôležitá! Je to totiž nápis, ktorý je v mémov. Narozdiel od Lines je Text premenná string!
- ReadOnly - Ak zadáte True, nepôjde do Mema zapisovať! Iba čítať a kopírovať!
- Scrollbar - Tu si určíte posuvníky: ssBoth - Memo bude mať
posuvník vpravo i dole
ssHorizontal - Memo bude mať posuvník len dole (riadky sa nebudú automaticky zalamovať!)
ssNone - Memo nebude mať žiadne posuvníky
ssVertical - Memo bude mať posuvník len vpravo
- ssBoth - Memo bude mať posuvník vpravo i dole
- ssHorizontal - Memo bude mať posuvník len dole (riadky sa nebudú automaticky zalamovať!)
- ssNone - Memo nebude mať žiadne posuvníky
- ssVertical - Memo bude mať posuvník len vpravo
- WantReturns - Ak zadáte False, bude Memo ignorovať stlačenie klávesu Enter
- WantTabs - Ak zadáte False, bude Memo ignorovať stlačenie klávesu Tab
- WordWrap - Ak zadáte False, riadky sa nebudú automaticky zalamovať
Stačí? To som rád ...
Program
A nakoniec už len uvediem nejaký program na zopakovanie! TAKŽE: Je to skoro až nezmysel, ale po dnešnom špecializovanom diele nič iné ani sesmolit nejde! Najprv si vytvoríme tri okná (vrátane pôvodného). Okno1, Okno2 a Okno3! Do Okna1 vložíme MainMenu. Na neho dvakrát klikneme a urobíme dve hlavné položky (bunky): Program (bude vľavo) a Okná (bude vpravo). Pod Program vložíme položky Editovať a Koniec. Pod Okná vložíme položky Normálne a Chybové. Do Okna2 vložíme PopupMenu s položkami Zatvoriť okno a Zavrieť program. Nezabudnite Oknu2 priradiť to PopupMenu! A do Okna3 vložte FRAMES. Ako okno vyberteOkno2! A teraz sa pustime do písania! Najprv ale do Okna1 vložte Memo (názov zápisník a ReadOnly je True) au položky Editovať nastavte AutoCheck na True! Neskôr na nej kliknite a píšte:
if ReadOnly then Zapisnik.ReadOnly := False else Zapisnik.ReadOnly := True;
A je to! Teraz položku Koniec. To snáď viete! Áno: Close;
Nasleduje položka Normálne: Okno2.Show;
Ďalej máme už len položku Chybové: Okno3.ShowModal;
A môžeme postúpiť do položiek v PopupMenu v Okně2! Takže: Zatvoriť
okno: Close;
A potom už len Zavrieť program: Okno1.Close;
Vidíte, a program je hotový! Ak ste nepochopili, ako program funguje, buď si to zistite z horného textu, alebo mi niekam napíšte! A ak ste to pochopili, som rád, že už sa v Delphi tak vyznáte ...
... Kukensius
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 463x (213.65 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Delphi