|
|
||
|
Nh÷ng c©u hái nhá |
Chøc n¨ng Wordwrap / MÉu hµm API
Cã rÊt nhiÒu c¸ch gäi tr×nh duyÖt Internet Explorer cña Windows. ¥ë ®©y t«i xin bµy cho b¹n 1 c¸ch ®¬n gi¶n nhÊt. §Ó ch¹y mét ch¬ng tr×nh kh¸c tõ Visual Basic, b¹n buéc ph¶i dïng hµm Shell(), ®èi sè lµ g×, ®ã míi lµ ®iÒu quan träng.
Thêng IE n»m ë Program Files\Internet Explorer\IExplorer.exe th môc Program Files n»m cïng æ ®Üa víi th môc Windows. Tãm l¹i, ta t×m th môc Windows ë æ ®Üa nµo, sau ®ã lÊy 2 ký tù ®Çu tiªn lµ tªn æ ®Üa (Vi dô C:), kÕ ®Õn b¹n h·y ghÐp víi "Program Files\Internet Explorer\IExplorer.exe" ®Ó ®îc ®êng dÉn ®Õn IE râ rµng. Tuy nhiªn c¸ch nµy sÏ "ph¸ s¶n" nÕu nh ngêi dïng "ngÉu høng" cµi IE ë mét th môc kh¸c.
Cã mét c¸ch kh¸c h¬i "m¸nh mung" mét chót, nhng ®¬n gi¶n h¬n vµ triÖt ®Ó h¬n rÊt nhiÒu. B¹n cã thÓ "xÝ g¹t" Windows ®Ó gäi IE th«ng qua Windows Explorer b»ng c¸ch chuyÓn cho nã mét tham sè lµ file htm, lóc nµy tù ®éng Windows Explorer nhËn biÕt vµ "al«" ®Õn cho IE ®Ó vµo thÕ chç. VËy còng xong chuyÖn, viÖc gäi Windows Explorer rÊt ®Ô dµng
ThÝ dô: CÇn gäi IE ®Ó hiÓn thÞ file "testfile.htm" b¹n cã thÓ dïng hµm Shell() nh sau:
Shell("explorer.exe testfile.htm",vbNormalFocus)
Lu ý: c¸ch nµy ®ßi hái hÖ thèng b¹n ph¶i cã Internet Explorer 4 trë lªn.
ThËt lµ ®¬n gi¶n ph¶i kh«ng b¹n ?
T¹o chøc n¨ng WordWrap b»ng thuéc tÝnh ScrollBars cña TextBox
Gäi Internet Explorer / MÉu hµm API
Trong c¸c tr×nh so¹n th¶o v¨n b¶n (nh Notepad). NÕu chøc n¨ng Wordwrap ®îc chän, khi gâ v¨n b¶n ®Õn giíi h¹n cña c¹nh ph¶i cña sæ, th× v¨n b¶n tù ®éng rít xuèng dßng díi. Ngîc l¹i nÕu kh«ng cho hiÖu lùc chøc n¨ng nµy, chØ khi nµo b¹n nhÊn phÝm Enter míi xuèng dßng ®îc.
B¹n cã muèn t¹o 1 tÝnh n¨ng Wordwrap nh trong Notepad kh«ng ? Còng dÔ l¾m. Chóng ta h·y lîi dông thuéc tÝnh ScrollBars cña Textbox ®Ó lµm tÝnh n¨ng Wordwrap.
Properties ScrollBars
Thuéc tÝnh nµy dïng ®Ó quy ®Þnh cho Textbox cã c¸c thanh cuén hay kh«ng, nhng thuéc tÝnh nµy chØ cã t¸c dông khi thuéc tÝnh Multiline cña Textbox = True.
0 - None: Textbox kh«ng cã thanh cuén.
1 - Horizontal: ChØ cã thanh cuén ngang.
2 - Vertical: ChØ cã thanh cuén ®øng.
3 - Both: Cã c¶ 2 thanh cuén ngang vµ ®øng.
TÝnh n¨ng Wordwrap chØ cã t¸c dông khi thuéc tÝnh ScrollBars lµ:
0 - None hoÆc 2 - Vertical
Kh«ng cã Wordwrap khi ScrollBars lµ:
1 - Horizontal hoÆc 3 - Both
Nhng thuéc tÝnh nµy kh«ng thÓ thay ®æi trong lóc ch¬ng tr×nh thùc thi. ChØ cho phÐp thay ®æi trong lóc thiÕt kÕ mµ th«i. Do ®ã b¹n ph¶i t¹o lu«n 2 Textbox: Mét Textbox kh«ng cã Wordwrap (Text1), mét Textbox cã Wordwrap (Text2).

