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