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

Pot°eboval bych v∞d∞t jestli jde (a pokud ano tak jak) k polo₧ce v prvku ListView n∞jak p°idat mφsto ikony obrßzek, nap°. JPG, BMP, atd.
 

Obrßzek k polo₧ce v prvku ListView se p°idßvß pomocφ prvku ImageList takto:

  • Vyberte prvek ListView a v okn∞ Propertis otev°ete strßnku vlastnostφ kliknutφm na polo₧ku Custom,
  • zvolte zßlo₧ku ImageLists,
  • v seznamu vyberte jmΘno prvku ImageList, kter² bude reprezentovat obrßzky pro zobrazenφ lvwIcon (polo₧ka Normal) a obrßzky pro ostatnφ zobrazenφ (polo₧ka Small).

P°idßvßte-li novou polo₧ku do ListView pomocφ metody Add kolekce ListItems, m∙₧ete zadat jako jeden z parametr∙ i index ikony (v prvku ImageList). ImageList podporuje jak soubory ICO, tak BMP, JPG, GIF a dalÜφ.


Pokud n∞co vykreslφm do PictureBoxu (pomocφ metody PSet), zmizφ to, jakmile PictureBox p°ekryji jin²m oknem.
 
Pokud chcete aby z∙stalo vÜe, co nakreslφte do PictureBoxu pomocφ metod pro kreslenφ (nap°. Pset) vid∞t, musφte nastavit vlastnost AutoRedraw na hodnotu True. V opaΦnΘm p°φpad∞ musφte vÜe p°i p°ekrytφ vykreslit znovu.


Vytvo°il jsem projekt ActiveX EXE. Te∩ jej chci zm∞nit na ActiveX DLL. Jak jej mohu zkonvertovat?
 
Projekt nemusφte nijak konvertovat, staΦφ pouze nastavit typ projektu. Spus¥te dialog Project Properties (menu Project -> Properties) a v zßlo₧ce General nastavte polo₧ku Project type.


V programu sΦφtßm dv∞ Φφsla typu Integer a v²sledek uklßdßm do prom∞nnΘ typu Long. V₧dy vÜak vyskoΦφ chyba. K≤d vypadß takto:

Dim i As Integer, j As Integer, l As Long
i = 1000: j = 1000
l = i * j - tady vyskoΦφ chyba

 

Stejnou chybu jsme zde ji₧ jednou probφrali, proto₧e se vÜak na to samΘ ptßte Φasto, jeÜt∞ jednou zopakujeme. ProblΘm je v tom, ₧e prom∞nnß i a j jsou typu Integer. Visual Basic tedy vytvß°φ v²sledek typu Integer a a₧ potΘ jej p°evßdφ na typ Long (prom∞nnß l). Samoz°ejm∞ vyskoΦφ chyba, proto₧e v²sledek 1000 * 1000 p°esahuje mo₧nosti typu Integer. Aby k≤d fungoval tak jak chcete, musφte nejd°φve jednotlivΘ prom∞nnΘ p°evΘst na typ Long:

Dim i As Integer, j As Integer, l As Long
i = 1000: j = 1000
l = Clng(i) * Clng(j)


Kdy₧ otev°u nov² nov² projekt, cesta k n∞mu je nastavena na C:\Program Files\Microsoft Visual Studio\VB98. Ja vÜak chci, aby byla standardnφ cesta jinß.
 
Visual Basic neumo₧≥uje nastavit standardnφ cestu k projekt∙m. Jedinß mo₧nost je vytvo°it si zßstupce na Visual Basic a v jeho vlastnostech nastavit polo₧ku "Kde zaΦφt" na vßmi ₧ßdanou cestu.


Jak mohu vypnout jinou aplikaci? ZkouÜel jsem funkci API DestroyWindow, ta vÜak nefunguje (handle okna zjiÜ¥uji pomocφ FindWindow).
 
Pokud se sna₧φte vypnout jinou aplikaci, pou₧ijte rad∞ji funkci API SendMessage se zprßvou WM_CLOSE. DestroyWindow neumo₧≥uje zruÜit okno vytvo°enΘ jin²m vlßknem.


Otßzky bez odpov∞di

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