Trong lóc thiÕt kÕ b¹n h·y cho 1 Textbox Èn ®i (Visible = False). Trong thÝ dô minh häa nµy t«i cho Text2 Èn.
Text1.Visible = True
Text2.Visible = False
Sau ®ã h·y t¹o mét Control nµo ®ã ®Ó chuyÓn ®æi qua l¹i gi÷a chÕ ®é Wordwrap vµ kh«ng Wordwrap. Trong minh häa nµy t«i ®· t¹o lu«n mét tr×nh Notepad, vµ ®Æt lÖnh Wordwrap vµo menu Edit cña ch¬ng tr×nh (Name: WWrap).

Sau ®©y lµ Code cña mét sè Control cÇn thiÕt cho viÖc Demo chøc n¨ng Wordwrap.
Option Explicit
Private Sub Form_Resize()
Text1.Move 0, 0, ScaleWidth, ScaleHeight
Text2.Move 0, 0, ScaleWidth, ScaleHeight
End Sub
§iÒu chØnh kÝch thíc vµ vÞ trÝ cña 2 Textbox, cho thÝch hîp víi kÝch thíc cña Form mçi khi ngêi dïng thay ®æi kÝch thíc cöa sæ, hoÆc ch¬ng tr×nh khëi ®éng. Xin b¹n h·y nhí mét ®iÒu lµ: t×nh huèng Form_Resize lu«n lu«n ®îc triÖu gäi mçi khi Form_Load.
Private Sub mnuWWrap_Click()
mnuWWrap.Checked = Not (mnuWWrap.Checked)
If mnuWWrap.Checked = True Then
Text1.Visible = False
Text2.Visible = True
Text2.SetFocus
Else
Text1.Visible = True
Text2.Visible = False
Text1.SetFocus
End If
End Sub
C¸c lÖnh cÇn xö lý khi ngêi dïng chän chøc n¨ng Wordwrap. Cho Èn hiÖn Text1 hay Text2 tïy theo tr¹ng th¸i (check hoÆc kh«ng check) cña menu WordWrap.
Private Sub Text1_Change()
Text2.Text = Text1.Text
End Sub
Private Sub Text2_Change()
Text1.Text = Text2.Text
End Sub
Tuy nhiªn t¹i mçi thêi ®iÓm, ngêi dïng chØ lµm viÖc (gâ v¨n b¶n) trªn mét Textbox mµ th«i, cho nªn ta ph¶i tiÕn hµnh cËp nhËt liªn tôc néi dung cña 2 Textbox mçi khi cã 1 sù thay ®æi nµo ®ã trªn bÊt cø Textbox nµo nhê vµo thñ tôc t×nh huèng Change.
Nhng nÕu chØ bÊy nhiªu ®ã th«i th× kh«ng æn. Mçi lÇn ngêi dïng chuyÓn qua l¹i gi÷a Wordwrap vµ kh«ng Wordwrap tøc lµ thay ®æi Textbox, tù nhiªn ngêi dïng cã c¶m gi¸c lµ l¹ do con trá kh«ng n»m ®óng vÞ trÝ qu¶ thËt lµ h¬i "v« duyªn". §Ó kh¾c phôc nhîc ®iÓm trªn b¹n h·y thªm vµi dßng Code sau ®©y vµo ch¬ng tr×nh ®¶m b¶o ngêi dïng kh«ng hÒ biÕt ®îc lµ b¹n ®· ®¸nh tr¸o Textbox cña hä mçi khi chän chøc n¨ng Wordwrap.
Private Sub Text1_GotFocus()
Text1.SelStart = Text2.SelStart
End Sub
Private Sub Text2_GotFocus()
Text2.SelStart = Text1.SelStart
End Sub
B©y giê b¹n h·y ch¹y thö ch¬ng tr×nh vµ gâ vµo vµi dßng v¨n b¶n, sau ®ã chän lÖnh Wordwrap vµi lÇn xem, ói cha ! thËt lµ tuyÖt, chÝnh b¹n cßn bÞ "lõa"n÷a.
Gäi Internet Explorer / Chøc n¨ng Wordwrap
§Ó biÕt c¸ch khai b¸o hµm API b¹n cÇn khëi ®éng tiÖn Ých API Text Viewer ®îc cung cÊp kÌm theo Visual Basic.

