使PB窗口居中
2024-07-21 02:10:04
供稿:網(wǎng)友
在窗口屬性的position頁(yè)中可以粗略地設(shè)置窗口的彈出位置。然而,你并不知道客戶機(jī)的屏幕分辨率是多少(800×600還是1024×786),不如在open事件中加入下列代碼使其居中:
getenvironment(env)//獲取客戶機(jī)環(huán)境信息
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只能通過(guò)“控件嵌套”的方法來(lái)引用。這種方法需要借助ole容器。下面以animation控件為例說(shuō)明引用過(guò)程及約定。
窗體設(shè)計(jì)時(shí),選擇ole,在彈出的“insert object”對(duì)話框中選擇“insert control”頁(yè),在control type下列出了系統(tǒng)中所有注冊(cè)過(guò)的activex控件,選擇“microsoft animation control”。對(duì)activex控件的屬性和方法的引用必須遵循“ole控件.object.屬性(或方法)”的規(guī)則。如下代碼通過(guò)調(diào)用animation控件的屬性和方法來(lái)自動(dòng)播放一個(gè)視頻剪輯:
ole—1.object.autoplay =true
//設(shè)置為自動(dòng)播放 ole—1.object.open(″c:/program files/joint/firework.avi″) //打開(kāi)一個(gè)avi文件
若你的pb程序中使用了activex控件,最好把相應(yīng)的ocx文件與你的程序一起發(fā)布,并在安裝程序中進(jìn)行注冊(cè),因?yàn)榭蛻魴C(jī)不一定注冊(cè)了相應(yīng)控件。注冊(cè)的方法是用regsvr32,若采用installshield來(lái)制作安裝程序,也可以把所有要注冊(cè)的ocx文件放到一個(gè)file group中,然后將它的“self-registered”設(shè)置成yes來(lái)自動(dòng)注冊(cè)。
4.操縱lob
大對(duì)象(large object)通常指大文本和大二進(jìn)制對(duì)象,幾乎每一種數(shù)據(jù)庫(kù)都支持它。在pb中可以用updateblob和selectblob語(yǔ)句來(lái)對(duì)它們進(jìn)行處理。
(1)用updateblob來(lái)把大對(duì)象數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)
在編寫(xiě)管理軟件時(shí),要求把員工的照片(bmp文件)和工作經(jīng)歷(doc文件)保存在數(shù)據(jù)庫(kù)中,而不是像以前一樣保存它們的文mpno=′9925′; //把圖像數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)
if sqlca.sqlnrows〉0 then commit;
end if
注意,fileread一次只能讀取32k,若文件大于32k應(yīng)分多次讀取;updateblob執(zhí)行成功與否不能用sqlcode或sqldbcode來(lái)判斷,而要用sqlnrows是否大于0來(lái)判斷。
(2)用selectblob從數(shù)據(jù)庫(kù)中讀取大對(duì)象數(shù)據(jù)
要查看員工的照片或工作經(jīng)歷,就應(yīng)把相關(guān)信息從數(shù)據(jù)庫(kù)中讀出來(lái)。主要代碼如下:
blob pic //把pic定義為二進(jìn)制大對(duì)象(binary large object)
selectblob photo into :pic from emp where empno=′9925′;//把圖像數(shù)據(jù)讀到變量pic中
p_1.setpicture(pic) //用圖像控件顯示圖像
5.編譯技巧
(1)沒(méi)有必要將pbl編譯成機(jī)器碼dll,即不要選擇“machine code”。那樣做意味著你至少要等待半個(gè)小時(shí)。編譯成偽碼pbd就行了。
(2)把程序中用到的ico、bmp等文件打包到目標(biāo)代碼中。方法是:用記事本創(chuàng)建一個(gè)擴(kuò)展名為pbr的資源文件,它的每一行是一個(gè)帶完整路徑的文件名,用于告訴編譯器到何處去找用到的資源。
(3)pb應(yīng)用程序要獨(dú)立運(yùn)行,必須把sybase hared下的幾個(gè)共享庫(kù)與你的程序一起發(fā)布,它們是:pbvm60.dll、pbodb60.dll、pbdwe60.dll。后臺(tái)若使用ms sql server,還得帶上pbmss60.dll;若使用sybase sql anywhere,要帶上pbo7360.dll;若使用informix v7.x,要帶上pbin760.dll。