Otßzky a odpov∞di
V tΘto rubrice najdete odpov∞di na svΘ otßzky, kterΘ m∙₧ete zasφlat na adresu
vbtipy@seznam.cz. Pokud nebudeme znßt odpov∞∩ na n∞jakou
otßzku, objevφ se v Φßsti Otßzky bez odpov∞di a budete-li znßt odpov∞∩ vy,
m∙₧ete nßm ji pomocφ v²Üe uvedenΘ adresy zaslat, rßdi ji zve°ejnφme.
Otßzky a odpov∞di
Otßzky bez odpov∞di
Otßzky a odpov∞di
KterΘ soubory si mßm nahrßt na sv∙j poΦφtaΦ, abych nemusel p°i hledßnφ informacφ nebo studiu Visual Basicu
neustßle Φφst z CD.
Pokud chcete celou rubriku VB, tak cel² adresß° VBasic z adresß°e Zkuste. Chcete-li pouze serißl nebo jinou Φßst,
v₧dy pouze odpovφdajφcφ HTML soubor z adresß°e Zkuste\VBasic (v p°φpad∞ serißlu je to serial.htm atp.)
a dva souvisejφcφ podadresß°e, nap° pro serißl je to Data\Serial a CCD\Serial, pro activex to je Data\ActiveX
a CCD\ActiveX atd.
Jak zjistφm nejdelÜφ polo₧ku v ListBoxu a na zßklad∞ tΘto dΘlky nastavφm horizontßlnφ posuvnφk?
Horizontßlnφ posuvnφk nastavφte zaslßnφm zprßvy LB_SETHORIZONTALEXTENT p°φsluÜnΘmu ListBoxu s dΘlkou v pixelech.
SendMessage List1.hwnd, LB_SETHORIZONTALEXTENT, lText/Screen.TwipsPerPixelX, 0&
Hodnota lText je nejdelÜφ polo₧ka v ListBoxu zjiÜt∞nß takto:
Dim i As Long, lText As Long, tmp As Long
lText = 0
For i = 0 To List1.ListCount - 1
tmp = TextWidth(List1.List(i))
If tmp > lText Then lText = tmp
Next i
lText = lText + TextWidth(" ")
Pot°ebuji v databßzi najφt n∞jak² zßznam, ale nevφm jak. ZkouÜel jsem tento k≤d (nφ₧e uveden²), ale bohu₧el
nefunguje.
propmpt = "Zadej ·plnΘ jmΘno pro hledßnφ"
searchStr = InputBox(prompt$, "hledan² °et∞zec")
Data1.Recordset.Index = "NßzevFirmy"
Data1.Recordset.Seek "=", searchStr
ProblΘm je v pou₧itφ metody Seek . Funguje pouze pro sady zßznamu (Recordsety) otev°enΘ jako tabulka, tzn.
bu∩ dbOpenTable nebo p°i pou₧itφ prvku Data, co₧ je vßÜ p°φpad, nastavit vlastnost RecordsetType
prvku Data na hodnotu 0 neboli Table . Pokud nechcete otevφrat Recodset jako tabulku, musφte
pou₧φt tento k≤d:
propmpt = "Zadej ·plnΘ jmΘno pro hledßnφ"
searchStr = InputBox(prompt$, "hledan² °et∞zec")
Data1.Recordset.FindFirst "NßzevFirmy='" & searchStr & "'"
Nevφte jak ud∞lat, aby p°i ukonΦenφ Windows m∙j program dal hlßÜenφ, ₧e je v CD-Rom jednotce vlo₧eno CD?.
P°i ukonΦovßnφ Windows standardnφm zp∙sobem, tj. pomocφ nabφdky Start - Vypnout, je vÜem aplikacφm zaslßna
zprßva WM_QUERYENDSESSION . Tuto zprßvu musφte odchytit a potom zjistit, zda je v mechanice vlo₧eno
CD t°eba zjiÜt∞nφm volnΘho mφsta pomocφ vlastnosti FreeSpace objektu Drive (rozÜφ°enφ
Microsoft Scripting Runtime). Pokud nenφ po₧adovan² disk p°φstupn² (tj. CD v mechanice nenφ), vyvolß chybu,
kterou lze samoz°ejm∞ oÜet°it nap°. takto:
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
i = fso.Drives(strDrive).FreeSpace
If Err.Number = 0 Then
Debug.Print "CD je v mechanice"
End If
On Error GoTo 0
Otßzky bez odpov∞di
Pot°ebuji vytvo°it aplikaci, kterß by um∞la °φct jin²m program∙m, aby se nezobrazovali v TaskBaru. Tzn. stejn∞
jako kdy₧ u svΘ aplikace nastavφm ShowInTaskBar na False .
Jak se dß ud∞lat kontrolnφ souΦet (CRC32) souboru?
ZkouÜel jsem p°idat bitmapu do menu pomocφ API funkce SetMenuItemBitmaps. V normßlnφm menu
to funguje. Jakmile vÜak stejn² postup pou₧iji v PopupMenu, obrßzek se nezobrazφ.
Rßd by som zφskal informßcie o API funkcißch pre prßcu s resources, sp⌠sob ich volania
vo VB a informßcie potrebnΘ pre sprßvny chod funkcie:
loadresource, findresorce, freeresource, updateresource. Chcel by som urobi¥ mal²
lokalizßtor, a na to s· potrebnΘ tieto funkcie, v angliΦtine (MSDN) som Φosi porozumel,
ale neviem ako loadnutΘ resource zobrazi¥ v Image, txt objekte, a ako ich updatova¥ do
s·boru.
V MSDN je zmienka o pou₧itφ interfacu k objektom Windows Exploreru na vlo₧enie
objektov (Listview, treeview, combo, taskbar at∩ ) do vlastn²ch aplikßciφ, ale prilo₧enΘ
vzory s· pre C++. Chcem Vßs po₧iada¥ o nejakΘ moduly alebo prφklady pre pou₧itie t²chto
objektov, za Φo Vßm budem ve╛mi v∩aΦn² ! Zaujφma ma hlavne zobrazenie Listview, treeview,
combo z exploreru a objekty z taskbaru (tabsysview, systraj objekt, objekt hodφn a ponuky
ètart pre vytvorenie novΘho typu taskbaru). Ve╛mi Vßs prosφm o pomoc.
|