N¹p file Win32api.txt vµo, chän Declares trong phÇn API Type (cã thÓ b¹n ph¶i chê gi©y l¸t ®Ó ch¬ng tr×nh load file nµy lªn v× kÝch thíc rÊt lín). HoÆc b¹n còng cã thÓ xem trùc tiÕp file nµy (d¹ng Text) b»ng Wordpad.
Sau ®ã, b¹n h·y chän hµm trong danh s¸ch Available Items, hµm nµo cÇn dïng nhÊn nót Add ®Ó thªm vµo hép v¨n b¶n Select Items phÝa ®íi. Sau khi ®· chän xong tÊt c¶ c¸c hµm cÇn dïng, nhÊn nót Copy ®Ó chÐp c¸c hµm võa chän vµo Clipboard. KÕ ®Õn b¹n chØ viÖc Paste vµo Visual Basic ®Ó dïng mµ th«i.
C¸c hµm API cã 2 d¹ng: hµm (Function) cã trÞ tr¶ vÒ vµ thñ tôc (Sub) kh«ng cã trÞ tr¶ vÒ.
Khai b¸o cho hµm cã trÞ tr¶ vÒ nh sau:
Declare Function <tªn hµm API> Lib <Tªn th viÖn> [Alias <tªn bÝ danh>]([danh s¸ch c¸c ®èi sè])
Khai b¸o cho c¸c thñ tôc:
Declare Sub <tªn hµm API> Lib <tªn th viÖn> [Alias <tªn bÝ danh>]([danh s¸ch c¸c ®èi sè])
<tªn hµm API> lµ tªn hµm trong c¸c file th viÖn DLL.
<tªn th viÖn> tªn file th viÖn DLL ®Ó Visual Basic t×m c¸c hµm API. C¸c file th viÖn nµy ph¶i cã ®Çy ®ñ tªn cïng phÇn më réng, riªng ®èi víi 3 th viÖn USER, KERNEL, vµ GUI th× kh«ng cÇn ph¶i cã phÇn më réng. Tªn nµy lµ mét String nªn cÇn ph¶i bao trong dÊu "".
[Alias <tªn bÝ danh>] cã thÓ cã hay kh«ng còng ®îc. B¹n cÇn khai b¸o bÝ danh khi muèn triÖu gäi hµm API víi mét c¸i tªn kh¸c do chÝnh b¹n ®Æt, hoÆc trong tªn hµm chuÈn cã chøa ký tù bÞ cÊm sö dông trong Visual Basic, lóc nµy b¹n h·y ®Æt bÝ danh cho nã ®Ó Visual Basic sö dông ®îc.
VÝ dô hµm API "AddfontResource " sau ®©y ®îc ®Æt l¹i bÝ danh lµ AddFont cho ng¾n gän mçi lÇn gäi hµm.
Declare Function AddFontResource Lib "gdi32" Alias "AddFont" (ByVal lpFileName As String) As Long
Ph¹m vi sö dông cña hµm API còng phô thuéc vµo c¸c vÞ trÝ khai b¸o nã nh c¸ch khai b¸o c¸c biÕn trong Visual Basic.
Gäi Internet Explorer / Chøc n¨ng Wordwrap / MÉu hµm API
NguyÔn Hå Thiªn §¨ng chuÒ nhâòt, thaìng hai 03, 2002
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com