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.
|
Jak lze u ovlßdacφch prvk∙ DataGrid a DbGrid p°idßvat a odebφrat sloupce?
|
|
U prvku DataGrid je to jednoduÜÜφ, staΦφ zavolat metodu Add kolekce
Columns .
dbg1.Columns.Add 1
dbg1.Columns.Add 2
U prvku DBGrid p°idßte sloupec podobn²m zp∙sobem, jen je jeÜt∞ t°eba nastavit jeho
viditelnost.
DBGrid1.Columns.Add 2
DBGrid1.Columns(2).Visible = True
|
|
Zajφmalo by m∞, jestli lze ve VB n∞jak nastavit verze mΘho programu,
kterß se u₧ivateli objevφ ve vlastnostech na kart∞ verze?
|
|
V menu Project->Properties, zßlo₧ka Make, polo₧ky Major, Minor a Revision.
V programu tyto informace m∙₧ete zφskta p°es vlastnosti objektu App ,
App.Major , App.Minor a App.Revision .
|
|
Lze n∞jak v RichTextBoxu nastavit hornφ a dolnφ index pro ty znaky,
kterΘ si u₧ivatel vybere?
|
|
Hornφ a dolnφ index lze vytvo°it pomocφ vlastnosti SelCharOffset .
Ta urΦuje vzdßlenost pφsma od zßkladnφ Φßry (v twipech). Kladnß hodnota pφsmo posouvß
nahoru, zßpornß dol∙. Tzn. ₧e chcete-li hornφ index, nastavte nap°. hodnotu
200, pro dolnφ index nap°. -200 (takΘ je dobrΘ zmenÜit velikost pφsma).
Zkuste nap°. tento k≤d:
With rtf1
.SelFontSize = 20
.SelText = "2*E"
.SelFontSize = 8
.SelCharOffset = 200
.SelText = 10
End With
|
|
Napsal jsem si textov² editor ve VB 6 a a₧ potΘ zjistil,
₧e nemohu do tohoto editoru naΦφst v∞tÜφ soubor ne₧ cca 64KB.
Je mo₧nΘ, aby m∙j editor naΦφtal i v∞tÜφ soubory, nap°. 1MB?
|
|
Maximßlnφ velikost textu v jedno°ßdkovΘm TextBoxu je 2048B, pro vφce °ßdkov²
TextBox je to 32KB. Pokud chcete pracovat s delÜφm textem, pou₧ijte RichTextBox.
|
|
Ve svΘ aplikaci spouÜtφm pomocφ ADO a objektu Connection
dotaz na databßzi. Tento dotaz vÜak trvß hodn∞ dlouho a ne₧ skonΦφ, celß aplikace
je tzv. "zmrzlß", tj. nereaguje na nic. Je n∞jak mo₧nΘ spustit dotaz a neΦekat na
jeho ukonΦenφ?
|
|
Mo₧nΘ to samoz°ejm∞ je a dokonce velmi jednoduÜe. StaΦφ nastavit parametr
Options metody Execute na hodnotu adAsyncExecute .
V tomto p°φpad∞ program neΦekß na ukonΦenφ dotazu a hned pokraΦuje dßle. Chcete-li
v∞d∞t jak dotaz dopadnul, nadefinujte prom∞nnou typu Connection
s klφΦov²m slovem WithEvents . Takto m∙₧ete odchytit
udßlost ExecuteComplete , kterß je vyvolßna
po ukoΦenφ SQL p°φkazu. Velmi zjednoduÜen∞ asi takto:
Private WithEvents cn As ADODB.Connection
Private Sub cn_ExecuteComplete(ByVal RecordsAffected As Long, ByVal pError As ADODB.Error, _
adStatus As ADODB.EventStatusEnum, ByVal pCommand As ADODB.Command, _
ByVal pRecordset As ADODB.Recordset, ByVal pConnection As ADODB.Connection)
MsgBox "Dotaz skoncil"
End Sub
Private Sub Form_Load()
cn.Execute "UPDATE osoby SET plat=5000", , adAsyncExecute
End Sub
|
|
Vytvß°φm komponentu typu ActiveX EXE. Ve vlastnostech projektu jsem objevil
n∞kolik vlastnostφ, kterΘ mi nic ne°φkajφ. Zaujali m∞ vÜak dv∞, a to "Thread per object"
a "Thread Pool". M∙₧ete mi poradit, co to znamenß a jak je pou₧φt?
|
|
Tato problematika je bohu₧el pon∞kud slo₧itß na to, aby se na ni dalo krßtce odpov∞d∞t.
ZjednoduÜen∞ °eΦeno jde o to, ₧e pokud nastavφte prvn∞ uvedenou vlastnost, bude pro ka₧dou
instanci komponenty vytvo°en nov² STA apartment a novΘ vlßkno (co₧ nenφ zrovna v²hodnΘ z hlediska
Üet°enφ systΘmov²mi prost°edy). Druhß mo₧nost nastavuje maximßlnφ poΦet STA apartment∙, tzn.
nastavφte-li t°eba 5, Üestß instance ji₧ nevytvo°φ nov² STA apartment, ale vznikne
ji₧ v existujφcφm. Tak je zajiÜt∞no Üet°enφ systΘmov²mi prost°edky, ale zase je pro n∞kolik
instancφ vytvo°eno pouze jedno vlßkno, tudφ₧ komponenty v jednom apartmentu nemajφ mo₧nost
b∞₧et paraleln∞. Pokud by vßs tato problematika zajφmala vφce, velmi doporuΦuji
knihu Programujeme v COM a COM+ od Dalibora KaΦmß°e.
|
Otßzky bez odpov∞di
|
Jak²m zp∙sobem mohu ulo₧it do resource souboru MP3 soubor a jak ho odtud zφskat?
|
|
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.). |
|