PB作爲數據庫開發的工具,早已深受廣大開發人員的認可,筆者在開發PB應用程序時,總結了一些編程的經驗技巧,介紹給大家。 1.添加啓動聲音 對Win 98的啓動聲音一定不陌生吧,那麼有沒有想過爲你的PB應用程序添加啓動聲音呢?使用Win32 API函數PlaySound很容易實現。方法是在“Global External Functions...”中添加如下函數聲明: Function long PlaySound (String Filename,Int Mod,Int Flags ) Library ″winmm.dll″ 獲得這個函數聲明的最好的方法是使用Visual Basic中的“API Viewer”,只需把得到的結果改寫成PB的格式,然後在Application的Open事件中添加如下代碼: iRet=PlaySound(″C:/Program Files/Joint/Start.wav″,1,1) 參數1指定啓動聲音文件,參數2指定播放模式,參數3指定播放標記。播放成功返回1,否則返回0。若因聲音文件不存在等原因導致播放失敗也不會產生錯誤提示,因此沒有必要對返回值進行捕捉處理。 2.使PB窗口居中 在窗口屬性的Position頁中可以粗略地設置窗口的彈出位置。然而,你並不知道客戶機的屏幕分辨率是多少(800×600還是1024×786),不如在Open事件中加入下列代碼使其居中: GetEnvironment(Env)//獲取客戶機環境信息 dy=(Pixelstounits(Env.ScreenHeight,YPixelsToUnits!)-this.Height)/2 dx=(Pixelstounits(Env.ScreenWidth, XPixelsToUnits!)-this.Width)/2 this.Move(dx,dy) //Env爲Environment類型,dx,dy爲Long類型3.使用ActiveX控件 VB可以直接引用ActiveX控件,而PB只能通過“控件嵌套”的方法來引用。這種方法需要藉助OLE容器。下面以Animation控件爲例說明引用過程及約定。 窗體設計時,選擇OLE,在彈出的“Insert Object”對話框中選擇“Insert Control”頁,在Control Type下列出了系統中所有註冊過的ActiveX控件,選擇“Microsoft Animation Control”。對ActiveX控件的屬性和方法的引用必須遵循“OLE控件.Object.屬性(或方法)”的規則。如下代碼通過調用Animation控件的屬性和方法來自動播放一個視頻剪輯: ole—1.Object.AutoPlay =True //設置爲自動播放 ole—1.Object.Open(″C:/Program Files/Joint/FireWork.avi″) //打開一個Avi文件 若你的PB程序中使用了ActiveX控件,最好把相應的OCX文件與你的程序一起發佈,並在安裝程序中進行註冊,因爲客戶機不一定註冊了相應控件。註冊的方法是用Regsvr32,若採用InstallShield來製作安裝程序,也可以把所有要註冊的OCX文件放到一個File Group中,然後將它的“Self-Registered”設置成Yes來自動註冊。 4.操縱LOB 大對象(Large OBject)通常指大文本和大二進制對象,幾乎每一種數據庫都支持它。在PB中可以用UpdateBlob和SelectBlob語句來對它們進行處理。 (1)用UpdateBlob來把大對象數據寫入數據庫 在編寫管理軟件時,要求把員工的照片(Bmp文件)和工作經歷(Doc文件)保存在數據庫中,而不是像以前一樣保存它們的文mpno=′9925′; //把圖像數據寫入數據庫 If SQLCA.SQLNRows〉0 Then Commit; End If 注意,FileRead一次只能讀取32K,若文件大於32K應分多次讀取;UpdateBlob執行成功與否不能用SQLCode或SQLDBCode來判斷,而要用SQLNRows是否大於0來判斷。 (2)用SelectBlob從數據庫中讀取大對象數據 要查看員工的照片或工作經歷,就應把相關信息從數據庫中讀出來。主要代碼如下: Blob pic //把pic定義爲二進制大對象(Binary large object) SelectBlob photo Into :pic From emp Where empno=′9925′;//把圖像數據讀到變量pic中 p_1.SetPicture(pic) //用圖像控件顯示圖像 5.編譯技巧 (1)沒有必要將pbl編譯成機器碼dll,即不要選擇“Machine Code”。那樣做意味着你至少要等待半個小時。編譯成僞碼pbd就行了。 (2)把程序中用到的ico、bmp等文件打包到目標代碼中。方法是:用記事本創建一個擴展名爲pbr的資源文件,它的每一行是一個帶完整路徑的文件名,用於告訴編譯器到何處去找用到的資源。 (3)PB應用程序要獨立運行,必須把Sybase/Shared下的幾個共享庫與你的程序一起發佈,它們是:pbvm60.dll、pbodb60.dll、pbdwe60.dll。後臺若使用MS SQL Server,還得帶上pbmss60.dll;若使用Sybase SQL Anywhere,要帶上pbo7360.dll;若使用Informix V7.x,要帶上pbin760.dll。 |