Program, kter² ukazuje, jak za pomocφ PictureBoxu nakreslit graf, v tomto p°φpad∞ z dat v databßzi. | |
6032 byt∙ | Kopφrovat |
Nemßte-li rßdi aplikaci Crystal report, zkuste tisknout z databßze sami pomocφ objektu Printer. Zde je mal² p°φklad. | |
7321 byt∙ | Kopφrovat |
Proto₧e zde nenaleznete program, ale ActiveX prvek, hodil by se tento p°φsp∞vek spφÜe do Φßsti ActiveX. Obsahuje vÜak i sv∙j zdrojov² k≤d a 8 p°φklad∙, proto jsme jej za°adili sem. A co umφ? Prvek umφ detekovat zprßvy, kterΘ nejsou p°φmo podporovßny Visual Basicem. | |
46383 byt∙ | Kopφrovat |
Pokud nastane n∞jakß chyba, v∞tÜinou chcete dßt u₧ivateli v∞d∞t jakß. Jak zobrazit popis chyb, kterΘ vyvolßvß operaΦnφ systΘm, najdete v tomto programu. | |
1652 byt∙ | Kopφrovat |
Pokud pou₧φvßte Φty°mφstn² formßt pro vyjßd°enφ roku, nemusφte si s p°echodem na rok 2000 d∞lat ₧ßdnΘ starosti. Pokud vÜak pou₧φvßte pouze dvoumφstn² formßt, budou pro vßs dalÜφ informace urΦit∞ d∙le₧itΘ.
Visual Basic do verze 3.0 vΦetn∞
V t∞chto verzφch, je jak²koliv dvoumφstn² rok pova₧ovßn za rok 20. stoletφ. Tedy jak²koliv dvoumφstn² rok bude p°eveden na rok zaΦφnajφcφ 19. Nap°. 95, bude 1995, 21 bude 1921 atd.
Visual Basic 4.0
Proto₧e od tΘto verze nejsou funkce pro datum implementovßny v runtime knihovnßch, ale v knihovn∞ OLE Automation, zßle₧φ p°i p°evodu data na verzi knihoven OLE Automation. Jedinß funkce, kterß je nadßle v runtime knihovnßch je DateSerial. Pro nφ platφ stejnΘ pravidlo jako pro 16-bitovΘ aplikace.
V 16-bitov²ch aplikacφch (16-bitovß verze OLE) jsou veÜkerΘ dvoumφstnΘ roky p°evedeny na stoletφ aktußlnφho systΘmovΘho data. Tzn. mßte-li systΘmovΘ datum 2001, bude rok 23 p°eveden na 2023, je-li systΘmovΘ datum 1998, bude rok 23 p°eveden na 1923.
Ve 32-bitov²ch aplikacφch je situace stejnß, je-li nainstalovßn pouze VB 4.0 (knihovna OLE Automation - OleAut32.DLL - verze 2.1). Pokud mßte verzi 2.2 a vyÜÜφ (nap°. v produktech Internet Explorer 3.0 a vyÜÜφ, Windows NT 3.51 SP5, Windows NT 4.0, Windows 95 OSR 2, Office 97, Visual Basic 5.0, a dalÜφ), je dvoumφstn² rok 30 a₧ 99 p°eveden na 1930 a₧ 1999, rok 00 a₧ 29 je p°eveden na 2000 a₧ 2029.
Visual Basic 5.0 a vyÜÜφ
U tΘto a vyÜÜφ verze Visual Basicu jsou vÜechny dvoumφstnΘ roky (vΦetn∞ pou₧itφ funkce DateSerial) 30 a₧ 99 p°evedeny na 1930 a₧ 1999, roky 00 a₧ 29 jsou p°evedeny na 2000 a₧ 2029.
Na midulΘm CD jsme uvedli tip, jak pomocφ funkce SHFormatDrive naformßtovat disketu. Zde naleznete cel² popis tΘto funkce.
Declare Function SHFormatDrive Lib "shell32"(ByVal hwndOwner As Long, _ ByVal iDrive As Long, ByVal iCapacity As Long, ByVal iFormatType As Long) As Long
hwndOwner - handle okna, ke kterΘmu se vztahuje dialog
iDrive - mechanika k formßtovßnφ (A = 0, B = 1, atd.)
iCapacity - v²slednß kapacita mΘdia
'Konstanty pro Windows 95 Public Const SHFD_CAPACITY_DEFAULT = 0 'defaultnφ kapacita Public Const SHFD_CAPACITY_360 = 3 '360 kB Public Const SHFD_CAPACITY_720 = 5 '720 kB
iFormatType - typ formßtovßnφ
'Konstanty pro Windows 95 Public Const SHFD_FORMAT_QUICK = 0 'rychl² formßt Public Const SHFD_FORMAT_FULL = 1 'pln² formßt Public Const SHFD_FORMAT_SYSONLY = 2 'zkopφrovat pouze systΘmovΘ soubory 'Konstanty pro Windows NT Public Const SHFD_FORMAT_FULL = 0 'pln² formßt Public Const SHFD_FORMAT_QUICK = 1 'rychl² formßt
Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long
Funkce GetSystemMetrics vracφ informace o mnoha r∙zn²ch v∞cech ve Windows. Mnoho z nich je velikost objekt∙, nap°. obrazovky, ikon, atd. Dßle takΘ poskytuje informace o systΘmu. Jakou informaci funkce vrßtφ, je zßvislΘ na parametru nIndex. Jeho hodnoty mohou b²t nßsledujφcφ.
SM_ARRANGE = 56 Pouze Win95/98 - vracφ metodu pou₧itou k zobrazenφ minimalizovan²ch oken: Hodnota je kombinacφ dvou nßsledujφcφch. Jedna pro poΦßteΦnφ pozici a druhß je vzdßlenost, v jakΘ je p°idßna dalÜφ. ARW_BOTTOMLEFT = 0 zaΦφnß v levΘm spodnφm rohu obrazovky ARW_BOTTOMRIGHT = 1 zaΦφnß v pravΘm spodnφm rohu obrazovky ARW_TOPLEFT = 2 zaΦφnß v levΘm hornφm rohu obrazovky ARW_TOPRIGHT = 3 zaΦφnß v pravΘm hornφm rohu obrazovky ARW_LEFT = 0 p°idß ikonu vlevo od existujφcφ ARW_UP = 0 p°idß ikonu nad existujφcφ ARW_RIGHT = 4 p°idß ikonu vpravo od existujφcφ ARW_DOWN = 4 p°idß ikonu pod existujφcφ ARW_HIDE = 8 neumφstφ ikonu SM_CLEANBOOT = 67 Pouze Win95/98 - vracφ, jak byl poΦφtaΦ nastartovßn. 0 normßln∞, 1 nouzov² start, 2 nouzov² start s pracφ v sφti SM_CMOUSEBUTTONS = 43 PoΦet tlaΦφtek myÜi, 0 v p°φpad∞, ₧e myÜ nenφ nainstalovanß SM_CXBORDER = 5 WinNT - Üφ°ka pozadφ okna Win95/98 - Üφ°ka pozadφ "single" okna SM_CXCURSOR = 13 WinNT - Üφ°ka kurzoru Win95/98 - Üφ°ka standardnφ kurozorovΘ bitmapy SM_CXDLGFRAME = 7 Pouze WinNT - Üφ°ka rßmu dialogu SM_CXDOUBLECLK = 36 èφ°ka obdΘlnφku, ve kterΘm musφ b²t dvakrßt kliknuto pro rozpoznßnφ double-click SM_CXDRAG = 68 Minimßlnφ Üφ°ka, o kterou se musφ kurzor pohnout pro zaΦßtek operace drag-and-drop SM_CXEDGE = 45 Pouze Win95/98 - Üφ°ka 3D pozadφ okna SM_CXFRAME = 32 Pouze WinNT - Üφ°ka pozadφ okna, kterΘ m∙₧e m∞nit velikost SM_CXFULLSCREEN = 16 èφ°ka plochy v okn∞, kterΘ je roztßhnuto na celou obrazovku SM_CXHSCROLL = 21 Pouze Win95/98 - Üφ°ka bitmapy ukazatele na horizontßlnφm ScrollBaru SM_CXHTHUMB = 10 èφ°ka "posuvnφku" horizontßlnφho ScrollBaru SM_CXICON = 11 Standardnφ (default) Üφ°ka ikony SM_CXICONSPACING = 38 WinNT - Üφ°ka bu≥ky pro umφst∞nφ ikony Win95/98 - Üφ°ka bu≥ky pro umφst∞nφ ikony v pohledu VelkΘ ikony (Large View) SM_CXMAXIMIZED = 61 Pouze Win95/98 - standardnφ Üφ°ka maximalizovanΘho okna SM_CXMAXTRACK = 59 Pouze Win95/98 - standardnφ maximßlnφ Üφ°ka, na kterou je mo₧nΘ zv∞tÜit okno SM_CXMENUCHECK = 71 Pouze Win95/98 - Üφ°ka standardnφ bitmapy pro zobrazenφ check-mark menu SM_CXMENUSIZE = 54 Pouze Win95/98 - Üφ°ka tlaΦφtka v menu (menu bar button) SM_CXMIN = 28 Minimßlnφ Üφ°ka okna SM_CXMINIMIZED = 57 Pouze Win95/98 - Üφ°ka normßlnφho minimalizovanΘho okna SM_CXMINSPACING = 47 Pouze Win95/98 - Üφ°ka bu≥ky pro zobrazovßnφ minimalizovan²ch oken SM_CXMINTRACK = 34 Pouze Win95/98 - standardnφ minimßlnφ Üφ°ka, kam je u₧ivateli dovoleno zmenÜit okno SM_CXSCREEN = 0 èφ°ka obrazovky SM_CXSIZE = 30 WinNT - Üφ°ka bitmapy titulku okna (TitleBar) Win95/98 - Üφ°ka tlaΦφtka v titulku okna SM_CXSIZEFRAME = 32 Pouze Win95/98 - Üφ°ka "Thick" rßmu okna SM_CXSMICON = 49 Pouze Win95/98 - doporuΦenß Üφ°ka pro malΘ ikony SM_CXSMSIZE = 52 Pouze Win95/98 - Üφ°ka malΘho tlaΦφtka v titulku okna SM_CXVSCROLL = 2 Pouze Win95/98 - Üφ°ka vertikßlnφho ScrollBaru SM_CYBORDER = 6 WinNT - v²Üka pozadφ okna Win95/98 - v²Üka pozadφ "single" okna SM_CYCAPTION = 4 V²Üka plochy titulkovΘho pruhu SM_CYCURSOR = 14 WinNT - v²Üka kurzoru Win95/98 - v²Üka standardnφ kurzorovΘ bitmapy SM_CYDLGFRAME = 8 Pouze WinNT - v²Üka rßmu dialogu SM_CYDOUBLECLK = 37 V²Üka obdΘlnφku, do kterΘho je nutno kliknout myÜφ pro rozpoznßnφ double-click SM_CYDRAG = 69 Minimßlnφ v²Üka o kterou se musφ posunou kurzor pro zaΦßtek operace drag-and-drop SM_CYEDGE = 46 Pouze Win95/98 - v²Üka 3D pozadφ okna SM_CYFRAME = 33 Pouze WinNT - v²Üka pozadφ okna, kterΘ m∙₧e m∞nit velikost SM_CYFULLSCREEN = 17 V²Üka plochy okna, kterΘ je p°es celou obrazovku (full-screen) SM_CYHSCROLL = 3 Pouze Win95/98 - v²Üka horizontßlnφho ScrollBaru SM_CYICON = 12 Standardnφ v²Üka ikony SM_CYICONSPACING = 39 WinNT - v²Üka bu≥ky pro umφst∞nφ ikony Win95/98 - v²Üka bu≥ky pro umφst∞nφ ikony v pohledu VelkΘ ikony (Large icon view) SM_CYMAXIMIZED = 62 Pouze Win95/98 - standardnφ v²Üka maximalizovanΘho okna SM_CYMAXTRACK = 60 Pouze Win95/98 - standardnφ maximßlnφ v²Üka, kam m∙₧e u₧ivatel roztßhnout okno SM_CYMENU = 15 V²Üka panelu menu SM_CYMENUCHECK = 72 Pouze Win95/98 - v²Üka standardnφ bitmapy pro zobrazenφ check-mark menu SM_CYMENUSIZE = 55 Pouze Win95/98 - v²Üka tlaΦφtka v menu (menu bar button) SM_CYMIN = 29 Minimßlnφ v²Üka okna SM_CYMINIMIZED = 58 Pouze Win95/98 - v²Üka normßlnφho minimalizovanΘho okna SM_CYMINSPACING = 48 Pouze Win95/98 - v²Üka bu≥ky pro umφst∞nφ minimalizovanΘho okna SM_CYMINTRACK = 35 Pouze Win95/98 - standardnφ minimßlnφ v²Üka, na kterou m∙₧e u₧ivatel zmenÜit okno SM_CYSCREEN = 1 V²Üka obrazovky SM_CYSIZE = 31 WinNT - v²Üka bitmapy titulkovΘho pruhu Win95/98 - v²Üka tlaΦφtka v titulkovΘm pruhu SM_CYSIZEFRAME = 33 Pouze Win95/98 - v²Üka rßmu "thick" okna SM_CYSMCAPTION = 51 Pouze Win95/98 - v²Üka plochy malΘho titulku SM_CYSMICON = 50 Pouze Win95/98 - doporuΦenß v²Üka pro malΘ ikony SM_CYSMSIZE = 53 Pouze Win95/98 - v²Üka malΘho tlaΦφtka v titulkovΘm pruhu SM_CYVSCROLL = 20 Pouze Win95/98 - v²Üka bitmapy ukazatele na vertikßlnφm ScrollBaru SM_DEBUG = 22 Vracφ nenulovou hodnotu, pokud je nainstalovßna ladφcφ verze USER.EXE, 0 pokud ne SM_MENUDROPALIGNMENT = 40 Vracφ nenulovou hodnotu, pokud se popup menu zobrazuje vpravo, 0 v p°φpad∞ zobrazovßnφ vlevo SM_MIDEASTENABLED = 74 Vracφ nenulovou hodnotu, jestli je system nastaven na pou₧itφ HebrejÜtiny a ArabÜtiny, 0 pokud ne SM_MOUSEPRESENT = 19 Vracφ nenulovou hodnotu, jestli₧e je myÜ nainstalovßna a rozpoznßna, 0 pokud ne SM_NETWORK = 63 Pokud je nainstalovßna sφ¥, nastavφ bit &H1 nßvratovΘ hodnoty. SM_PENWINDOWS = 41 Vracφ nenulovou hodnotu, jestli₧e je nainstalovßno rozÜφ°enφ MS Windows for Pen computing, jinak 0 SM_SLOWMACHINE = 73 Vracφ nenulovou hodnotu, pokud mß PC pomal² procesor, 0 pokud ne SM_SWAPBUTTON = 23 Vracφ nenulovou hodnotu, pokud jsou p°ehozena tlaΦφtka myÜi (levΘ za pravΘ a naopak)
Zaheslovanß databßze Access, ₧ßdn² problΘm
Zaheslovali jste si databßzi Access a neznßte heslo? Pou₧ijte tuto VELICE JEDNODUCHOU funkci. Na ofsetu &H42 (neboli 66) staΦφ p°eΦφst 13 znak∙ a pou₧φt funkci XOR s jednotn²m klφΦem a hle, heslo je na sv∞t∞. Databßze m∙₧e b²t klidn∞ i zaÜifrovanß, postup se v∙bec nem∞nφ.
Public Function DejMDBHeslo(ByVal soubor As String) As String Dim i As Long, s As Integer, strKlic As String Dim strHeslo As String, strCti As String * 13 If Len(Dir(soubor)) = 0 Then MsgBox "Soubor neexistuje" Else strKlic = "å√∞7]D£·╞^(µ" s = FreeFile Open soubor For Binary As #s Get #s, 67, strCti Close s For i = 0 To 12 strHeslo = strHeslo & _ Chr(Asc(Mid(strCti, i + 1, 1)) Xor Asc(Mid(strKlic, i + 1, 1))) Next i DejMDBHeslo = strHeslo End If End Function
Kdo tomu nev∞°φte, zkopφrujte si tento progrßmek, spus¥te jej a potom zkuste databßzi otev°φt z heslem, kterΘ vßm nabφdl.
Chcete-li mφt n∞kterou polo₧ku ve v²ΦtovΘm typu skrytou, uzav°ete ji do hranat²ch zßvorek a p°ed nßzev dejte podtr₧φtko. CelΘ to m∙₧e vypadat t°eba takto:
Public Enum mujVycet prvni=1 druhy=2 [_skryty]=3 posledni=4 End Enum
V tomto p°φpad∞ je skrytß polo₧ka [_skryty].
Jestli₧e pou₧φvßte prvek WebBrowser, a chcete zobrazit prßzdnou strßnku, zkuste tento k≤d:
Public Sub PrazdnaWWW(browser AS WebBrowser) browser.Navigate "about:blank" End Sub
Je to v²hodnΘ u₧ z toho d∙vodu, ₧e WebBrowser vypadß s prßzdnou strßnkou mnohem lΘpe ne₧ bez jakΘkoliv strßnky (p°idß ScrollBar a ud∞lß ze sebe 3D okno).
Mßte-li povolen MultiSelect (u ListBoxu) a chcete zjistit, kterΘ polo₧ky jsou vybranΘ, nenφ jinΘ cesty ne₧ tΘto:
Dim i As Long For i = 0 To List1.ListCount - 1 If List1.Selected(i) Then Debug.Print "Polo₧ka " & List1.List(i) & " je vybrßna." End If Next i
Pokud znß n∞kdo lepÜφ zp∙sob, nevßhejte a napiÜte.
P°esune-li se u₧ivatel VaÜeho programu na n∞jakΘ textovΘ pole (po naÜem TextBox), Φasto chce p∙vodnφ text automaticky oznaΦit. Jak to ud∞lat? Vyberte si, co se vßm lφbφ vφce:
Private Sub Text1_GotFocus() SendKeys "{home}+{end}" End Sub Private Sub Text1_GotFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub
Jak p°eskoΦit na konec textu v TextBoxu
Text1.SelStart = Len(Text1.Text)
To je opravdu vÜechno.
ENTER se chovß stejn∞ jako TAB
Na stisk klßvesy TAB se focus (fokus, ohnisko ...) p°esune na dalÜφ prvek. Chcete-li tohoto dosßhnout i po stisku klßvesy ENTER, pou₧ijte tento k≤d:
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then KeyAscii = 0 SendKeys "{TAB}" End If End Sub
Mno₧stvφ ΦervenΘ, zelenΘ a modrΘ barvy v barv∞ urΦenΘ jednφm Φφslem zφskßme takto:
cervena = barva Mod 256 zelena = (barva \ 256) Mod 256 modra = barva \ 256 \ 256
Pokud dostanete Φφslo v pon∞kud jinΘm formßtu (systΘmovΘ barvy, t°eba &H7000000B), vykreslete v tΘto barv∞ bod na obrazovku a zjist∞te jeho barvu takto:
PSet (1,1),&H7000000B 'vykresleni bodu barva=Point(1,1) 'zjisteni barvy
S takto zjiÜt∞nou barvou u₧ m∙₧ete zopakovat v²Üe uveden² postup rozkladu na jednotlivΘ slo₧ky RGB.