版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第13章Authorware7.0典型實例介紹
13.1在Authorware中控制Windows系統(tǒng)
13.2增強應(yīng)用程序的窗口功能
13.3在Authorware中連接數(shù)據(jù)庫
13.4圖像展示技巧介紹
13.5解決與文本有關(guān)的幾個問題
13.6其它典型實例
13.1在Authorware中控制Windows系統(tǒng)
13.1.1在運行中獲取并改變分辨率
1.程序設(shè)計程序開始運行時,首先探測當(dāng)前計算機所支持的各種分辨率,然后查找其中是否有我們所需要的分辨率。如果有,則直接切換其分辨率;如果沒有,則給出提示,然后退出程序。
2.核心技術(shù)
本例主要使用Authorware外部函數(shù)alTools.u32中的alChangeRes()函數(shù)和alGetDispSet()函數(shù)。
3.典型函數(shù)用法介紹
↘alChangeRes()函數(shù)
格式:alChangeRes(Width,Height,bitpp,ifreq)
說明:本函數(shù)用于動態(tài)改變屏幕分辨率和刷新率。
參數(shù):Width,寬度(以像素為單位);
Height,高度(以像素為單位);
bitpp,顏色位數(shù);
ifreq,屏幕刷新率(赫茲)。
↘alGetDispSet()函數(shù)
格式:result:=alGetDispSet()
說明:本函數(shù)用于獲得當(dāng)前所有可用屏幕分辨率及刷新率。其返回值的格式是用回車符分隔的多行字符串,每一行類似于“800x600x32x75”等。
4.具體制作
(1)創(chuàng)建如圖13-1所示的程序流程。
(2)在函數(shù)窗口中載入外部函數(shù)alTools.u32,并選擇其中的alChangeRes()和alGetDispSet()。圖13-1(3)在“初始化”計算圖標(biāo)中輸入以下代碼:
width:=ScreenWidth
height:=ScreenHeight
depth:=ScreenDepth
w0:="1024" --設(shè)置需要的分辨率寬度
h0:="768" --設(shè)置需要的分辨率高度
d0:="32" --設(shè)置需要的顏色深度
allSet:=alGetDispSet()
ifw0=width&h0=height&d0=depththen
GoTo(IconID@"主程序開始")
endif在“判斷分辨率”計算圖標(biāo)中輸入以下代碼:
lcount:=LineCount(allSet)
repeatwithl:=1tolcount
s:=GetLine(allSet,l)
p:=Find("x",s)
w:=Eval(SubStr(s,1,p-1))
s:=SubStr(s,p+1,50)
p:=Find("x",s)
h:=Eval(SubStr(s,1,p-1))
s:=SubStr(s,p+1,50)
p:=Find("x",s)
d:=Eval(SubStr(s,1,p-1))
ifw=w0&h=h0&d=d0then
alChangeRes(w,h,d)
goto(iconid@"主程序開始")
elseifl=lcountthen
goto(iconid@"錯誤信息")
endif
endrepeat在“錯誤信息”顯示圖標(biāo)中輸入以下提示信息:
對不起,你的屏幕顯示不支持{w0}x{h0}x{d0}的分辨率,演示無法繼續(xù)下去!按任意鍵退出程序。
在“恢復(fù)原有屏幕設(shè)置”計算圖標(biāo)中輸入以下代碼:
alChangeRes(width,height,depth)
最后的“主程序開始”計算圖標(biāo)里面沒有具體內(nèi)容,可直接給出一個注釋語句。13.1.2關(guān)閉/打開任務(wù)欄
1.程序設(shè)計
程序開始運行時,使用FindWindow()函數(shù)捕捉Windows任務(wù)欄,然后再用SetWindowPos()函數(shù)隱藏任務(wù)欄。程序退出時,再用SetWindowPos()函數(shù)打開任務(wù)欄。
2.核心技術(shù)
本例主要使用Winapi.u32里的SetWindowPos()函數(shù)和FindWindow()函數(shù)來實現(xiàn)任務(wù)欄的關(guān)閉和打開。
3.典型函數(shù)用法介紹
↘FindWindow()函數(shù)
格式:HWND:=FindWindow(LPCSTRlpClassName,LPCSTRlpWindowName)
說明:尋找并返回指定窗口的句柄。
參數(shù):lpClassName,類名;
lpWindowName,窗口名。
↘SetWindowPos()函數(shù)
格式:BOOL:=SetWindowPos(HWNDhWnd,HWNDhWndInsertAfter,intX,intY,intcx,intcy,UINTuFlags)說明:設(shè)置指定窗口的位置。
參數(shù):hWnd,窗口句柄;
hWndInsertAfter,位于hWnd窗口前的窗口的句柄;
X,新位置的左邊界;
Y,新位置的右邊界;
cx,窗口新的寬度;
cy,窗口新的高度。
返回值:如果操作成功,則返回非0值;如果操作失敗,則返回0。4.具體制作
(1)創(chuàng)建如圖13-2所示的程序流程。圖13-2(2)在Authorware里載入函數(shù)Winapi.u32(該文件位于安裝好的Authorware文件夾內(nèi))。
(3)在“關(guān)閉任務(wù)欄”計算圖標(biāo)里輸入以下代碼:
winhd:=FindWindow("Shell_traywnd")
SetWindowPos(winhd,0,0,0,0,0,128)
msg:="已關(guān)閉任務(wù)欄\r單擊繼續(xù)"
在“打開任務(wù)欄”計算圖標(biāo)里輸入以下代碼:
SetWindowPos(winhd,0,0,0,0,0,64)
msg:="已打開任務(wù)欄\r單擊退出"
在“退出”計算圖標(biāo)里輸入以下代碼:
Quit()
(4)在“顯示提示信息”顯示圖標(biāo)里輸入以下內(nèi)容:
{msg}
請根據(jù)個人喜好設(shè)置文字的大小等相關(guān)屬性,然后再勾選該顯示圖標(biāo)屬性面板“選項”中的“更新顯示變量”。
(5)兩個等待圖標(biāo)的“事件”都設(shè)置成“單擊鼠標(biāo)”即可。13.1.3禁用Windows的某些系統(tǒng)功能
1.程序設(shè)計
在本例中,我們通過復(fù)選框的形式,分別可控制任務(wù)欄的打開和關(guān)閉、托盤圖標(biāo)的顯示和隱藏、“開始”按鈕的顯示和隱藏、Windows鍵的打開和關(guān)閉、鼠標(biāo)失效與否、關(guān)閉和恢復(fù)屏幕保護(hù)、強行關(guān)閉計算機和強行重啟計算機等。
2.核心技術(shù)
本例主要使用DisablePro控件來禁用或啟用Windows的某些系統(tǒng)功能;用MicrosoftForms2.0CheckBox控件來實現(xiàn)各功能開關(guān)的設(shè)置或取消設(shè)置;用budapi.u32外部函數(shù)中的baMsgBox()函數(shù)來彈出信息提示框。
3.典型函數(shù)用法介紹
↘DisablePro控件
屬性:該控件有9個屬性,如圖13-3所示。每個屬性的值都可設(shè)置為True或False,分別對應(yīng)該功能的啟用和關(guān)閉。這9個屬性分別是:
DisableDesktop,是否隱藏桌面;
DisableIconTray,是否隱藏托盤圖標(biāo);
DisableMouse,是否啟用鼠標(biāo);
DisableScreenSaver,是否啟用屏幕保護(hù)程序;
DisableStartButton,是否顯示W(wǎng)indows的“開始”按鈕;
DisableTaskBar,是否顯示任務(wù)欄;圖13-3DisableTaskSwitching,是否啟用Windows的開關(guān)鍵(包括Ctrl+Esc、Ctrl+Alt+Delete、Alt+Tab、Windows鍵);
DisableTrayClock,是否顯示任務(wù)欄時鐘圖標(biāo);
Enabled,DisablePro控件是否有效。
方法:ForceReboot,強行重新啟動計算機;
ForceShutDown,強行關(guān)閉計算機。
↘MicrosoftForms2.0CheckBox控件
屬性:Caption,控件的標(biāo)題;
Value,返回值(控件如被選中,則返回“True”,否則返回“False”)。↘baMsgBox()函數(shù)
格式:Result:=baMsgBox(Message,Caption,
Buttons,Icon,DefButton)
說明:該函數(shù)可彈出一個信息窗口,顯示一些提示信息。
參數(shù):Message,需要在彈出窗口中顯示的字符串;
Caption,彈出窗口的標(biāo)題欄文字;
Icon,彈出窗口中圖標(biāo)的形式,可以是Stop(停止圖標(biāo))、Information(信息圖標(biāo))、Question(問號圖標(biāo))、Exclamation(感嘆號圖標(biāo))、NoIcon(無圖標(biāo));
Buttons,彈出窗口中按鈕的形式,可以是OK(確定)、OKCancel(確定、取消)、RetryCancel(重試、取消)、AbortRetryIgnore(放棄、重試、取消)、YesNo(是、否)、YesNoCancel(是、否、取消)。
返回值:該函數(shù)的返回值是用戶點擊的按鈕的名稱。4.具體制作。
(1)創(chuàng)建如圖13-4所示的程序流程。圖13-4其中,“DisablePro”和“顯示各功能復(fù)選框”里的所有圖標(biāo)都是用控件做的。為了在菜單【插入】/【控件】/【ActiveX...】中找到DisablePro控件,必須先注冊該控件。方法是在“控件注冊”計算圖標(biāo)中輸入以下代碼:
classID:="{9CD81531-6B69-11D1-83EE-00C0D1571EDC}"
ifActiveXControlQuery(classID)=0then
ActiveXControlRegister(FileLocation^"DisablePro.ocx")
endif
然后運行此程序即完成注冊。完成注冊后,即可在SelectActiveXControl對話框中找到DisablePro.Disable控件。
我們用來做復(fù)選框的控件MicrosoftForms2.0CheckBox不需要單獨注冊,因為它已經(jīng)在安裝OFFICE組件時被注冊好了。(2)在“設(shè)置屬性”計算圖標(biāo)中輸入以下代碼(以設(shè)置9個復(fù)選框的標(biāo)題):
SetSpriteProperty(@"關(guān)閉任務(wù)欄",#Caption,IconTitle@"關(guān)閉任務(wù)欄")
SetSpriteProperty(@"隱藏托盤圖標(biāo)",#Caption,IconTitle@"隱藏托盤圖標(biāo)")
SetSpriteProperty(@"隱藏開始按鈕",#Caption,IconTitle@"隱藏開始按鈕")
SetSpriteProperty(@"使Windows開關(guān)鍵失效",#Caption,IconTitle@"使Windows開關(guān)鍵失效")
SetSpriteProperty(@"使鼠標(biāo)失效",#Caption,IconTitle@"使鼠標(biāo)失效")SetSpriteProperty(@“強行關(guān)機”,#Caption,IconTitle@“強行關(guān)機”)
SetSpriteProperty(@“強行重新啟動計算機”,#Caption,IconTitle@“強行重新啟動計算機”)
SetSpriteProperty(@"關(guān)閉屏幕保護(hù)",#Caption,IconTitle@"關(guān)閉屏幕保護(hù)")
SetSpriteProperty(@"退出",#Caption,IconTitle@"退出")
message:=""當(dāng)然,也可直接到復(fù)選框控件的屬性里去設(shè)置Caption屬性。
在“*”按鍵所響應(yīng)的下面的計算圖標(biāo)里輸入以下代碼:
SetSpriteProperty(@"DisablePro",#DisableMouse,FALSE)
message:=""
在“-關(guān)閉任務(wù)欄”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
SetSpriteProperty(@"DisablePro",#DisableTaskbar,GetSpriteProperty(@"關(guān)閉任務(wù)欄",#value))
在“-隱藏托盤圖標(biāo)”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
SetSpriteProperty(@"DisablePro",#DisableIconTray,GetSpriteProperty(@"隱藏托盤圖標(biāo)",#value))在“-隱藏開始按鈕”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
SetSpriteProperty(@"DisablePro",#DisableStartbutton,GetSpriteProperty(@"隱藏開始按鈕",#value))
在“-使Windows開關(guān)鍵失效”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
SetSpriteProperty(@"DisablePro",#DisableTaskSwitching,GetSpriteProperty(@"使Windows開關(guān)鍵失效",#value))
在“-使鼠標(biāo)失效”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
SetSpriteProperty(@"DisablePro",#DisableMouse,GetSpriteProperty(@"使鼠標(biāo)失效",#value))If~GetSpriteProperty(@“使鼠標(biāo)失效”,#value)then
message:=“”
else
message:=“按任意鍵恢復(fù)鼠標(biāo)”
endif
在“-強行關(guān)機”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
Result:=baMsgBox("真的要關(guān)閉計算機嗎?","注意","YesNo","Information",2)
ifCapitalize(Result)="YES"then
CallSprite(@"DisablePro",#ForceShutDown)
else
SetSpriteProperty(@"強行關(guān)機",#value,FALSE)
endif在“-強行重新啟動計算機”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
Result:=baMsgBox(“真的要重新啟動計算機嗎?”,“注意”,“YesNo”,“Information”,2)
ifCapitalize(Result)=“YES”then
CallSprite(@“DisablePro”,#ForceReboot)
else
SetSpriteProperty(@“強行重新啟動計算機”,#value,FALSE)
endif在“-關(guān)閉屏幕保護(hù)”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
SetSpriteProperty(@“DisablePro”,#DisableScreenSaver,
GetSpriteProperty(@“關(guān)閉屏幕保護(hù)”,#value))
在“-退出”事件響應(yīng)的計算圖標(biāo)中輸入以下代碼:
Quit()
(3)雙擊交互響應(yīng)圖標(biāo),在演示窗口中輸入標(biāo)題及提示信息:
禁用Windows的某些系統(tǒng)功能
{message}
設(shè)置合適的文字大小及顏色,并設(shè)置居中對齊,再勾選交互圖標(biāo)屬性面板中的“顯示”標(biāo)簽下面的“更新顯示變量”。
(4)設(shè)置事件響應(yīng)的相關(guān)屬性。依次設(shè)置事件響應(yīng)的“發(fā)送者”和“事件”,如圖13-5所示。圖13-5
(5)發(fā)布程序后可試著運行一下,其界面如圖13-6所示。值得注意的是,測試完畢后,需要把相關(guān)的選項重新打開,以免影響正常的Windows操作。圖13-6
13.1.4制作電子鬧鐘
1.程序設(shè)計
本例將制作一個電子鬧鐘,重點是使用系統(tǒng)變量FullTime。鬧鐘的時間設(shè)置有兩種方法:一是由用戶直接輸入HH:MM:SS格式的時間;二是由用戶直接輸入一個延時時間。若只輸入一個數(shù)字,則被認(rèn)作是秒數(shù);若輸入由冒號分隔的兩個數(shù)字,則被看成是分鐘數(shù)和秒鐘數(shù);若輸入的是由冒號隔開的三個數(shù)字,則被看成是小時數(shù)、分鐘數(shù)和秒鐘數(shù)。兩種方式下,時間到后都開始響鈴。
2.核心技術(shù)
本例使用MicrosoftForms2.0OptionButton控件來做單選按鈕,以控制是設(shè)置延時時間還是設(shè)置指定時間。在判斷時間上,本例使用了多個時間類的系統(tǒng)變量(如FullTime、Hour、Minute、Sec)和字符串處理函數(shù)(如String()、Substr()、Find()、RFind()等)。
3.具體制作
(1)創(chuàng)建如圖13-7所示的程序流程。
(2)“輸入鬧鐘時間”和“輸入延時時間”都是MicrosoftForms2.0OptionButton控件,分別設(shè)置其Caption屬性為“輸入鬧鐘時間”和“輸入延時時間”即可。
(3)“鬧鐘”圖標(biāo)是一個GIF動畫,當(dāng)響鈴時會出現(xiàn)一個跳動的鬧鐘?!奥曇簟眻D標(biāo)就是一段鬧鈴聲。
(4)“停止”按鈕用于結(jié)束程序,在其下掛計算圖標(biāo)中輸入“Quit()”即可。
(5)在“*”文本響應(yīng)的下掛計算圖標(biāo)中輸入以下代碼:圖13-7ifGetSpriteProperty(@"輸入鬧鐘時間",#value)=-1then
t0:=EntryText
else
k1:=Find(":",EntryText)
k2:=RFind(":",EntryText)
ifk1=0then
s:=EntryText
m:=0
h:=0
else
ifk1=k2then
m:=SubStr(EntryText,1,k1-1)
s:=SubStr(EntryText,k1+1,100)
h:=0
else
h:=SubStr(EntryText,1,k1-1)
m:=SubStr(EntryText,k1+1,k2-1)
s:=SubStr(EntryText,k2+1,100)
endif
endif
m:=Test(Minute+m<10,"0","")^String(Minute+m)
s:=Test(Sec+s<10,"0","")^String(Sec+s)
t0:=String(Hour+h)^":"^m^":"^s
endif
(6)條件響應(yīng)“t0<=FullTime”用于判定時間是否已到。其屬性面板設(shè)置如圖13-8所示。圖13-8
(7)在“定時”交互的演示窗口里插入鬧鐘的GIF動畫文件(通過【插入】/【圖像】菜單來完成),再勾選其“顯示”標(biāo)簽中的“更新顯示變量”選項,最后在其中輸入以下內(nèi)容:
電子鬧鐘
當(dāng)前時間:{FullTime}
整個界面如圖13-9所示。圖13-9
(8)打包程序,然后選擇“輸入鬧鐘時間”或“輸入延時時間”,再輸入具體的時間,回車即可進(jìn)入鬧鐘計時。
在此程序的基礎(chǔ)上,大家可以動動腦筋,把程序修改一下。比如,在時間的輸入上加上更加復(fù)雜的判斷處理。例如,輸入“120”,程序會自動判斷出是延時2分鐘。又如,對用戶輸入的內(nèi)容進(jìn)行判斷,看是否包含除數(shù)字和冒號以外的其它內(nèi)容等。13.1.5為演示窗口添加最大化和最小化按鈕
Windows標(biāo)準(zhǔn)的應(yīng)用程序窗口都有最大化、最小化和關(guān)閉按鈕。而Authorware默認(rèn)的演示窗口是沒有最大化和最小化按鈕的。如果想要做一個標(biāo)準(zhǔn)的Windows應(yīng)用程序風(fēng)格的應(yīng)用程序,我們可通過其它方法加上最大化和最小化按鈕。
1.程序設(shè)計
本例主要使用Authorware外部Xtras文件(budapi.x32)中的baAddSysItems()函數(shù)來添加最大化和最小化按鈕。
2.核心技術(shù)
前面我們做了很多Authorware的外部函數(shù),也知道了使用外部函數(shù)的方法。而本例中所使用到的是一個外部Xtras文件(budapi.x32),需要事先將其復(fù)制到Authorware安裝文件夾下的Xtras文件夾里去,這樣,當(dāng)我們再次啟動Authorware時,在“函數(shù)”面板的“分類”中就會多出一個“XtraBudAPI”類,其中有多個函數(shù)可直接使用。
3.典型函數(shù)用法介紹
↘baAddSysItems()函數(shù)
格式:baAddSysItems(WinHandle,SysMenu,MinBox,MaxBox)
說明:該函數(shù)用于給指定窗口添加系統(tǒng)菜單和最小化、最大化按鈕。
參數(shù):WinHandle,是Authorware中的一個系統(tǒng)變量,代表當(dāng)前演示窗口的句柄;
SysMenu,是否添加系統(tǒng)菜單,其值為True或False;
MinBox,是否添加最小化按鈕,其值為True或False;
MaxBox,是否添加最大化按鈕,其值為True或False。
4.具體制作
(1)制作如圖13-10所示的程序流程。圖13-10
(2)在“重新設(shè)置窗口大小”計算圖標(biāo)里輸入以下代碼:
ResizeWindow(360,200)
(3)在“提示信息”顯示圖標(biāo)里輸入以下內(nèi)容:
按任意鍵添加系統(tǒng)菜單和最大化及最小化按鈕...
(4)在“添加系統(tǒng)菜單及最大化和最小化按鈕”計算圖標(biāo)中輸入以下代碼:
baAddSysItems(WindowHandle,TRUE,TRUE,TRUE)
(5)打包運行程序,效果如圖13-11和圖13-12所示。圖13-11
圖13-1213.2增強應(yīng)用程序的窗口功能
13.2.1使用文件系統(tǒng)控件顯示文件夾和文件
1.程序設(shè)計本例主要是使用WinCtrls.u32中的wcDisplayControl()函數(shù)來顯示驅(qū)動器列表框、文件夾列表框和文件列表框。當(dāng)改變驅(qū)動器列表框中的內(nèi)容時,文件夾列表框和文件列表框中的內(nèi)容會同步更新。當(dāng)選擇具體的某個文件后,在界面中會顯示出當(dāng)前所選文件的完整路徑及文件名。
2.核心技術(shù)
本例主要是綜合應(yīng)用WinCtrls.u32中的wcDisplayControl()函數(shù)、wcGetPropertyValue()函數(shù)和wcSetPropertyValue()函數(shù)以及條件響應(yīng)來完成制作。
3.典型函數(shù)用法介紹
↘wcDisplayControl()函數(shù)
格式:Id:=wcDisplayControl(Left,Top,Width,Height,"ControlName","ChangeEventVarName")
說明:該函數(shù)用于在指定的位置上顯示一個指定的控件,并返回控件ID號以供后續(xù)操作。參數(shù):Left,控件的左上角位置(x坐標(biāo))。
Top,控件的左上角位置(y坐標(biāo))。
Width,控件的寬度。
Height,控件的高度。
ControlName,控件名,共有20種控件,分別是:
●Button,按鈕控件;
●CheckBox,復(fù)選框控件;
●CheckListBox,復(fù)選框列表控件;
●ColorCombo,顏色組合框控件;
●ComboBox,組合框控件;
●DriverCombo,驅(qū)動器組合框控件;
●Edit,單行文本編輯框控件;●FileListBox,文件列表框控件;
●FolderListBox,文件夾列表框控件;
●FontCombo,字體組合框控件;
●ListBox,列表框控件;
●MaskEdit,模板編輯框控件;
●Memo,多行文本框控件;
●PasswordEdit,密碼框控件;
●RadioButton,單選按鈕控件;
●SpinButton,數(shù)值調(diào)節(jié)按鈕控件;
●SpinEdit,數(shù)值調(diào)節(jié)按鈕文本框控件;
●TabSet,標(biāo)簽組控件;
●TrackBar,滑動條控件;
●TreeView,樹形控件。
ChangeEventVarName,控件返回的事件變量名稱,可在Authorware中通過判斷此變量的值來判斷用戶更改了哪些控件,以進(jìn)行相應(yīng)的操作。當(dāng)用戶對控件操作后,該變量的值會從False變成True。
返回值:返回控件的ID編號,此編號可用于對控件的后續(xù)操作。
↘wcGetPropertyValue()函數(shù)
格式:Value:=wcGetPropertyValue(Id,"PropertyName")
說明:該函數(shù)用于獲取指定控件的指定屬性的值。
參數(shù):Id,所操作控件的標(biāo)識號;
PropertyName,屬性名稱。返回值:指定控件的指定屬性的值。
↘wcSetPropertyValue()函數(shù)
格式:Result:=wcSetPropertyValue(Id,"PropertyName","Value")
說明:該函數(shù)用于設(shè)置指定控件的指定屬性的值。
參數(shù):Id,所操作控件的標(biāo)識號;
PropertyName,屬性名稱;
Value,設(shè)置的指定屬性的值。
返回值:操作成功,返回一個空字符串。
4.具體制作
(1)創(chuàng)建如圖13-13所示的程序流程。
(2)在“初始化”計算圖標(biāo)中輸入以下代碼:
DriveId:=wcDisplayControl(20,80,290,20,"DriveCombo","ChangeDrive")
FolderId:=wcDisplayControl(20,130,280,180,"FolderListBox","ChangeFolder")
FileId:=wcDisplayControl(330,80,280,230,"FileListBox","ChangeFile")
wcSetPropertyValue(DriveId,"FontName","TimesNewRoman")
wcSetPropertyValue(DriveId,"FontColor","Blue")
wcSetPropertyValue(DriveId,"FontSize",14)
wcSetPropertyValue(FolderId,"Drive",wcGetPropertyValue(DriveId,"Drive"))
wcSetPropertyValue(FolderId,"FontName","TimesNewRoman")
wcSetPropertyValue(FolderId,"FontColor","Black")
wcSetPropertyValue(FolderId,"FontSize",12)
wcSetPropertyValue(FileId,"FontName","TimesNewRoman")
wcSetPropertyValue(FileId,"FontColor","Green")
wcSetPropertyValue(FileId,"FontSize",12)
fullfilename:=""圖13-13在“ChangeDrive”條件響應(yīng)的下掛計算圖標(biāo)中輸入以下代碼:
wcSetPropertyValue(FolderId,"Drive",wcGetPropertyValue(DriveId,"Drive"))
在“ChangeFolder”條件響應(yīng)的下掛計算圖標(biāo)中輸入以下代碼:
wcSetPropertyValue(FileId,"Folder",wcGetPropertyValue(FolderId,"Folder"))
在“ChangeFile”條件響應(yīng)的下掛計算圖標(biāo)中輸入以下代碼:
fullfilename:=wcGetPropertyValue(FileId,"Folder")^"\\"^wcGetPropertyValue(FileId,"Text")
其中各條件語句的“自動”選項都設(shè)置為“當(dāng)由假為真”。
(3)雙擊交互圖標(biāo),在其演示窗口中輸入一些提示文字,如圖13-14所示。
(4)打包程序,運行效果如圖13-15所示。圖13-14圖13-15
13.2.2制作增強型的下拉菜單
1.程序設(shè)計
在本例中,我們制作了兩個菜單,選擇某一具體菜單項后,會有提示信息顯示我們選擇了哪個具體的菜單項。同時,專門設(shè)置了一個測試菜單項,可對該菜單項進(jìn)行動態(tài)的修改等處理。
2.核心技術(shù)
本例的關(guān)鍵是使用到了兩個外部函數(shù)Edit.u32和Budmenu.u32。
3.典型函數(shù)用法介紹
↘EditboxErase()函數(shù)
格式:EditboxErase()
說明:該函數(shù)用于從演示窗口刪除文本編輯框。
↘EditboxGetText()函數(shù)
格式:cut_string:=EditboxGetText()
說明:該函數(shù)用于取得編輯框中的結(jié)果。
返回值:返回編輯框中的文本內(nèi)容。↘EditboxDisplay()函數(shù)
格式:result:=EditboxDisplay(string,x_coord,y_coord,height,width)
說明:該函數(shù)用于顯示一個帶滾動條的文本編輯框。
參數(shù):string,在文本編輯框中顯示的初始化字符;
x_coord,文本編輯框左上角坐標(biāo)(x坐標(biāo));
y_coord,文本編輯框左上角坐標(biāo)(y坐標(biāo));
height,文本編輯框的高度;
width,文本編輯框的寬度。↘mCreatePopupMenu()函數(shù)
格式:menu:=mCreatePopupMenu()
說明:該函數(shù)用于創(chuàng)建一個空的菜單。
返回值:如果創(chuàng)建成功,則返回一個菜單句柄(該句柄在其它函數(shù)里會多次用到);如果創(chuàng)建失敗,則返回0。↘mAppendMenu()函數(shù)
格式:ok:=mAppendMenu(Menu,Flags,IDNewItem,NewItem)
說明:該函數(shù)用于在指定菜單(Menu)后面添加一個新的菜單項。
參數(shù):Menu,由mCreatePopupMenu()函數(shù)返回的菜單句柄。
Flags,由數(shù)字構(gòu)成,其值決定了菜單項的一些相關(guān)屬性;
●0,普通的菜單項;
●1,使菜單項變成灰色(禁用);
●2,禁用菜單項,但菜單項不變成灰色;
●8,給菜單項添加選中標(biāo)志;
●16,創(chuàng)建級聯(lián)菜單(子菜單);
●2048,創(chuàng)建一個菜單項之間的分隔條。
IDNewItem,新創(chuàng)建的菜單項的ID。該ID由數(shù)字構(gòu)成,由用戶自己設(shè)定,每一個菜單項有一個惟一的ID標(biāo)記,絕對不能重復(fù)。
NewItem,新創(chuàng)建的菜單項的名稱。如果要在菜單項中添加快捷操作鍵,則可在指定快捷字母前加“&”。
↘mCheckMenuItem()函數(shù)
格式:ok:=mCheckMenuItem(Menu,IDEnableItem,Check)
說明:該函數(shù)用于設(shè)置指定菜單項前是否添加選中標(biāo)記。
參數(shù):Menu,指定菜單項的菜單句柄;
IDEnableItem,菜單項的ID標(biāo)記;
Check,是否添加選中標(biāo)記。若其值為0,則取消選中標(biāo)記;若其值為8,則添加選中標(biāo)記。返回值:如果操作成功,則返回True,否則返回False。
↘mDestroyMenu()函數(shù)
格式:ok:=mDestroyMenu(Menu)
說明:該函數(shù)用于刪除指定的菜單。
參數(shù):Menu,菜單句柄。
返回值:如果操作成功,則返回True,否則返回False。
↘mEnableMenuItem()函數(shù)
格式:ok:=mEnableMenuItem(Menu,IDEnableItem,Enable)
說明:該函數(shù)用于啟用、禁用或變灰指定的菜單項。參數(shù):Menu,菜單句柄;
IDEnableItem,菜單項的ID標(biāo)記;
Enable,此值為0,表示啟用該菜單項;此值為1,表示禁用該菜單項,同時菜單項變成灰色;此值為2,表示禁用該菜單項,菜單項不變灰。
返回值:如果操作成功,則返回True,否則返回False。
↘mTrackPopupMenu()函數(shù)
格式:ok:=mTrackPopupMenu(Menu,Flags,X,Y,Reserved,WindowHandle,Rect)
說明:該函數(shù)用于顯示一個菜單。參數(shù):Menu,菜單句柄;
Flags,參見mCreatePopupMenu()函數(shù)中的Flags參數(shù),通常,此值為0;
X,菜單的x坐標(biāo);
Y,菜單的y坐標(biāo);
Reserved,此值固定為0;
WindowHandle,Authorware的系統(tǒng)變量,表示當(dāng)前演示窗口的句柄。
返回值:菜單正常顯示后,返回True,否則返回False。
↘mGetLastMenuID()函數(shù)
格式:ID:=mGetLastMenuID()
說明:該函數(shù)用于記錄用戶選擇了哪一個菜單項。
返回值:所選菜單項的ID。↘mGetMenustate()函數(shù)
格式:state:=mGetMenustate(Menu,IDItem,Flags)
說明:該函數(shù)用于檢查指定菜單項的狀態(tài),比如是否有選中標(biāo)記、是否啟用等。
參數(shù):Menu,菜單句柄;
IDItem,指定菜單項的ID;
Flags,參見mCreatePopupMenu()函數(shù)中的Flags參數(shù)。
返回值:根據(jù)Flags的值返回不同的值。
↘MenuHookOn()函數(shù)
格式:res:=MenuHookOn(WindowHandle)
說明:該函數(shù)用于安裝菜單掛鉤,也就是讓菜單和Authorware之間建立聯(lián)系。安裝好掛鉤后,該掛鉤會一直起作用,直到調(diào)用MenuHookOff()解除掛鉤為止。參數(shù):WindowHandle,演示窗口的句柄。
返回值:如果操作成功,則返回True,否則返回False。
↘MenuHookOff()函數(shù)
格式:MenuHookOff()
說明:該函數(shù)用于解除菜單掛鉤。
↘mModifyMenu()函數(shù)
格式:ok:=mModifyMenu(Menu,Position,Flags,IDNewItem,NewItem)
說明:該函數(shù)用于修改指定的菜單項。參數(shù):Menu,菜單句柄;
Position,指定菜單項的ID;
Flags,此值通常為0;
IDNewItem,新菜單項的ID值,如果只修改菜單項的名稱而不修改它的順序,則此值應(yīng)與Position的值相同;
NewItem,修改后的新的菜單名稱。
返回值:如果操作成功,則返回True,否則返回False。
4.具體制作
(1)創(chuàng)建如圖13-16所示的程序流程(其中還有一個“添加菜單項”按鈕沒有顯示出來),然后載入外部函數(shù)Budmenu.u32和Edit.u32。圖13-16
(2)在“創(chuàng)建菜單”計算圖標(biāo)中輸入以下代碼:
LastMenuID:=-1 --選中菜單號的初值
SelectMenu:=mCreatePopupMenu()--創(chuàng)建文件菜單
mAppendMenu(SelectMenu,0,10,"打開\tCtrlO") --添加文件菜單項
submenu:=mCreatePopupMenu() --創(chuàng)建子菜單
mAppendMenu(submenu,0,20,"保存為*.txt文件") --添加子菜單項
mAppendMenu(submenu,0,21,"保存為*.doc文件")
mAppendMenu(submenu,0,22,"保存為*.rtf文件")
mAppendMenu(submenu,0,23,"保存為*.html文件")
mAppendMenu(submenu,2048,0,"")--添加一個分隔線
mAppendMenu(submenu,0,24,"取消")--再添加一個子菜單項
mCheckMenuItem(submenu,20,8)--使20菜單項前加一個選中標(biāo)記
mEnableMenuItem(submenu,23,1)--禁用23菜單項
mAppendMenu(SelectMenu,16,submenu,"保存")--添加主菜單項并有級聯(lián)菜單
mAppendMenu(SelectMenu,0,11,"退出\tCtrlQ") --再添加一個主菜單項
EditMenu:=mCreatePopupMenu() --創(chuàng)建編輯菜單
ok:=mAppendMenu(EditMenu,0,30,"復(fù)制\tCtrlC") --添加四個菜單項
ok:=mAppendMenu(EditMenu,0,31,"剪切")
ok:=mAppendMenu(EditMenu,0,32,"粘貼")
ok:=mAppendMenu(EditMenu,0,33,"測試項")
appendMenuID:=37 --下一個添加菜單的號
mMenuHookOn(WindowHandle)--安裝與Authorware的連接掛鉤
Message:=""
(3)在“顯示信息”顯示圖標(biāo)里輸入以下內(nèi)容:
{message}
并勾上“更新顯示變量”選項。
(4)在“激活菜單1”計算圖標(biāo)里輸入以下代碼:
mTrackPopupMenu(SelectMenu,0,ResponseLeft@"文件"+WindowLeft,ResponseTop@"文件"+ResponseHeight@"文件"+WindowTop,0,WindowHandle,0)
在“返回選項1”計算圖標(biāo)里輸入以下代碼:
LastMenuID:=mGetLastMenuID()
Checked@"文件":=FALSE
(5)在“激活菜單2”計算圖標(biāo)里輸入以下代碼:
mTrackPopupMenu(EditMenu,0,ResponseLeft@"編輯"+WindowLeft,ResponseTop@"編輯"+ResponseHeight@"編輯"+WindowTop,0,WindowHandle,0)
在“返回選項2”計算圖標(biāo)里輸入以下代碼:
LastMenuID:=mGetLastMenuID()
Checked@"編輯":=FALSE
(6)在“打開編輯框1”計算圖標(biāo)里輸入以下代碼:
Message:=""
newText:=EditboxDisplay("請在這里編輯新的菜單項然后單擊按鈕",200,50,50,100)
在“打開編輯框2”計算圖標(biāo)里輸入以下代碼:
Message:=""
newText:=EditboxDisplay("請在這里編輯新的菜單項然后單擊按鈕",200,50,50,100)
在“確定”計算圖標(biāo)里輸入以下代碼:
newText:=EditboxGetText() --取得編輯結(jié)果
mModifyMenu(EditMenu,33,0,33,newText) --改變菜單項
EditboxErase() --刪除編輯框
LastMenuID:=-1
Message:="此項菜單已經(jīng)改變,請查看"
在“添加菜單項”計算圖標(biāo)中輸入以下代碼:
newText:=EditboxGetText() --取得編輯結(jié)果
mAppendMenu(EditMenu,0,appendMenuID,newText) --添加一個新的菜單項
appendMenuID:=appendMenuID+1 --下一個添加菜單的ID號
EditboxErase() --刪除編輯框
LastMenuID:=-1
Message:="已經(jīng)增加了一個新的菜單項,請查看"
“擦除按鈕1”和“擦除按鈕2”分別擦除兩個“提交”按鈕。
(7)在“改變選中標(biāo)記”計算圖標(biāo)里輸入以下代碼:
mCheckMenuItem(EditMenu,33,8-mGetMenuState(EditMenu,33,8))
Message:="試驗菜單項的選中標(biāo)記已經(jīng)改變,請查看"
在“改變可用性”計算圖標(biāo)里輸入以下代碼:
mEnableMenuItem(EditMenu,33,9-mGetMenuState(EditMenu,33,9))
Message:="試驗菜單項的可用性已經(jīng)改變,請查看"
在“LastMenuID>-1”條件響應(yīng)的下掛計算圖標(biāo)里輸入以下代碼:
ifLastMenuID=10thenMessage:="打開"
ifLastMenuID=20thenMessage:="保存為*.txt文件"
ifLastMenuID=21thenMessage:="保存為*.doc文件"
ifLastMenuID=22thenMessage:="保存為*.rtf文件"
ifLastMenuID=23thenMessage:="保存為*.html文件"
ifLastMenuID=24thenMessage:="取消"
ifLastMenuID=30thenMessage:="復(fù)制"
ifLastMenuID=31thenMessage:="剪切"
ifLastMenuID=32thenMessage:="粘貼"
ifLastMenuID=33thenMessage:="測試項"
Message:="你選擇的菜單項是:"^MessageifLastMenuID=0thenMessage:="沒有選擇菜單"
ifLastMenuID=11then --退出
mMenuHookOff() --解除與Authorware的掛鉤
mDestroyMenu(SelectMenu) --刪除各個菜單
mDestroyMenu(EditMenu)
mDestroyMenu(submenu)
Quit()
endif
LastMenuID:=-1其中條件響應(yīng)的“自動”選項選擇“由假變真”。
在“CtrlC”計算圖標(biāo)中輸入以下代碼:
LastMenuID:=30
在“CtrlO”計算圖標(biāo)中輸入以下代碼:
LastMenuID:=10
在“CtrlQ”計算圖標(biāo)中輸入以下代碼:
LastMenuID:=11
(8)由于Budmenu.u32不能直接建立菜單條,因此,本例中是使用兩個按鈕(文件、編輯)來模擬菜單條,故需要使用按鈕編輯器把兩個按鈕的邊框去除,并將其調(diào)整至合適的位置。整個程序運行時的效果如圖13-17所示。圖13-17
13.2.3動態(tài)改變按鈕名稱
在程序運行過程中,有的按鈕需要動態(tài)改變其名稱。比如,制作一個媒體播放器,我們可把“播放”和“暫停”做成一個按鈕:當(dāng)點擊“播放”后,該按鈕變成“暫?!?;再點擊一次“暫?!保摪粹o又會變成“播放”。
1.程序設(shè)計
通過系統(tǒng)函數(shù)設(shè)置按鈕名稱,從而達(dá)到動態(tài)改變按鈕名稱的目的。
2.核心技術(shù)
使用系統(tǒng)函數(shù)SetIconTitle()來改變按鈕名稱。
3.典型函數(shù)用法介紹
↘SetIconTitle()函數(shù)
格式:SetIconTitle(IconID@“IconTitle”,“title”)
說明:該函數(shù)用于設(shè)置指定圖標(biāo)的標(biāo)題名稱。
參數(shù):IconTitle,指定圖標(biāo)的標(biāo)題;
title,設(shè)置新的標(biāo)題名稱。
↘IconID()函數(shù)
格式:number:=IconID(“IconTitle”)
說明:該函數(shù)用于返回指定圖標(biāo)獨一無二的數(shù)字標(biāo)識。
參數(shù):IconTitle,指定圖標(biāo)的標(biāo)題。
↘IconTitle()函數(shù)
格式:string:=IconTitle(IconID)
說明:該函數(shù)用于返回用戶在IconID中指定的圖標(biāo)標(biāo)題。
4.具體制作
(1)制作如圖13-18所示的程序流程。
(2)在“初始化”計算圖標(biāo)中輸入以下代碼:
ResizeWindow(210,152)
id1:=IconID@"暫停"
id2:=IconID@"開倉"
在“暫?!卑粹o的下掛計算圖標(biāo)中輸入以下代碼:
ifIconTitle="暫停"then
SetIconTitle(id1,"播放")
else
SetIconTitle(id1,"暫停")
endif在“開倉”按鈕的下掛計算圖標(biāo)中輸入以下代碼:
ifIconTitle="關(guān)倉"then
SetIconTitle(id2,"開倉")
else
SetIconTitle(id2,"關(guān)倉")
endif
在“退出”按鈕的下掛計算圖標(biāo)中輸入以下代碼:
SetIconTitle(id1,"暫停")
SetIconTitle(id2,"開倉")
Quit()
(3)雙擊交互圖標(biāo),在其演示窗口中輸入文字,如圖13-19所示。
(4)至此,用戶可以試著運行一下程序,體驗一下動態(tài)改變按鈕名稱的感覺。
實際上,要動態(tài)改變按鈕名稱,也可使兩個按鈕重合(當(dāng)然也可多個),然后在某一時刻只顯示某一個按鈕,其它按鈕隱藏。
13.2.4調(diào)用Windows的常用對話框
1.程序設(shè)計
本例通過控件的調(diào)用,實現(xiàn)打開顏色對話框、字體對話框、打印對話框、文件對話框和保存文件對話框的功能,并能同時返回每個對話框的結(jié)果。
2.核心技術(shù)
本例各個功能得以實現(xiàn),依賴于MicrosoftCommonDialogControl控件。
3.控件典型屬性介紹
CancelError,是否顯示出錯信息,其值為True或False。
DefaultExt,缺省的擴(kuò)展名。
DialogTitle,對話框標(biāo)題。
FileName,選擇的文件名。
Filter,列表框的過濾器設(shè)置。
FilterInder,過濾器索引值。
Flags,標(biāo)志位。該標(biāo)志位在不同對話框里,同樣的值有不同的含義。具體內(nèi)容可參見表13-1。表13-1不同對話框里Flags的含義FontBold,選擇的字體是否是粗體,其值為True或False。
FontItalic,選擇的字體是否是斜體,其值為True或False。
FontName,選擇的字體的名稱。
FontSize,選擇的字體的大小。
FontStrikeThru,選擇的字體是否有刪除線,其值為True或False。
FontUnderLine,選擇的字體是否有下劃線,其值為True或False。
FromPage,返回“打印”對話框里的開始頁數(shù)值。
HelpCommand,返回或設(shè)置需要的聯(lián)機幫助的類型。
HelpContext,返回或設(shè)置聯(lián)機幫助的內(nèi)容。
HelpFile,聯(lián)機幫助文件的路徑及名稱。
HelpKey,返回或設(shè)置聯(lián)機幫助的主題關(guān)鍵字。
InitDir,初始文件夾。
Max,字體的最大值。
MaxFilenSize,文件名的最大字節(jié)數(shù)。
Min,字體的最小值。
Orientation,打印方向。值為1表示縱向,值為2表示橫向。
PrinterDefault,是否使用缺省打印機,其值為True或False。
ToPage,返回“打印”對話框里的結(jié)束頁數(shù)值。
4.控件典型方法介紹
ShowColor,顯示“顏色”對話框。
ShowFont,顯示“字體”對話框。在顯示該對話框之前,必須先設(shè)置前面所介紹的Flags屬性,否則系統(tǒng)會出錯。
ShowOpen,顯示“打開”對話框。
ShowPrinter,顯示“打印”對話框。
ShowSave,顯示“另存為”對話框。
5.具體制作
(1)制作如圖13-20所示的程序流程(其中還有一個“退出”按鈕沒有顯示出來)。圖13-20
(2)在“初值”計算圖標(biāo)里輸入以下代碼:
ResizeWindow(350,250)
d:=""
(3)在“顯示信息”顯示圖標(biāo)里輸入以下代碼:
1lnsbva
(4)在“顏色對話框”按鈕的下掛計算圖標(biāo)里輸入以下代碼:
a:=SetSpriteProperty(@"通用對話框控件",#flags,2)
a:=CallSprite(@"通用對話框控件",#showcolor)
a:=GetSpriteProperty(@"通用對話框控件",#color)
b:=SetFileProperty(#awbackgroundcolor,a)
d:="背景色="^String(a)
(5)在“字體對話框”按鈕的下掛計算圖標(biāo)里輸入以下代碼:
a:=SetSpriteProperty(@"通用對話框控件",#Flags,3)
a:=CallSprite(@"通用對話框控件",#ShowFont)
d1:=GetSpriteProperty(@"通用對話框控件",#FontName)
d2:=GetSpriteProperty(@"通用對話框控件",#FontSize)
d3:=Test(GetSpriteProperty(@"通用對話框控件",#FontBold),"粗體","")
d4:=Test(GetSpriteProperty(@"通用對話框控件",#FontItalic),"斜體","")
d5:=Test(GetSpriteProperty(@"通用對話框控件",#FontUnderLine),"下劃線","")
d:="字體="^d1^"\r字號="^d2^"\r"^d3^d4^d5
(6)在“打開文件對話框”按鈕的下掛計算圖標(biāo)里輸入以下代碼:
a:=CallSprite(@"通用對話框控件",#ShowOpen)
d:="打開文件="^GetSpriteProperty(@"通用對話框控件",#FileName)
(7)在“保存文件對話框”按鈕的下掛計算圖標(biāo)里輸入以下代碼:
a:=SetSpriteProperty(@"通用對話框控件",#Flags,2)
a:=CallSprite(@"通用對話框控件",#ShowSave)
d:="保存文件="^GetSpriteProperty(@"通用對話框控件",#FileName)
(8)在“打印對話框”按鈕的下掛計算圖標(biāo)里輸入以下代碼:
a:=CallSprite(@"通用對話框控件",#ShowPrinter)
d:="調(diào)用了打印文件對話框,正常返回"(9)打包程序,運行結(jié)果如圖13-21所示。圖13-2113.3在Authorware中連接數(shù)據(jù)庫
13.3.1ODBC驅(qū)動程序連接數(shù)據(jù)庫簡介
ODBC(OpenDataBaseConnectivity)接口,中文名為“開放式數(shù)據(jù)庫鏈接”接口,是Microsoft公司推出的實現(xiàn)異種數(shù)據(jù)庫互連的標(biāo)準(zhǔn)。它對用戶屏蔽了不同數(shù)據(jù)庫之間的差異,從而可以使用戶利用標(biāo)準(zhǔn)的SQL語言對各種不同的數(shù)據(jù)庫進(jìn)行操作。
Authorware提供了一個支持標(biāo)準(zhǔn)ODBC的數(shù)據(jù)庫接口,利用標(biāo)準(zhǔn)的SQL語言可以對Access、FoxPro、Dbase、Oracle、Sybase、SQLServer等數(shù)據(jù)庫進(jìn)行添加、刪除和查詢等基本操作。
在Authorware中操作數(shù)據(jù)庫,必須具備以下條件:
(1)所連接數(shù)據(jù)庫的ODBC驅(qū)動程序。
(2)ODBC用戶代碼文件,即需要調(diào)用外部的UCD函數(shù)(ODBC.U32)。
(3)數(shù)據(jù)庫源文件,一般由數(shù)據(jù)庫軟件創(chuàng)建,也可以利用Authorware新建和添加記錄。
ODBC驅(qū)動程序是一種動態(tài)的鏈接庫,它含有可與各種不同數(shù)據(jù)庫相鏈接的函數(shù),每種數(shù)據(jù)庫類型都有單獨的驅(qū)動程序。在WindowsXP操作系統(tǒng)中,我們可在“控制面板”里打開“管理工具”,然后打開“數(shù)據(jù)源(ODBC)”即可查看系統(tǒng)中的ODBC驅(qū)動程序,如圖13-22所示。圖13-22用戶使用的每個ODBC驅(qū)動程序都必須包含以下基本功能:
(1)提供數(shù)據(jù)庫的鏈接;
(2)準(zhǔn)備和執(zhí)行SQL語句;
(3)處理事務(wù)的功能;
(4)返回結(jié)果集;
(5)通知應(yīng)用程序的錯誤信息。
13.3.2配置ODBC數(shù)據(jù)源
在Authorware中正常使用數(shù)據(jù)庫需要兩個最基本的條件:
(1)系統(tǒng)中的ODBC驅(qū)動程序必須可用,其作用是用來連接一種數(shù)據(jù)庫;
(2)必須建立ODBC數(shù)據(jù)源,其作用是用來連接一種特殊類型的數(shù)據(jù)庫的ODBC驅(qū)動程序配置。
配置ODBC的方法一般有兩種,即手動配置和自動配置。
1.手動配置
利用Windows的控制面板中的ODBC管理應(yīng)用程序可實現(xiàn)手動配置ODBC數(shù)據(jù)源。
(1)在WindowsXP中,我們可以打開“控制面板”,再打開其中的“管理工具”,在其中找到“數(shù)據(jù)源(ODBC)”圖標(biāo),雙擊它打開ODBC數(shù)據(jù)源管理器,然后切換至“系統(tǒng)DSN”標(biāo)簽,如圖13-23所示。圖13-23
(2)單擊“添加”按鈕,打開“創(chuàng)建新數(shù)據(jù)源”對話框,如圖13-24所示。在其中選擇自己需要的驅(qū)動程序,在此,我們選擇“MicrosoftAccessDriver(*.mdb)”,表示將連接一個Access數(shù)據(jù)庫。單擊“完成”按鈕進(jìn)入下一個環(huán)節(jié)。圖13-24
(3)在“ODBCMicrosoftAccess安裝”對話框中,輸入一個“數(shù)據(jù)源名”,在此輸入“student”,“說明”可以不輸入。在下面的“數(shù)據(jù)庫”里,單擊“選擇”按鈕,選擇自己的Access數(shù)據(jù)庫,如圖13-25所示。如果該數(shù)據(jù)庫包含有密碼等相關(guān)信息,則可單擊“高級”按鈕,然后在其中設(shè)置密碼等,如圖13-26所示。圖13-25圖13-26
(4)設(shè)置好數(shù)據(jù)源后,在“系統(tǒng)DSN”中即可看到我們設(shè)置的系統(tǒng)數(shù)據(jù)源,如圖13-27所示。圖13-27
2.自動配置
在Authorware中調(diào)用tMsSDSN.U32函數(shù)可實現(xiàn)ODBC數(shù)據(jù)源的自動配置。
自動配置數(shù)據(jù)源的優(yōu)點在于,通過Authorware編制的程序,打包成可執(zhí)行文件后,可以在其他計算機上直接運行,而不需要手動去配置數(shù)據(jù)源。實現(xiàn)自動配置數(shù)據(jù)源的關(guān)鍵是使用外部函數(shù)tMsDSN.u32中的tMsDBRegister()函數(shù)。
(外部函數(shù)tMsDSN.u32
格式:result:=tMsDBRegister(dbReqType,dbType,dbList)說明:該函數(shù)用于配置數(shù)據(jù)源的驅(qū)動程序、指定數(shù)據(jù)源的名稱、指定源數(shù)據(jù)庫。
參數(shù):dbReqTpye,指定對數(shù)據(jù)源的操作方式:
●dbReqTpye=1,表示增加ODBC數(shù)據(jù)源;
●dbReqTpye=2,表示配置(編輯)ODBC數(shù)據(jù)源;
●dbReqTpye=3,表示刪除ODBC數(shù)據(jù)源;
●dbReqTpye=4,表示增加ODBC系統(tǒng)數(shù)據(jù)源;
●dbReqTpye=5,表示配置(編輯)ODBC系統(tǒng)數(shù)據(jù)源;
●dbReqTpye=6,表示刪除ODBC系統(tǒng)數(shù)據(jù)源;
●dbReqTpye=7,表示刪除默認(rèn)的ODBC數(shù)據(jù)源。
dbType,指定ODBC數(shù)據(jù)源需要使用的驅(qū)動程序。比如:
dbType:="MicrosoftAccessDriver(*.mdb)"
dbList,指定ODBC數(shù)據(jù)源的名稱、對數(shù)據(jù)源的描述以及與之相關(guān)聯(lián)的數(shù)據(jù)庫文件,注意它們之間必須用分號隔開,下面舉例說明:
dbList:="DSN=CollegeDSN;" --CollegeDSN為數(shù)據(jù)源的名稱
dbList:=dbList^"Description=MyODBCDSN;"--對CollegeDSN數(shù)據(jù)源進(jìn)行描述
dbList:=dbList^"FIL=MSAccess;" --說明數(shù)據(jù)的類型為Access數(shù)據(jù)庫
dbList:=dbList^"DBQ="^FileLocation^"test.mdb;" --相關(guān)聯(lián)的數(shù)據(jù)庫是test.mdb
返回值:如果數(shù)據(jù)源創(chuàng)建成功,則返回值是1,否則返回0。
自動創(chuàng)建好數(shù)據(jù)源后,用戶還可以通過控制面板中的“數(shù)據(jù)源(ODBC)”來查看創(chuàng)建的結(jié)果。13.3.3SQL語句使
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024網(wǎng)絡(luò)安全防護(hù)與監(jiān)測服務(wù)合同
- 2024離婚雙方的特殊財產(chǎn)(如古董、藝術(shù)品)分配合同
- 2025年度住宅小區(qū)蟲鼠害預(yù)防與治理專項服務(wù)合同模板4篇
- 2025年度安全生產(chǎn)應(yīng)急預(yù)案編制合同規(guī)范3篇
- 2025年度新能源汽車銷售代理及售后服務(wù)合同3篇
- 2025年度智慧停車系統(tǒng)車位租賃管理合同樣本4篇
- 2025年度出租車公司車輛更新改造升級合同3篇
- 2025年度現(xiàn)代農(nóng)業(yè)示范區(qū)場地平整與灌溉系統(tǒng)建設(shè)合同3篇
- 2025年度特色菜肴研發(fā)及廚師團(tuán)隊聘用協(xié)議4篇
- 2025年度數(shù)據(jù)中心專用電纜供應(yīng)與安裝服務(wù)合同范本4篇
- 商場電氣設(shè)備維護(hù)勞務(wù)合同
- 油氣田智能優(yōu)化設(shè)計-洞察分析
- 陜西2020-2024年中考英語五年真題匯編學(xué)生版-專題09 閱讀七選五
- 磚混結(jié)構(gòu)基礎(chǔ)加固技術(shù)方案
- 助產(chǎn)專業(yè)的職業(yè)生涯規(guī)劃
- 2023年國家公務(wù)員錄用考試《行測》真題(行政執(zhí)法)及答案解析
- 新《國有企業(yè)管理人員處分條例》知識競賽考試題庫500題(含答案)
- 骨質(zhì)疏松護(hù)理
- 《聞泰科技并購安世半導(dǎo)體的風(fēng)險應(yīng)對案例探析》8200字(論文)
- 肝斷面引流管護(hù)理
- 醫(yī)療器械銷售合同模板
評論
0/150
提交評論