国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

PB編程經驗談

2024-07-21 02:10:22
字體:
來源:轉載
供稿:網友
 

  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 tart.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 hared下的幾個共享庫與你的程序一起發布,它們是:pbvm60.dll、pbodb60.dll、pbdwe60.dll。后臺若使用ms sql server,還得帶上pbmss60.dll;若使用sybase sql anywhere,要帶上pbo7360.dll;若使用informix v7.x,要帶上pbin760.dll。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都江堰市| 永安市| 观塘区| 承德市| 肥城市| 广西| 呼图壁县| 长子县| 景泰县| 弥勒县| 临汾市| 浦县| 积石山| 文成县| 龙岩市| 小金县| 昌都县| 新竹县| 甘泉县| 仁怀市| 泸溪县| 陆河县| 兴业县| 彭山县| 丹寨县| 全南县| 河西区| 瑞丽市| 富川| 大同县| 济阳县| 滦南县| 苏州市| 咸阳市| 宜兴市| 五大连池市| 宜良县| 苍梧县| 涞源县| 永德县| 建宁县|