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
Pot°ebuji program, kter² bude pracovat v rozliÜenφ 640x480. Jak zm∞nφm rozliÜenφ obrazovky?
P°φpadn∞ jak jej po skonΦenφ programu vrßtφm do p∙vodnφho stavu?
RozliÜenφ obrazovky zm∞nφte pomocφ funkce API ChangeDisplaySettings .
Nejd°φve je vÜak pot°eba otestovat, zda obrazovka zadanΘ rozliÜenφ podporuje. Toho
dosßhnete pomocφ parametru CDS_TEST . Pokud ano, pomocφ stejnΘ funkce, ale
ji₧ s parametrem CDS_UPDATEREGISTRY jej zm∞nφte. Pokud jde o nßvrat zp∞t, staΦφ
si pomocφ funkce API EnumDisplaySettings zjistit stßvajφcφ
rozliÜenφ, ulo₧it si jeho parametry a po skonΦenφ programu jej nastavit. Vφce
v tomto p°φkladu.
Pot°ebuji text odd∞len² Φßrkami ("letadlo,motor,pes") z prom∞nnΘ typu String
rozd∞lit na jednotlivΘ polo₧ky.
Tento problΘm °eÜφ funkce Split . Zadßte jφ po₧adovan² °et∞zec a druh odd∞lovaΦe,
funkce vßm vrßtφ jednorozm∞rnΘ pole, kde ka₧dß polo₧ka obsahuje jedno slovo.
Dim i As Long, s As String, p() As String
s = "prvni,druha,treti,ctvrta"
p = Split(s, ",")
For i = 0 To UBound(p)
Debug.Print p(i)
Next i
Jak zobrazφm dialog pro formßtovßnφ disket?
Dialog pro formßtovßnφ disket zobrazφ funkce API
SHFormatDrive . Kter² disk se zformßtuje, urΦuje parametr
Drive (zadßvß se jako po°adovΘ Φφslo, tzn. A je 0, B je 1 atd.).
Declare Function SHFormatDrive Lib "shell32" (ByVal hWnd As Long, ByVal Drive As Long, ByVal fmtID As Long, ByVal Options As Long) As Long
Dim d As Long
d = Asc("A") - 65
SHFormatDrive Form1.hWnd, d, &HFFFF, 0
Poslednφ parametr jen p°ednastavφ n∞kterΘ mo₧nosti, 0 - rychl² formßt (quick format),
1 - kompletnφ formßt (full format), 2 - zkopφrovßnφ systΘmov²ch soubor∙. Ostatnφ
parametry asi nenφ pot°eba vysv∞tlovat (frmtID nem∞≥te, nechte jej nastaven
tak jak je v p°φkladu).
Jak vlo₧φm do RichTextBoxu na aktußlnφ pozici kurzoru libovoln² text?
Pomocφ vlastnosti SelText . Pokud je n∞jak² text vybrßn, nahradφ
jej, pokud ne, vlo₧φ zadan² text na pozici kurzoru.
Stejn² zp∙sob funguje i pro TextBox.
rtf1.SelText = "nov² text"
Jak mohu p°ijφmat a odesφlat data na sΘriov² port.
Na prßci se sΘriov²m portem je ve VB prvek MSComm. V MSDN k n∞mu najdete
celkem dobr² p°φklad na pou₧itφ. Pokud by vßm nevyhovoval, m∙₧ete pou₧φt
n∞kterou z knihoven na Internetu, je jich spousta, dobrß je nap°. win95io.dll.
Jak p°esn∞ slou₧φ CommonDialog k tisku a jak uplatnit toto nastavenφ
nap°. pro tisk z RichTextBoxu?
Detailnφ popis nastavenφ tisku najdete dob°e popsan² v MSDN. K vyvolßnφ dialogu
slou₧φt metoda ShowPrinter . Pokud jde o tisk z RichTextBoxu, nastavte
vlastnost Flags na hodnotu cdlPDReturnDC (&H100), co₧
zajistφ, ₧e je vrßcen device kontext vybranΘ tiskßrny ve vlastnosti dialogu
hDC . Tisk z RichTextBoxu je potom proveden metodou SelPrint ,
kterß mß jako parametr i device kontext za°φzenφ, na kterΘ se mß tisk provΘst.
Dim i As Long
dlg1.Flags = cdlPDReturnDC + cdlPDUseDevModeCopies
dlg1.ShowPrinter
For i = 1 To dlg1.Copies
rtf1.SelPrint dlg1.hDC
Next i
DalÜφ mo₧nost je vyu₧itφ vlastnosti dialogu
PrinterDefault na hodnotu True . Vybranß tiskßrna se
potom stane default tiskßrnou a tisk pomocφ objektu Printer je proveden na ni.
Narazil jsem na problΘm s prvkem ADODC (ADO Data Control). V databßzi
mßm pole, kterΘ obsahuje Φφsla barev. Chci za°φdit aby se pozadφ
prvku Image m∞nilo v zßvislosti na hodnotßch v databßzi, tzn.
kliknu-li na tlaΦφtko na prvku ADODC, zm∞nφ se pozadφ na zßklad∞ aktußlnφ
hodnoty v databßzi stejn∞ jako nap°. text v TextBoxu.
Vlastnost BackColor nenφ mo₧no automaticky navßzat na prvek
ADODC. Musφte si pozadφ nastavit sßm, nejlΘpe jako reakci na udßlost
MoveComplete .
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset20)
If (Not pRecordset.EOF) And (Not pRecordset.BOF) Then
Picture1.BackColor = pRecordset.Fields("barva")
End If
End Sub
Otßzky bez odpov∞di
Pot°eboval bych poradit, jak ze souboru MP3 zφskat informaci,
jak je pφse≥ v n∞m obsa₧enß dlouhß (staΦilo by mi, jak zjistit poΦet kbps).
Pot°ebuji ve svΘm programu pou₧φt pr∙hledn² textbox nebo textbox, ve kterΘm by byl na pozadφ mnou vybran² obrßzek.
Na Internetu jsem naÜel t°i r∙znΘ nßvody, ale ani jeden neposkytuje takovΘ funkce jako p∙vodnφ textbox
(ScrollBar, DataField atd.).
Pot°ebuji pou₧φt funkci Inkey , ale Visual Basic ji nemß. Neznßte zp∙sob, jak ji nahradit?
Nevφte jak zjistit, kterΘ klßvesy byly stisknuty, kdy₧ je m∙j program na pozadφ?
N∞jak to jφt musφ, vyu₧φvajφ toho nap°. programy CS-VOICE a BlackBox.
Jak je mo₧nΘ zm∞nit IP adresu a masku podsφt∞ pomocφ Visual Basicu 5.0 nebo 6.0 na Windows 2000? A je mo₧nΘ
vrßtit nastavenφ zp∞t na zφskßnφ IP z DHCP serveru?
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φ.
|