FAQ

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

Jak zobrazφm dialog pro v²b∞r adresß°e (nejlΘpe pomocφ API), u kterΘho bych mohl p°edem nastavit cestu?

Pomocφ funkce API SHBrowseForFolder.

'Deklarace funkcφ a konstant API
Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _
  "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _
  "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Type BROWSEINFO
  hOwner As Long
  pidlRoot As Long
  pszDisplayName As String
  lpszTitle As String
  ulFlags As Long
  lpfn As Long
  lParam As Long
  iImage As Long
End Type

Const BIF_RETURNONLYFSDIRS = &H1


'K≤d na zobrazenφ dialogu
Dim udtBrowseInfo As BROWSEINFO, pid As Long
Dim path As String
With udtBrowseInfo
  .hOwner = Me.hWnd
  'Zobrazen² text
  .lpszTitle = "Vyberte slo₧ku."
  .ulFlags = BIF_RETURNONLYFSDIRS
End With
pid = SHBrowseForFolder(udtBrowseInfo)
path = Space(260)
SHGetPathFromIDList ByVal pid, ByVal path
MsgBox "Vybranß slo₧ka: " & Left(path, InStr(1, path, Chr(0)) - 1)


Jak²m nejrychlejÜφm zp∙sobem m∙₧u obarvit text v RichTextBoxu. Text v RichTextBoxu je dlouh² p°ibli₧n∞ 10 strßnek. Na Internetu jsem naÜla n∞kolik zp∙sob∙, ale kdy₧ chci obarvit dlouh² text, VB se zasekne nebo obarvenφ trvß dlouhou dobu (2-5 minut). Nevφte tedy, jak se dß text obarvit rychleji?

Pou₧ijte metodu SelColor. Obarvφ vybran² text zadanou barvou (vybrat se dß pomocφ SelStart a SelLength). Pro text, kter² mß 5000 °ßdk∙ (kdyby bylo 100 °ßdk∙ na strßnce, jde o 50 stran) je doba obarvenφ v °ßdu desetin sekundy.

rtf1.SelStart = 1
rtf1.SelLength = Len(rtf1.Text)
rtf1.SelColor = vbBlue


Jak mohu ve VB .NET za b∞hu programu naΦφst obrßzek do PictureBoxu? LoadPicture jaksi nefunguje.

PictureBox ji₧ nemß vlastnost Picture, ale pouze Image, co₧ je abstraktnφ t°φda, od kterΘ jsou odvozeny t°φdy Bitmap, Icon a Metafile. Tak₧e chcete-li zobrazit n∞jak² obrßzek, pou₧ijte tento k≤d (samoz°ejm∞ s t°φdou, kterß nßle₧φ p°φsluÜn²m typ∙m):

PictureBox1.Image = New System.Drawing.Bitmap("C:\soubor.bmp")


Jakß vlastnost je ve VB .NET mφsto SelStart u RichTextBoxu?
Mφsto vlastnosti SelStart v RichTextBoxu je SelectionStart. Ostatnφ vlastnosti t²kajφcφ se v²b∞ru textu jsou potom SelectionLength a SelectionColor.


Jak²m zp∙sobem mohu ulo₧it do resource souboru MP3 soubor a jak ho odtud zφskat?

Odpov∞∩ ma dotaz nßm zaslal pan Pavel Nechanick²:

Ve VB je mo₧nΘ do resource souboru mimo jinΘ ulo₧it vlastnφ zdroj "Add Custom resource". K tomu je v dokumentaci Φlßnek zab²vajici se soubory Wav, co₧ je totΘ₧:

Using LoadResData with Binary Data
Article ID: Q141505

Data lze potom jednoduÜe naΦφst do bajtovΘho pole, p°φpadn∞ ulo₧it jako soubor.

Dim bytSound() As Byte 'Always store binary data in byte arrays!

bytSound = LoadResData(vntResourceID, vntType)

Open vntResourceID & "file.mp3" For Binary Access Write As #1
  Put #1, 1, bytSound
Close #1

JeÜt∞ bych doporuΦil p°eΦφst si omezenφ v dalÜφm Φlßnku:

DOC: LoadResData Function Does Not Support All Formats
Article ID: Q171731


Cht∞l jsem ud∞lat chat pomocφ prvku winsock, ale nevφm, jak p°ipojit vφce ne₧ jednoho u₧ivatele k serveru.
Pokud chcete pou₧φt prvek Winsock a protokol TCP, m∙₧ete pomocφ jednoho prvku vytvo°it jen jedno p°ipojenφ. Chcete-li jich vφce, musφte pro ka₧dΘ p°ipojenφ nahrßt dalÜφ prvek Winsock. Tzn. jeden prvek si nechßte pro p°ipojovßnφ klient∙ a p°i ka₧dΘm vy₧ßdßnφ p°ipojenφ (ConnectionRequest) nahrajete dalÜφ a ten budete pou₧φvat pro danΘho klienta.


Otßzky bez odpov∞di

Jak mohu aktivovat ·sporn² re₧im?


Vytvo°il jsem program, kter² pracuje se soubory vlastnφho formßtu. Soubory majφ vlastnφ p°φponu .dpw. Soubory jsou asociovßny s m²m programem. Mohu n∞jak²m zp∙sobem p°idat do vlastnostφ tohoto typu souboru (*.dpw) dalÜφ zßlo₧ku, kterß by obsahovala bli₧Üφ informace o dokumentu, podobn∞ jako je to u souboru .doc ve Wordu?


Znßte n∞jak² prvek ActiveX, kter² by zv²raz≥oval syntaxi zdrojovΘho k≤du HTML a k≤du Visual Basicu?


Pot°eboval bych pomocφ funkce API vyvolat dialog "Najφt". SlyÜel jsem, ₧e je to p°esn∞ funkce Findtext. Jejφ deklaraci jsem si naÜel v programu API Text Viewer vΦetn∞ typu FINDREPLACE.


Neexistuje n∞jak² OCX, nebo DLL knihovna, kterß by umo₧≥ovala odesφlßnφ krßtk²ch textov²ch zprßv rovnou z PC p°es modem?


Jak lze p°ijφmat/posφlat data na n∞kter² z port∙ ve Windows 2000?


Nevφte kde se dß sehnat (pokud existuje) prvek, kter² se chovß jako textovΘ pole ve Wordu?


Pou₧φvßm VB6 a cht∞l bych z mΘho programu otev°φt soubor PhotoPaintu. K≤d vypadß nßsledovn∞:

Dim xApp as PHOTOPAINT.CPntAutomate
xApp.FileOpen ("nazov suboru")

Bohu₧el to takto nefunguje. Co jeÜt∞ musφm zadat, aby se soubor otev°el?


Jak zjistit, kolik bajt∙ bylo sta₧eno p°es Internet v p°edem danΘ dob∞? Jde mi o p°ipojenφ p°es lokßlnφ sφ¥, ne p°es modem.


Jak se dß ve Visual basicu ovlßdat USB port?


Ve Windows 98 jsem vytvo°il program s ovlßdacφm prvkem Timer. Program fungoval bez problΘm∙, ale kdy₧ jsem jej spustil na Windows 2000, prvek Φasoval asi 5x rychleji. Nevφte so s tφm?


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.).