*VisualBasic*
Nh÷ng
C©u Hái Nhá
Xem bai viet bang font Unicode
[Combo box tù hiÖn danh s¸ch] [Form Layout]
NÕu c¸c b¹n dïng c¸c phiªn b¶n Enterprise - 32bit cña Visual Basic, th× cã s½n 1 Custom control cho phÐp b¹n t¹o nhanh mét Progress bar theo mèt cña Windows 9.x tr«ng rÊt ®¬n s¬ nhng chuÈn mùc

Cßn ë ®©y t«i xin tr×nh bµy c¸ch tù chÕ Progress bar b»ng c¸c control chuÈn cña Visual Basic (Picture box), c¸ch nµy ®Æc biÖt h÷u Ých cho c¸c b¹n cßn dïng phiªn b¶n vb 16bit hay kh«ng muèn v¸c theo file COMCTL.OCX (MSCOMCTL.OCX) kÝch thíc trªn díi 1Mb kÌm theo øng dông cña m×nh.
B¹n h·y t¹o 2 Picture box lång vµo nhau, di chuyÓn vÞ trÝ Picture box bªn trong, chän mµu s¾c cho thÝch hîp. Cßn ®Ó nã ch¹y ®îc ? b¹n h·y t¨ng (hoÆc gi·m) ®é réng cña Picture box bªn trong, cùc ®¹i khi ®é réng Picture box bªn trong = bªn ngoµi, cùc tiÓu khi ®é réng Picture box bªn trong = 0.

PhÝa trªn lµ ®å xÞn, phÝa díi lµ hµng tù chÕ.
B¹n thÊy kh«ng còng ngang ng÷a chí bé, kh«ng nh÷ng thÕ hµng tù t¹o cßn cho phÐp chóng ta thay ®æi mµu s¾c mét c¸ch v« t, muèn xanh ®á tÝm vµng ®Òu ®îc c¶, vÒ kh¶ n¨ng nµy th× ®å xÞn rÊt khã thùc hiÖn nÕu kh«ng muèn nãi lµ kh«ng ®îc.
§Ó minh häa t«i ®· dïng mét Timer (Timer1) vµ 2 Picture box (Picture1 vµ Picture2), Picture2 mµu xanh n»m trong Picture1 mµu x¸m. Cïng víi ®o¹n m· sau:
Option Explicit
Private Sub Form_Load()
Picture2.Width = 0
Timer1.Interval = 1000
End Sub
Private Sub Timer1_Timer()
If Picture2.Width < Picture1.Width Then
Picture2.Width = Picture2.Width + Picture1.Width \ 20
Else
Timer1.Interval = 0
MsgBox "§· 20 gi©y tr«i qua råi ®Êy !"
End
End If
End Sub
Khi ch¹y thö ch¬ng tr×nh b¹n sÏ thÊy Progress bar cña chóng ta thay ®æi mçi gi©y 1 lÇn, cho ®Õn hÕt 20 gi©y, th«ng b¸o b»ng hµm MsgBox nÕu b¹n click OK th× nã goodbye b¹n lu«n.
[Tù t¹o Progress bar] [Form Layout]
Combo box dÔ thÊy nhÊt trong c¸c th¶o tr×nh lµ hép chän font nh h×nh díi ®©y.

§Ó lµm ®îc viÖc nµy, b¹n cÇn nhí l¹i tæ hîp phÝm t¾t ®Ó më mét combo box trong Windows lµ ALT - DownArrow (Mòi tªn xuèng). Do ®ã ta chØ cÇn lµm sao cho combo box nhËn ®îc tæ hîp phÝm ALT + DownArrow lµ ªm chuyÖn.
RÊt dÔ dµng b¹n h·y cho lÖnh Sendkeys gëi 1 tæ hîp phÝm ALT - DownArrow tõ thñ tôc t×nh huèng GotFocus cña Combo box cÇn më.
H·y t¹o 1 form míi trªn ®ã t¹o mét control nµo ®ã vÝ dô nh CommandButton, kÕ ®Õn b¹n h·y t¹o 1 Combo box. Lý do b¹n ph¶i t¹o Command button tríc ®Ó cho nã cã focus tríc (TabIndex = 0), khi ch¹y ch¬ng tr×nh b¹n h·y nhÊn phÝm Tab ®Ó chuyÓn focus sang cho combo box, lóc nµy b¹n sÏ thÊy rÊt râ t¸c dông cña lÖnh SendKeys.
Private Sub Combo1_GotFocus()
SendKeys "%{DOWN}"
End Sub
C©u lÖnh SendKeys "%{DOWN}" dïng ®Ó gëi tæ hîp phÝm ALT - DownArrow lªn Combo box khi chÝnh nã nhËn ®îc Focus do ngêi sö dông dÞch chuyÓn b»ng phÝm Tab hay b»ng Mouse. SÏ lµm cho combo box tù ®éng më ra (hiÖn danh s¸ch).

