11.07.2015 Views

Prenos vízií do reality bolí. - Vitajte na stránkach www.einsty ...

Prenos vízií do reality bolí. - Vitajte na stránkach www.einsty ...

Prenos vízií do reality bolí. - Vitajte na stránkach www.einsty ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

P R O G R A M U J E M EObr. 3 Prípad 1 Obr. 4 Prípad 2 Obr. 5 Prípad 3 Obr. 6 Prípad 4Obr. 7 Vlastné Menu aj ToolBarBOOL ReplaceBitmap(HBITMAP hBitmap, UINT nCommandID)BOOL ReplaceIcon(HICON hIcon, UINT nCommandID)BOOL RemoveImage(int nCommandID)BOOL RemoveAllImages()BOOL TrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y, LPTPMPARAMSlpParams = NULL)// Poznámka: Obmedzená podpora pre MDI – iadne ikony alebo tlaèidlá min/max/close.BOOL SetMDIClient(HWND hWndMDIClient) Implementácia – ownerdraw metódvoid DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)void DrawMenuText(CDCHandle& dc, RECT& rc, LPCTSTR lpstrText, COLORREF color)void DrawBitmapDisabled(CDCHandle& dc, int nImage, POINT point)BOOL Draw3DCheckmark(CDCHandle& dc, const RECT& rc, BOOL bSelected,BOOL bDisabled, BOOL bRadio, HBITMAP hBmpCheck)void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct) Implementácia – hook procsstatic LRESULT CALLBACK CreateHookProc(int nCode, WPARAM wParam, LPARAMlParam)static LRESULT CALLBACK MessageHookProc(int nCode, WPARAM wParam, LPARAMlParam) Implementácia – menuvoid DoPopupMenu(int nIndex, bool bAnimate)BOOL DoTrackPopupMenu(HMENU hMenu, UINT uFlags, int x, int y, LPTPMPARAMSlpParams = NULL)int GetPreviousMenuItem() constint GetNextMenuItem() constvoid GetSystemSettings() Implementácia – alter<strong>na</strong>tívnej podpory focus móduvoid TakeFocus()void GiveFocusBack() Implementácia – interných pomocných správstatic UINT GetAutoPopupMessage()static UINT GetGetBarMessage()Na obrázkoch 3, 4, 5 a 6 môete vidie štyri z moných stavov komponentu ReBar. Prvýprípad – Rebar1 – obsahuje štandardné Win<strong>do</strong>ws Menu, ReBar2 obsahuje rozdielne me−nu. Obidva komponenty ReBar sú umiestnené <strong>na</strong> jednom riadku. Druhý prípad – kompo−nent Rebar môeme pomocou drag&drop presunú <strong>na</strong> samostatný ria<strong>do</strong>k a opaène. Tretíprípad <strong>na</strong>stane, keï v súbore stdafx.h urobíte <strong>na</strong>sledujúce zmeny:...// Change these values to use different versions#define WINVER 0×0400//#define _WIN32_WINNT 0×0400#define _WIN32_IE 0×0400#define _RICHEDIT_VER 0×0100...Po úprave hodnôt WINVER a _WIN32_IE sa zobrazí z<strong>na</strong>k "o" (pozri príklad 3). Tentoz<strong>na</strong>k sa zobrazí vdy, keï prekryjete jeden ReBar druhým. Po kliknutí <strong>na</strong> tento z<strong>na</strong>k sazobrazí pop−up menu skrytej èasti komponetu ReBar. Štvrtý prípad ukazuje, e <strong>na</strong> ReBarmono umiestni aj ToolBar (pozri obrázok 7) a, samozrejme, aj iné prvky (o tom však nie−kedy <strong>na</strong>budúce)....// Change these values to use different versions#define WINVER 0×0500#define _WIN32_IE 0×0501#define _RICHEDIT_VER 0×0100#define _WIN32_WINNT 0×0500...Peter GašparovièAko <strong>na</strong> Visual Basic .NET / 4. èasPre programátorov, ktorí boli <strong>do</strong>posia¾ zvyknutí <strong>na</strong> prácu vo Visual Basicu 6, môe by pre−chod <strong>na</strong> novú .NET verziu tohto programovacieho jazyka zo zaèiatku z<strong>na</strong>ène komplikova−ný. Je pravda, e Visual Basic .NET je v porov<strong>na</strong>ní so svojím predchodcom predsa lenrobustnejší a aj mnohí profesionálni programátori, ktorí poz<strong>na</strong>li všetky „tajomné“ zákutiaVB 6, zostanú po prvých skúsenostiach s novou platformou <strong>na</strong> pochybách. Keïe jednýmz hlavných cie¾ov tohto seriálu je maximálne vám u¾ahèi prechod <strong>na</strong> novú verziu VisualBasicu, budeme vdy, keï to bude moné, aplikova filozofiu „známych skutoèností“. Toz<strong>na</strong>mená, e <strong>na</strong>jskôr budeme vychádza z tých skutoèností a faktov, ktoré sú vám, akostredne pokroèilým programátorom vo VB 6, známe, a následne poukáeme <strong>na</strong> nové po−òatie skúmanej problematiky z poh¾adu jazyka VB .NET.PREMENNÉ VO SVETE .NET. Základnou stavebnou jednotkou kadého programu sú(popri iných programových entitách) premenné. Premenné sú schopné uklada rôzne typy úda−jov v závislosti od špeciálnej charakteristiky, ktorú im priraïuje deklaraèný príkaz so špecifiká−ciou platného dátového typu. Visual Basic 6 vám umoòoval deklarova premenné z<strong>na</strong>ènéhomnostva dátových typov. VB .NET ïalej modifikuje mnoinu vstavaných dátových typov, takesa pravdepo<strong>do</strong>bne stretnete i so zástupcami dátových typov, s ktorými ste ešte nepracovali.Nové dátové typy môeme rozdeli <strong>do</strong> troch základných kategórií: Dátové typy <strong>na</strong> ukladanie celých èísel (Byte, Short, Integer, Long) Dátové typy <strong>na</strong> ukladanie èísel s pohyblivou desatinnou èiarkou (Single, Double,Decimal) Ostatné dátové typy (Boolean, Char, String a Object)Aby sme mohli vyui monosti príslušného dátového typu, musíme <strong>na</strong>jskôr deklarovapremennú tohto dátového typu. Deklarácia premennej sa uskutoèní po<strong>do</strong>bne ako vo VB 6pouitím deklaraèného príkazu Dim:Dim premenná As IntegerZa príkazom Dim <strong>na</strong>sleduje meno premennej, k¾úèové slovo As a názov platného dáto−vého typu (v <strong>na</strong>šom prípade typ Integer). V reime behu aplikácie deklaraèný príkaz za−bezpeèí alokáciu <strong>do</strong>statoène ve¾kého pamäového miesta <strong>na</strong> to, aby sa <strong>do</strong> neho mohlaneskôr uloi urèitá hodnota, ktorá spåòa poiadavky týkajúce sa rozsahu pouitého dáto−vého typu. Deklaraèný príkaz teda sprístupòuje <strong>do</strong>statoène ve¾ký pamäový priestor, alezatia¾ tento priestor ponecháva prázdny. Na to, aby bolo moné vytvorený pamäovýpriestor vyplni, je potrebné premennú inicializova. Pod pojmom inicializácia premennejsa rozumie priradenie istej hodnoty <strong>do</strong> tejto premennej pomocou priraïovacieho príkazus pouitím operátora <strong>na</strong> priradenie. Keby sme teda chceli deklarovanú premennú iniciali−zova, <strong>na</strong>písali by sme tento ria<strong>do</strong>k programového kódu:premenná = 10000V tomto okamihu je numerická hodnota 10000 priradená <strong>do</strong> premennej. Takisto mô−eme poveda, e spomí<strong>na</strong>né vytvorené pamäové miesto je zaplnené priradenou hodno−tou. Keïe hodnota 10000 spåòa rozsah dátového typu Integer, je všetko v poriadku a pri−raïovací príkaz úspešne realizuje svoju èinnos.Ak ste vo VB 6 chceli deklarova a následne inicializova premenné, postupovali ste vdyv uvedených dvoch krokoch. VB .NET však prichádza s novinkou, ktorá vám umoní spojioba procesy (deklaráciu a inicializáciu premennej) <strong>do</strong> jedného príkazu:Dim premenná As Integer = 10000Programová konštrukcia deklaraèno−inicializaèného príkazu je výhodnejšia, a pokia¾ tobude moné, mali by ste ju vdy vyuíva. Samozrejme, nie vo všetkých prípa<strong>do</strong>ch je mo−né premennú pri deklarácii okamite inicializova (jednoducho nemusíme vdy poz<strong>na</strong> po−trebnú inicializaènú hodnotu). Pokia¾ vo vašej aplikácii pouívate mnostvo globálnychpremenných, je moné, e <strong>na</strong>jskôr deklarujete všetky verejné premenné a potom ich v prí−pade potreby inicializujete.Ak nebudete priamo inicializova premenné jednotlivých dátových typov, VB .NET im implicitne prira−dí tzv. štandardné inicializaèné hodnoty. Tak sú premenné všetkých èíselných dátových typov inicia−lizované <strong>na</strong> nulovú hodnotu, premenné dátového typu Boolean zasa <strong>na</strong> hodnotu False a premennédátového typu Date <strong>na</strong> 12. hodinu 1. januára roku 1. Štandardnú inicializaènú hodnotu dátových typovString a Object (ako aj iných referenèných dátových typov) tvorí špeciál<strong>na</strong> hodnota Nothing.CHARAKTERISTIKA CELOÈÍSELNÝCH DÁTOVÝCH TYPOV. Premenné týchtodátových typov sú schopné uchováva celoèíselnú hodnotu. Ich technický opis môetenájs v tab. 1.Tab. 1Názov dátového typu Opis Rozsah .NET ekvivalentByte 8−bitové èíslo bez z<strong>na</strong>mienka System.ByteShort 16−bitové èíslo so z<strong>na</strong>mienkom System.Int16Integer 32−bitové èíslo so z<strong>na</strong>mienkom System.Int32Long 64−bitové èíslo so z<strong>na</strong>mienkom System.Int647/2003 PC REVUE 119

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!