Thñ thuËt nµy h÷u Ých khi b¹n viÕt c¸c øng dông cã yªu cÇu nhËp d÷ liÖu, thêng th× ngêi dïng nhËp d÷ liÖu b»ng bµn phÝm, sau ®ã nhÊn phÝm Tab ®Õn mét combo box, nã sÏ bung ra ngay ®Ó ngêi dïng chän lùa, rÊt tiÖn dông, khiÕn cho ngêi ta c¶m thÊy rÊt hµi lßng vÒ ch¬ng tr×nh cña m×nh.
[Tù t¹o Progress bar] [Combo box tù hiÖn danh s¸ch]
§©y lµ mét trong nh÷ng tÝnh n¨ng míi cña Visual Basic 5 & 6, gióp cho lËp tr×nh viªn dÔ dµng ph©n bè c¸c form trªn mµn h×nh khi ch¬ng tr×nh thùc thi mét c¸ch rÊt trùc quan. Vµo View \ Form Layout Windows, hay click vµo Icon trªn toolbar ®Ó hiÓn thÞ cöa sæ Form Layout nÕu cha xuÊt hiÖn.

§Ó sö dông c¸c chøc n¨ng trªn cöa sæ nµy, b¹n h·y right click trªn cöa sæ ®Ó bËt menu Popup gåm c¸c môc chän sau:
Resolution Guides: HiÓn thÞ ®é ph©n gi¶i mµn h×nh (chØ hiÓn thÞ c¸c ®é ph©n gi¶i thÊp h¬n ®é ph©n gi¶i mµ mµn h×nh ®ang sö dông).
Dockable: HiÓn thÞ Form Layout b»ng mét cöa sæ riªng hay n»m chung víi c¸c cöa sæ Project, Properties.
Hide: ®ãng cöa sæ Form Layout.
Startup Position: VÞ trÝ form hiÓn thÞ trªn mµn h×nh
Manual: Tù b¹n thiÕt lËp, b»ng c¸ch rª form cã tªn t¬ng øng, vµ dùa vµo c¸c Resolution Guides ®Ó biÕt râ vÞ trÝ form sÏ xuÊt hiÖn trªn mµn h×nh khi ch¹y ch¬ng tr×nh.
Center Owner: N»m gi÷a form ®· gäi nã.
Center Screen: N»m gi÷a mµn h×nh ë bÊt kú ®é ph©n gi¶i nµo.
Windows Default: Theo chuÈn cña Windows, n»m h¬i chÖch vÒ gãc tr¸i trªn cña mµn h×nh.

Mçi form trong giai ®o¹n thiÕt kÕ, muèn hiÓn thÞ trªn cöa sæ Form Layout b¹n ph¶i më form ®ã lªn, nã sÏ xuÊt hiÖn trªn cöa sæ Form Layout b»ng tªn t¬ng øng, vÞ trÝ thùc cña nã sÏ xuÊt hiÖn trªn mµn h×nh lóc ch¹y ®îc ph¶n ¶nh rÊt chÝnh x¸c trong cöa sæ nµy.
Xa nay ngêi ta cã quan niÖm lµ ng«n ng÷ lËp tr×nh Visual Basic "bÞ yÕu" h¬n c¸c ng«n ng÷ kh¸c do kh«ng cã c¸c hµm, thñ tôc can thiÖp ®Õn c¸c th«ng tin cÊp thÊp cña hÖ thèng nh ng«n ng÷ C. Nhng còng chÝnh Visual Basic ®· bï vµo sù thiÕu hôt ®¸ng tiÕc cña m×nh b»ng c¸ch liªn kÕt vµ sö dông c¸c hµm API (Application Programmer's Interface) cã s½n trong Windows qua c©u lÖnh Declare. Gióp cho ta lµm ®îc khèi viÖc tëng chõng nh v« väng. ThËt ra c¸c hµm API nµy ®îc t¹o ra b»ng ng«n ng÷ C do ®ã ta cã thÓ tËn dông ®îc c¸c kh¶ n¨ng cña C trong Visual Basic. C¸c hµm API tån t¹i díi d¹ng file cã phÇn më réng lµ DLL hay EXE trong th môc System. ¥ë c¸c bµi viÕt sau chóng ta sÏ cïng nhau t×m hiÓu vÒ c¸c API tuyÖt vêi nµy. Mét øng dïng Visual Basic viÕt ®µng hoµng, ch¹y ngon lµnh th× ®è ai nh×n mµ biÕt ®îc b¹n viÕt b»ng ng«n ng÷ nµo (b¹n lu ý chØ cho ngêi ta nh×n th«i nhÐ).
[Tù t¹o Progress bar] [Combo box tù hiÖn danh s¸ch] [Form Layout]
NguyÔn Hå Thiªn §¨ng 03 th2 2002 05:52:56 CH
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com