




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第1章PowerBuilder8.0概述1.1 PowerBuilder簡介1.2 PowerBuilder開發(fā)環(huán)境1.3 PowerBuilder應(yīng)用對象
小結(jié)
返回總目錄1.1 PowerBuilder簡介PowerBuilder是著名的數(shù)據(jù)庫應(yīng)用開發(fā)工具生產(chǎn)商SybaseInc.的子公司PowerSoft于1991年6月推出的數(shù)據(jù)庫應(yīng)用開發(fā)工具,歷經(jīng)了多次升級換代。PowerBuilder8.0是2000年推出的最新版本,以其自由的編程風(fēng)格、強大的數(shù)據(jù)庫處理能力、先進的Web應(yīng)用技術(shù)和友好的界面等特點,給用戶留下了深刻的印象。
返回章目錄1.1 PowerBuilder簡介PowerBuilder的開放式數(shù)據(jù)庫系統(tǒng),能夠訪問任何一種常用的數(shù)據(jù)庫管理系統(tǒng)(DBMS),例如Oracle、Sybase、SQLServer、DB2、Informix等,它可以通過ODBC連接各種數(shù)據(jù)庫,也可以通過專用接口與常用的數(shù)據(jù)庫連接,從而大大提高了連接速度和效率。Power-Builder還可以使用內(nèi)嵌的SQL語句對數(shù)據(jù)庫進行操作,使得應(yīng)用程序?qū)?shù)據(jù)的處理更加方便和靈活。
返回章目錄1.1 PowerBuilder簡介PowerBuilder8.0在保持PowerBuilder7.0功能的基礎(chǔ)上做了許多的改動,其中最引人注目的是:作為集成開發(fā)環(huán)境,PowerBuilder8.0更簡潔、更高效;與SybaseEAServer的緊密集成;提供了強大的Web應(yīng)用開發(fā)能力等。這些新特性使得應(yīng)用開發(fā)更加方便和高效。
返回章目錄1.1 PowerBuilder簡介1.卓越的應(yīng)用開發(fā)效率和新的用戶界面2.新增Web特性3.新增企業(yè)應(yīng)用服務(wù)器(EAServer)集成4.新的數(shù)據(jù)庫連接5.其他
返回章目錄1.1 PowerBuilder簡介1.卓越的應(yīng)用開發(fā)效率和新的用戶界面(1)工作區(qū)(Workspace)和目標(biāo)(Target)(2)PowerSite集成(3)新的用戶交互接口(4)增強的自動腳本(5)支持命令行編譯及調(diào)度(6)源碼控制改變(7)更完善的錯誤處理方式
返回本節(jié)錄1.1 PowerBuilder簡介2.新增Web特性(1)Web數(shù)據(jù)窗口編程(2)數(shù)據(jù)窗口容器組件(3)Web數(shù)據(jù)窗口發(fā)布(4)新的Web數(shù)據(jù)窗口事件(5)新的Web數(shù)據(jù)窗口服務(wù)器端方法(6)Web數(shù)據(jù)窗口的JavaScript包含文件(7)控件的HTML表示
返回本節(jié)錄1.1 PowerBuilder簡介3.新增企業(yè)應(yīng)用服務(wù)器(EAServer)集成(1)新建EAServer組件實現(xiàn)已有接口(2)構(gòu)架EJB客戶端(3)客戶/組件管理的EAS事務(wù)(4)SSL(SecureSocketsLayer—安全保護協(xié)議層)連接及反饋(5)EAServer組件的并發(fā)屬性(6)EAServer中的多個PB虛擬機
返回本節(jié)錄1.1 PowerBuilder簡介4.新的數(shù)據(jù)庫連接(1)新的以及增強的數(shù)據(jù)接口(2)支持ANSI外連接(Outerjoin)的SQL語法生成(3)在EAServer上支持數(shù)據(jù)庫代理連接
返回本節(jié)錄1.1 PowerBuilder簡介5.其他(1)改進的異常處理(2)可執(zhí)行文件的版本信息(3)新的對象和控件屬性(4)新的數(shù)據(jù)窗口表達式(5)新的數(shù)據(jù)窗口對象屬性(6)新的及改進的PowerScript函數(shù)(7)改變了GUID及MIME類型
返回本節(jié)錄本節(jié)完1.2 PowerBuilder開發(fā)環(huán)境
1.2.1
PowerBuilder基本術(shù)語
1.2.2 PowerBuilder界面簡介1.2.3 PowerBuilder的系統(tǒng)幫助
返回章目錄1.2.1PowerBuilder基本術(shù)語
在建立一個PowerBuilder8.0應(yīng)用的過程中會用到很多相關(guān)的元素和環(huán)境,我們先來介紹幾個PowerBuilder8.0的概念和術(shù)語。1.工作區(qū)(Workspace)和目標(biāo)(Target)2.對象(Object)、屬性(Properties)和事件(Event)3.庫(Library)4.畫板(Painter)5.腳本(Script)6.函數(shù)(Function)
返回本節(jié)錄1.2.1PowerBuilder基本術(shù)語1.工作區(qū)(Workspace)和目標(biāo)(Target)工作空間可以看做是開發(fā)各種應(yīng)用的“空間”或“容器”,用戶根據(jù)需要在一個工作空間中建立一個或多個目標(biāo)(應(yīng)用),可以對多個目標(biāo)中的對象同時進行打開和編輯的操作,也可以同時編譯和部署多個目標(biāo)。PowerBuilder的目標(biāo)有以下兩種類型:(1)PowerBuilder目標(biāo):可以是任何應(yīng)用類型,如客戶端可執(zhí)行程序或服務(wù)器端組件。(2)Web目標(biāo):用來建立Web應(yīng)用,它包含建立Web站點所需的各種元素,例如HTML文件、腳本、圖片、下載的組件等。
返回本節(jié)錄1.2.1PowerBuilder基本術(shù)語2.對象(Object)、屬性(Properties)和事件(Event)PowerBuilder對象就是由PowerBuilder提供的、可以用來構(gòu)造應(yīng)用程序的一些“部件”。PowerBuilder提供了多種類型的對象,包括如窗口、數(shù)據(jù)窗口、菜單、按鈕等的圖形對象,以及如數(shù)據(jù)存儲、錯誤、定時對象等的非可視化對象。對于Web目標(biāo),對象包括HTML頁面、圖片以及樣式表等。
PowerBuilder為這些對象約定了屬性和事件。屬性決定對象的特征,開發(fā)人員可以給屬性指定特定的值。事件是外部作用在對象上的一個“動作”,這個動作可以觸發(fā)一段程序的執(zhí)行。例如,在Windows中單擊一個命令按鈕就會觸發(fā)一個程序開始執(zhí)行,這里的單擊就是事件。用戶也可以為對象定義新的事件。PowerBuilder開發(fā)的應(yīng)用程序是事件驅(qū)動的,運行于該環(huán)境下的程序并不是順序地執(zhí)行,即不是一條指令接著一條指令地執(zhí)行,而是用戶通過各種操作控制應(yīng)用程序的流程。
返回本節(jié)錄1.2.1PowerBuilder基本術(shù)語3.庫(Library)PowerBuilder庫(ˇ.PBL文件)用來存儲各種對象,如應(yīng)用對象、窗口對象、數(shù)據(jù)窗口對象等。一個PowerBuilder應(yīng)用可以只有一個庫文件,也可以有多個庫文件(應(yīng)用的規(guī)模比較大時)。當(dāng)運行應(yīng)用時PowerBuilder從設(shè)定的庫中搜索對象。PowerBuilder提供了一個庫畫板來管理庫文件及其對象。
返回本節(jié)錄1.2.1PowerBuilder基本術(shù)語4.畫板(Painter)用來編輯對象的編輯器稱為畫板。它的實際含義是工具或工具箱,或者把它看做是PowerBuilder大環(huán)境下的一個小環(huán)境。PowerBuilder開發(fā)環(huán)境由一系列集成的畫板組成,其絕大多數(shù)工作都是在畫板內(nèi)進行的。PowerBuilder為窗口、菜單、數(shù)據(jù)窗口對象、可視化和非可視化的用戶對象、函數(shù)、結(jié)構(gòu)、數(shù)據(jù)庫、數(shù)據(jù)管道以及應(yīng)用等提供了畫板。例如,在窗口畫板內(nèi)建立和編輯窗口、設(shè)置窗口的屬性、添加控件、根據(jù)需要為窗口和控件編寫代碼等。
返回本節(jié)錄1.2.1PowerBuilder基本術(shù)語5.腳本(Script)用PowerBuilder語言編寫的程序通常稱為腳本(Script)。PowerBuilder編程語言(Power-Script)屬于第四代編程語言,功能強大。腳本通常由PowerScript函數(shù)、表達式以及為響應(yīng)某個事件而要進行處理的語句組成。
返回本節(jié)錄1.2.1PowerBuilder基本術(shù)語6.函數(shù)(Function)PowerBuilder提供了豐富的內(nèi)置函數(shù),可以利用這些函數(shù)對應(yīng)用程序的各種對象和控件進行處理。如打開窗口的函數(shù)、檢索數(shù)據(jù)的函數(shù)、更新數(shù)據(jù)庫的函數(shù)等。此外,在應(yīng)用程序中還可以定義自己的函數(shù)來執(zhí)行某些特定的處理過程。根據(jù)這些函數(shù)的作用范圍可以分為兩種類型:對象級函數(shù),它封裝在對象內(nèi);全局函數(shù),它作為獨立的對象存儲。
返回本節(jié)錄1.2.2PowerBuilder界面簡介
返回本節(jié)錄系統(tǒng)樹窗口包括以下四個標(biāo)簽頁:●Workspace標(biāo)簽頁●Page標(biāo)簽頁●Language標(biāo)簽頁●Components標(biāo)簽頁1.2.2PowerBuilder界面簡介把代碼片斷復(fù)制到剪貼窗口的操作方法如下(1)選中(高亮顯示)要復(fù)制到剪貼窗口的代碼。(2)按“Ctrl+C”鍵,或者右擊選中的代碼,在彈出式菜單中選擇“Copy”菜單項。(3)單擊剪貼板窗口的“Paste”按鈕。(4)在文本框中輸入剪貼的名稱。(5)當(dāng)使用某個剪貼時,從剪貼窗口中把該剪貼的名字拖到編輯窗口(或視圖)。
返回本節(jié)錄1.2.3PowerBuilder的系統(tǒng)幫助PowerBuilder提供了三類系統(tǒng)幫助,使用這些幫助,對于快速、準確地掌PowerBuilder的編程語言和使用方法是十分重要的。(1)網(wǎng)站鏈接:能夠及時了解PowerBuilder的最新動態(tài)。(2)PowerBuilder系統(tǒng)內(nèi)幫助:按下F1鍵或Help.Contents菜單項可以隨時調(diào)出。它有目錄頁和索引頁。(3)集成示例程序(CodeExamples)
CodeExamples的基本使用方法: ①打開CodeExamples應(yīng)用 ②運行CodeExamples應(yīng)用 ③查找和了解實例
返回本節(jié)錄目錄頁以書目形式幫助查找所需解決的技術(shù)問題本節(jié)完1.3 PowerBuilder應(yīng)用對象使用PowerBuilder開發(fā)一個傳統(tǒng)的客戶機.服務(wù)器應(yīng)用系統(tǒng)的基本步驟如下:
(1)建立工作空間 (2)建立目標(biāo)和應(yīng)用對象 (3)建立窗口 (4)建立菜單(5)建立用戶對象(6)建立函數(shù)、結(jié)構(gòu)和事件(7)創(chuàng)建數(shù)據(jù)窗口對象 (8)測試和調(diào)試應(yīng)用 (9)編譯應(yīng)用一般情況下,前兩步完成后,其余步驟可以按照任意順序進行。在以上這些步驟中,只有第一和第二步是必須的,其他都是可選的。
返回章目錄1.3 PowerBuilder應(yīng)用對象下面我們來介紹與應(yīng)用對象相關(guān)的一些內(nèi)容:
1.3.1創(chuàng)建應(yīng)用對象
1.3.2應(yīng)用畫板
1.3.3應(yīng)用對象的屬性
1.3.4應(yīng)用對象的事件
1.3.5應(yīng)用對象的函數(shù)
返回章目錄1.3.1創(chuàng)建應(yīng)用對象創(chuàng)建一個新應(yīng)用的步驟:(1)在工具欄上單擊“New”按鈕,彈出“New”對話框,選擇“Workspace”選項卡,然后單擊“OK”按鈕,并且對這個工作區(qū)命名和保存,這樣便建立了一個工作區(qū)。(2)在工具欄上單擊“New”按鈕,彈出“New”對話框,選擇“Target”選項卡。(3)在Target選項卡中,選擇“Application”(應(yīng)用程序),單擊“OK”按鈕。(4)打開“SpecifyNewApplicationandLibrary”(指定新的應(yīng)用和庫)對話框。(5)單擊“Finish”按鈕完成應(yīng)用的創(chuàng)建過程。
返回本節(jié)錄1.3.2應(yīng)用畫板應(yīng)用畫板的構(gòu)成如圖:
返回本節(jié)錄用來設(shè)置應(yīng)用對象的屬性,如應(yīng)用程序的默認字體、應(yīng)用對象的圖標(biāo)等不可視對象列表視圖:用于瀏覽所有不可視對象Script(腳本)視圖:在此視圖中為應(yīng)用對象的事件編寫代碼,可以通過下拉列表選擇事件。FunctionList(函數(shù)列表)視圖:可以查看應(yīng)用對象的所有函數(shù)(包括用戶自定義函數(shù))定義應(yīng)用對象的全局變量(GlobalVariables)、共享變量(SharedVariables)、實例變量(InstanceVariables)和外部函數(shù)(GlobalExternalFunctions)StructureList(結(jié)構(gòu)列表)視圖:用于查看所有應(yīng)用對象的結(jié)構(gòu)Structure(結(jié)構(gòu))視圖:用來定義編輯應(yīng)用對象的結(jié)構(gòu)。1.3.3應(yīng)用對象的屬性應(yīng)用對象的許多屬性都是全局的重要信息,如它的字體屬性就決定了應(yīng)用程序在開發(fā)過程中其對象屬性的文本字體。
1.General標(biāo)簽頁
2.Toolbar標(biāo)簽頁
返回本節(jié)錄應(yīng)用對象名稱應(yīng)用對象的替代名字輸入所編寫的應(yīng)用程序界面的狀態(tài)信息默認值Ready擴展屬性設(shè)置應(yīng)用程序的字體、圖標(biāo)和默認全局變量等數(shù)據(jù)窗口消息框標(biāo)題等待DDE(動態(tài)數(shù)據(jù)交換)的最長時間設(shè)置文本的默認顯示式應(yīng)用程序斷開數(shù)據(jù)庫時是否釋放內(nèi)存設(shè)置應(yīng)用程序的各類工具欄的標(biāo)題欄標(biāo)題子菜單項的顯示文本1.3.4應(yīng)用對象的事件應(yīng)用對象的事件不多,一共只有六個,分別是Open、Close、Idle、SystemError、ConnectionBegin和ConnectionEnd事件,但它們卻十分重要。下面介紹應(yīng)用對象事件的觸發(fā)與常見用法:1.Open(打開)事件2.Close(關(guān)閉)事件3.Idle(空閑)事件4.ConnectionBegin(連接開始)事件和ConnectionEnd(連接結(jié)束)事件5.SystemError(系統(tǒng)出錯)事件
返回本節(jié)錄1.3.4應(yīng)用對象的事件1.Open(打開)事件一般來說,在Open事件處理程序中應(yīng)該完成以下工作:(1)進行初始化。(2)利用INI文件設(shè)置某些屬性,或初始化一個事務(wù)對象。(3)查詢環(huán)境,保證應(yīng)用程序所需的所有資源都可以使用。(4)連接要訪問的數(shù)據(jù)庫。(5)打開應(yīng)用程序的第一個窗口。
返回1.3.41.3.4應(yīng)用對象的事件2.Close(關(guān)閉)事件通常Close事件處理程序中完成以下工作(與Open事件相反):
(1)刪除應(yīng)用程序運行過程中創(chuàng)建的對象(例如額外的事務(wù)對象等)。 (2)在INI文件中保存狀態(tài)信息,以便下次運行程序時恢復(fù)狀態(tài)。 (3)關(guān)閉應(yīng)用和程序中尚未關(guān)閉的文件。 (4)斷開數(shù)據(jù)庫的連接。
返回1.3.41.3.4應(yīng)用對象的事件3.Idle(空閑)事件Idle事件通常與Idle()函數(shù)配合使用。Idle()函數(shù)設(shè)置一個定時器時間間隔,而用戶的任何交互操作都將重設(shè)該定時器。如果在規(guī)定的時間間隔內(nèi)用戶沒有敲擊鍵盤或使用鼠標(biāo)(即用戶沒有操作應(yīng)用程序),那么系統(tǒng)將觸發(fā)應(yīng)用對象的Idle事件。Idle事件的用途有以下幾種:
(1)創(chuàng)建自己獨具特色的屏幕保護程序。(2)隱藏機密數(shù)據(jù)并強制用戶在操作長時間未操作應(yīng)用程序時重新輸入密碼。(3)了解用戶是否長時間未操作應(yīng)用程序,如果是那樣,應(yīng)用程序可以自動退出,并返回系統(tǒng),這樣有助于減少數(shù)據(jù)庫的連接數(shù)目并節(jié)省數(shù)據(jù)庫資源。
返回1.3.41.3.4應(yīng)用對象的事件4.ConnectionBegin(連接開始)事件和ConnectionEnd(連接結(jié)束)事件
ConnectionBegin事件和ConnectionEnd事件用于分布式PowerBuilder的服務(wù)器端。當(dāng)客戶程序試圖連接或斷開服務(wù)器時,觸發(fā)服務(wù)應(yīng)用對象的ConnectionBegin事件或ConnectionEnd事件。
返回1.3.41.3.4應(yīng)用對象的事件5.SystemError(系統(tǒng)出錯)事件SystemError事件是處理運行錯誤的最后一道關(guān)卡,用來處理最嚴重的錯誤,可以在此處編寫錯誤處理和可能的恢復(fù)代碼,最簡單的措施是顯示出錯信息。如果未對此事件編程,那么系統(tǒng)出錯時,PowerBuilder會通過對話框顯示錯誤代碼和錯誤信息。
返回1.3.41.3.5應(yīng)用對象的函數(shù)應(yīng)用對象的函數(shù)可以在函數(shù)列表視圖中看到。其中常用函數(shù)有:(1)ClassName():返回應(yīng)用對象的名字。(2)TypeOf():返回應(yīng)用對象的類型。(3)GetApplication():取當(dāng)前應(yīng)用對象的句柄
返回本節(jié)錄本節(jié)完
小結(jié)PowerBuilder是一種快速的數(shù)據(jù)庫及Web應(yīng)用開發(fā)工具,特別是PowerBuilder8.0具有很多優(yōu)秀的特點。在本章中介紹了PowerBuilder的高度集成的可視化、面向?qū)ο蟮拈_發(fā)環(huán)境以及在這一環(huán)境中的各種術(shù)語,為了幫助讀者學(xué)習(xí)和提高PowerBuilder的編程技巧,本章介紹了聯(lián)機幫助和PowerBuilder提供的CodeExamples實例程序,這些典型的應(yīng)用程序可以加速提高編程水平。本章詳細介紹了應(yīng)用對象,應(yīng)用對象對開發(fā)PowerBuilder應(yīng)用程序至關(guān)重要,需要重點掌握。
返回章目錄第2章PowerScript編程語言2.1 PowerScript語言基礎(chǔ)2.2 數(shù)據(jù)類型2.3 運算符及表達式2.4 變量2.5 PowerScript語句2.6 語句應(yīng)用實例小結(jié)
返回總目錄2.1 PowerScript語言基礎(chǔ)2.1.1注釋2.1.2標(biāo)識符2.1.3特殊的ASCII字符
2.1.4空值2.1.5代詞
返回章目錄2.1.1注釋注釋是添加在程序中的一些說明性文字。注釋并不會被執(zhí)行,而是簡單地被跳過。PowerScript有兩種注釋:
行注釋:用//表示,從雙杠開始到行尾均為注釋。塊注釋:用/**/表示,從/*開始到*/結(jié)束為注釋。例如,下面是兩種注釋的使用://這是一行注釋st1.Text=″希望本書為您提供幫助″//占用半行注釋/*從此行起注釋
…中間行…尾行結(jié)束注釋*/
返回本節(jié)錄2.1.2標(biāo)識符用來標(biāo)識變量名、數(shù)組名、文件名、函數(shù)名、窗口名、控件名及對象名等的字符序列,稱為標(biāo)識符PowerScript中標(biāo)識符的命名必須遵循以下原則:(1)必須以字母或下劃線“”開頭。(2)不可以是保留字。(3)最長可以到40個字符,但中間不能有空格(實際可以比這更長)。(4)不區(qū)分大小寫字母(PART和Part、part是等價的)。(5)可以是任何字母、數(shù)字及一些特殊符號(-、、S|、#、%)的組合。
返回本節(jié)錄
2.1.3特殊的ASCII字符在字符串中可以包含一些特殊的ASCII字符,特別是控制字符。特殊的ASCII字符或控制字符用符號“~”做前綴。
返回本節(jié)錄2.1.3特殊的ASCII字符
返回本節(jié)錄特殊字符表示方法特殊字符表示方法換行~n走紙~f回車~r退格~b制表符~t波浪線~~垂直制表~v十進制形式的ASCII碼~000-~255單引號~′十六進制形式ASCII碼~h00-~hFF雙引號~″八進制形式的ASCII碼~o000-~o3772.1.4空值空值(Null)是關(guān)系數(shù)據(jù)庫的一個特殊概念,可以把它看做是一個特定的值,代表數(shù)據(jù)未定義、不確定。它與空字符串、數(shù)值零以及日期0000ˉ00ˉ00的意義完全不同。空值在程序中用英文單詞Null表示。
返回本節(jié)錄2.1.5代詞PowerBuilder提供了四個代詞:This、Parent、ParentWindow和Super,可以用于引用某指定對象或控件,來增加程序代碼的通用性This:代表窗口、用戶對象、菜單、應(yīng)用對象或控件本身,即代表正在為之編寫事件處理程序的對象Parent:指當(dāng)前控件所在的窗口arentWindow:代表運行時菜單所在的窗口,該代詞只能在菜單的事件處理程序中使用。Super:此代詞只在使用了繼承時使用,指代的是該對象的父對象。調(diào)用祖先對象函數(shù)的語法格式是:Super::〈函數(shù)名〉(〈參數(shù)表〉)
返回本節(jié)錄本節(jié)完
2.2數(shù)據(jù)類型2.2.1標(biāo)準數(shù)據(jù)類型2.2.2系統(tǒng)對象數(shù)據(jù)類型2.2.3枚舉數(shù)據(jù)類型2.2.4Any數(shù)據(jù)類型
返回章目錄2.2.1標(biāo)準數(shù)據(jù)類型
標(biāo)準數(shù)據(jù)類型是我們在各種程序設(shè)計語言中已經(jīng)熟悉的數(shù)據(jù)類型,如字符型、數(shù)值型、日期型等。下面我們簡單介紹一下這些數(shù)據(jù)類型Blob:大型二進制類型。包括文本文件、圖像等。Boolean:布爾類型。布爾型變量只有True和False,用于邏輯表達式。聲明布爾類型變量時,默認值為False。Character(或Char):單個ASCII字符。Date:日期類型。包括年(4位數(shù))、月(2位數(shù))、日(2位數(shù))。如:2002ˉ12ˉ05。
返回本節(jié)錄2.2.1標(biāo)準數(shù)據(jù)類型DateTime:日期時間類型。包括年、月、日和時間。如:2002ˉ12ˉ0519∶23∶36Decimal(或Dec):數(shù)值型。帶符號,最多18位數(shù),小數(shù)點位置不限。如:456.2312Double:雙精度類型。范圍從2.2E-308到1.7E+308,默認值為0。如:1.234E-5。Integer(或Int):整型。16位帶符號整數(shù),范圍從-32768到32767,默認值為0Long:長整型。32位帶符號整數(shù),范圍從-2147483648到2147483647,默認值為0
返回本節(jié)錄2.2.1標(biāo)準數(shù)據(jù)類型Real:實型。具有6位有效數(shù)字的帶符號浮點數(shù),范圍從1.17E-38到3.4E+38,默認值為0。如:56.43E+6String:字符串類型。用于存儲任意的ASCII字符,32位環(huán)境中長度只受系統(tǒng)能力的限制。書寫時,用單引號(′′)或雙引號(″″)括起來,如:′ABC′Time:24小時制時間,包括小時、分、秒及幾分之一秒。范圍從00∶00∶00到23∶59∶59∶999999。如:12∶45∶56∶123456
返回本節(jié)錄2.2.1標(biāo)準數(shù)據(jù)類型UnsignedInteger(UnsignedInt或UInt):無符號整型。16位數(shù),范圍從0到65535。UnsignedLong(或ULong):無符號長整型。32位數(shù),范圍從0到4294967295。
返回本節(jié)錄2.2.2系統(tǒng)對象數(shù)據(jù)類型在PowerBuilder中,窗口、菜單、各種控件都是系統(tǒng)對象,每一種系統(tǒng)對象實際上都是定義在PowerBuilder內(nèi)部的一種數(shù)據(jù)類型。在Browser畫板中通過System選項卡可以瀏覽到PowerScript的全部系統(tǒng)對象數(shù)據(jù)類型。通常只需在相應(yīng)畫板中定義它們,對它們進行可視化操作。但有時候需要動態(tài)地處理窗口、菜單、控件等系統(tǒng)對象,這時就要定義系統(tǒng)對象數(shù)據(jù)類型。
返回本節(jié)錄2.2.3枚舉數(shù)據(jù)類型枚舉類型是一種用符號代替的數(shù)值,是PowerBuilder定義的特殊常量。在PowerBuilder8.0中開發(fā)人員不能定義自己的枚舉類型,只能按系統(tǒng)要求使用它。枚舉類型實際上是一組值,每個值都以英文單詞開始,以感嘆號(!)結(jié)束。如:Center!、Left!、Right!。枚舉數(shù)據(jù)類型有以下兩種用途,其中,后一種用途較多:(1)作為函數(shù)的參數(shù)。(2)指定對象或控件屬性。
返回本節(jié)錄
2.2.4Any數(shù)據(jù)類型PowerBuilder支持任意數(shù)據(jù)類型(Any),它可以存儲包括標(biāo)準數(shù)據(jù)類型、對象、結(jié)構(gòu)和數(shù)組等各種類型的數(shù)據(jù)值。
Any數(shù)據(jù)的類型由初值類型決定,也就是說,當(dāng)不能確定變量聲明為何種類型時,可以將它聲明為Any類型,以后可以為此變量賦任意類型的值,但一旦賦值,它的類型也就決定了。說明Any類型變量的方法和說明其他類型變量的方法是一樣的。可以用一般的賦值語句對變量賦值,也可將一個數(shù)組賦值給單一的Any變量。當(dāng)對Any變量賦值后,可以使用ClassName函數(shù)檢測它的實際數(shù)據(jù)類型。
返回本節(jié)錄2.2.4Any數(shù)據(jù)類型在使用Any類型的變量時要注意以下規(guī)則和約束:(1)可以賦值給Any變量任何值。(2)當(dāng)把Any變量的值賦給兼容的數(shù)據(jù)類型變量時,必須知道Any變量的內(nèi)容。(3)如果Any變量的值是一個數(shù)組,不可以直接存取數(shù)組的元素。(4)如果Any變量的值是一個結(jié)構(gòu),不可以使用圓點符號(.)來直接存取結(jié)構(gòu)的元素。(5)當(dāng)一個Any變量被賦值后,該變量不能再改為沒有數(shù)據(jù)類型的一般Any變量,但它可以再被賦予其他類型的值。
返回本節(jié)錄本節(jié)完2.3運算符及表達式2.3.1運算符2.3.2表達式
返回章目錄2.3.1運算符PowerScript支持的運算符可以分為四種類型:算術(shù)運算符、關(guān)系運算符、邏輯運算符和連接運算符。運算符有優(yōu)先級和結(jié)合律。1.算術(shù)運算符算術(shù)運算符用于完成數(shù)學(xué)運算。算術(shù)運算符有加(+)、減(-)、乘(ˇ)、除(.)、乘方(^)。其中加(+)、減(-)還用于正、負號表示。
返回本節(jié)錄2.3.1運算符算術(shù)運算優(yōu)先級別:乘方最高、乘除次之、加減最低;同級運算遵循自左至右的原則。PowerScript還提供了一組擴展算術(shù)運算符:++、--、+=、-=、.=、ˇ=、^=。例: A++把A加1賦給
AA--把A減1賦給A A+=B把A加B賦給A A-=B把A減B賦給A Aˇ=B把A乘B賦給A A.=B把A除以B賦給A A^=B把A的B次方賦給A
返回本節(jié)錄2.3.1運算符2.關(guān)系運算符關(guān)系運算符用來對相同類型的操作數(shù)進行大小比較運算,常用于條件語句和循環(huán)語句。關(guān)系運算符有大于(>)、等于(=)、小于(<)、不等于(<>)、大于等于(>=)、小于等于(<=)。關(guān)系運算符的結(jié)果是True和False。例:″abc″=″abc″結(jié)果是True″abc″=″Abc″結(jié)果是False
返回本節(jié)錄2.3.1運算符3.邏輯運算邏輯運算符用來對布爾型的變量進行運算,運算符有非(Not)、與(And)、或(Or),其結(jié)果是True和False。例:IfA>10AndA<100Then……4.連接運算符連接運算符只有一個,即:“+”,用于把兩個String型或Blob型變量的內(nèi)容連接在一起形成新的同類型數(shù)據(jù)。例:s1=″computer″+″book″,此時s1的值為″computerbook″
返回本節(jié)錄2.3.2表達式操作符代表了符號化的運算,PowerScript利用操作符構(gòu)成表達式,完成一定的運算。表達式的運算次序是由運算符的優(yōu)先級定義的。使用括號可以改變表達式的運算次序。因此,運算符的優(yōu)先級共分九級,同級運算自左至右結(jié)合。
返回本節(jié)錄2.3.2表達式()括號+、-、++、--正號、負號、自增、自減^ 冪運算*、/ 乘、除+、- 加、減及連接運算=、>、<、>=、<=、<>關(guān)系運算符Not邏輯非And邏輯與Or邏輯或
返回本節(jié)錄本節(jié)完2.4變量2.4.1變量的作用域2.4.2變量的聲明
返回章目錄2.4.1變量的作用域在PowerBuilder中,有四種不同范圍的變量,它們有不同的作用域和用途:
(1)局部變量(Local):在相應(yīng)的代碼段定義和使用的臨時變量,代碼結(jié)束此變量消失。所以它的作用范圍僅在所在的事件和函數(shù)內(nèi)起作用。(2)實例變量(Instance):屬于一個對象且與這個對象的一個實例相關(guān),它只能在這個對象內(nèi)部的任何地方使用。當(dāng)在Window下定義時,其作用范圍是在該窗口及其窗口內(nèi)的各種控件的所有事件、函數(shù)等。
返回本節(jié)錄2.4.1變量的作用域(3)全局變量(Global):可以在應(yīng)用的任何地方存取,它的定義獨立于任何對象。在整個應(yīng)用程序中,對全局變量的調(diào)試和跟蹤非常困難,建議不用或少用全局變量。(4)共享變量(Shared):在一個對象內(nèi)定義,但可以在這個對象的所有實例中引用。共享變量是在第一次創(chuàng)建該類的對象時初始化的。當(dāng)用戶刪除該對象時,共享變量將保留其最后一個值。
返回本節(jié)錄2.4.2變量的聲明在PowerBuilder中,所有變量在使用之前,都要首先予以聲明。變量聲明的簡單格式為
數(shù)據(jù)類型變量名[=初值][,變量名[=初值]……]需要說明的是:(1)變量名必須是PowerScript合法的標(biāo)識符。(2)一次說明多個變量時,變量之間用逗號分隔。(3)未定初值時,數(shù)值型值為零,字符型值為空字符。(4)系統(tǒng)預(yù)定義的五個全局變量(SQLCA、SQLDA、SQLSA、Error、Message)不需事先聲明。例如:Integerscore=100 Stringcity=″大連″,country
返回本節(jié)錄本節(jié)完2.5PowerScript語句2.5.1賦值語句2.5.2條件語句2.5.3循環(huán)語句
2.5.4其他常用語句
返回章目錄2.5.1賦值語句賦值語句能夠把一個表達式的結(jié)果或者變量和常量的值賦給一個變量、某對象的屬性或成員變量。它的語法格式如下: variablename=expression
其中,variablename代表變量名,expression代表表達式,其作用是把表達式的值賦給等號左邊的變量。例如:area=3.14ˇrˇr。由于等號也是關(guān)系運算符,因此不能使用多重的賦值方法。例如:lsstr1=lsstr2=″abc″//這條語句是錯誤的
返回本節(jié)錄2.5.2條件語句條件控制語句通過判斷關(guān)系表達式的返回值決定程序的執(zhí)行語句,常用的條件控制語句有If語句和ChooseCase語句。If語句首先計算一個邏輯表達式,然后根據(jù)表達式的值是真(True)還是假(False)決定下一步執(zhí)行的語句組;ChooseCase語句可同時處理多種情況。下面分別介紹這兩種語句。
返回本節(jié)錄2.5.2條件語句1.If語句
If語句的格式有兩種形式,我們從簡單到復(fù)雜逐一介紹。(1)單行If……Then格式單行形式的If語句的語法格式如下:If表達式(expression)Then語句(statements1)[Else語句2]它的含義是:當(dāng)關(guān)系表達式成立(返回值是True)的時候,程序執(zhí)行語句1;如果關(guān)系表達式不成立(返回值是False)的時候,跳過語句1,執(zhí)行下一條語句(如果方括號中寫有語句2,則先執(zhí)行語句2)。例如:Ifgsuserid=′super′ThenMessageBox(′歡迎′super!′)單行If……Then語句書寫時整條語句寫在一行上,而且最后不能加EndIf,否則編譯會報錯。
返回本節(jié)錄2.5.2條件語句(2)多行的形式多行形式的If……Then語句的語法格式如下:If表達式1 Then語句1[ElseIf表達式2 Then語句2…][Else語句n]
EndIf
它的含義是:當(dāng)關(guān)系表達式1成立(返回值是True)的時候,程序執(zhí)行語句1;如果關(guān)系表達式不成立(返回值是False)的時候,執(zhí)行ElseIf中關(guān)系表達式2,如果成立,則執(zhí)行語句2;否則繼續(xù)向下跳,直至執(zhí)行語句n。
返回本節(jié)錄2.5.2條件語句2.ChooseCase語句
ChooseCase語句根據(jù)某變量的不同取值執(zhí)行相應(yīng)的語句。常用于情況比較多的事件的處理。
ChooseCase的語法格式是:ChooseCasetestexpression Caseexpression_list1 statements1
[Caseexpression_list2 statements2… Caseexpression_listn statementsn] [CaseElse statementsn+1]
EndChoose
返回本節(jié)錄2.5.2條件語句ChooseCase條件語句中的表達式列表,可有如下幾種不同的寫法:(1)獨立的單個變量值。(2)用逗號分隔的一些變量值的列表,比如:0,2,4。(3)用To表示一個區(qū)間范圍,例如:2To10或′b′To′h′。(4)用Is代表測試值,后跟關(guān)系操作符和比值,例如:Is>=0。(5)以上幾種語句的組合(中間以逗號隔開),例如:5,6,8To12,Is>20。
返回本節(jié)錄2.5.3循環(huán)語句循環(huán)語句用來根據(jù)設(shè)置好的判斷依據(jù)的狀態(tài),決定是否循環(huán)執(zhí)行某段程序塊,被重復(fù)執(zhí)行的語句叫做循環(huán)體。循環(huán)可以分為兩種,一種是事先知道循環(huán)的執(zhí)行次數(shù),一種是知道循環(huán)結(jié)束的條件。PowerScript提供的循環(huán)語句有三種形式: Do……Loop循環(huán)語句、
For……Next循環(huán)語句、
Goto循環(huán)語句。
返回本節(jié)錄2.5.3循環(huán)語句1.Do……Loop循環(huán)語句無論是知道循環(huán)的次數(shù),還是知道循環(huán)結(jié)束的條件,都可以使用Do……Loop語句來控制循環(huán)。Do……Loop語句中,Do表示循環(huán)的開始,Loop表示循環(huán)結(jié)束,在它們之間的是循環(huán)體。PowerScript根據(jù)循環(huán)條件放的位置和結(jié)束值,提供了四種形式:
返回本節(jié)錄2.5.3循環(huán)語句(1)DoWhile……Loop語句,格式如下:DoWhileCondition StatementBlockLoop其中,Condition為循環(huán)條件表達式,StatementBlock為循環(huán)體(循環(huán)執(zhí)行的語句,以下含義與此相同)。當(dāng)程序執(zhí)行到DoWhile語句時,通過判斷條件表達式的真假,決定是否執(zhí)行循環(huán)語句中的程序塊。如果表達式返回真值(True),則執(zhí)行程序塊,然后再回到DoWhile語句,判斷表達式的真假,決定是否繼續(xù)執(zhí)行循環(huán)語句,否則跳出循環(huán),執(zhí)行下一條語句。
返回本節(jié)錄2.5.3循環(huán)語句(2)DoUntil……Loop語句,格式如下:DoUntilCondition StatementBlockLoop當(dāng)程序執(zhí)行到DoUntil語句時,如果條件表達式返回假值,則執(zhí)行程序塊,然后再回到DoUntil語句,判斷表達式的真假,如果仍是假則繼續(xù)執(zhí)行循環(huán)語句,否則跳出循環(huán),執(zhí)行下一條語句。也就是程序一直執(zhí)行循環(huán),直到條件表達式為真。
返回本節(jié)錄2.5.3循環(huán)語句(3)Do……LoopWhile語句,格式如下:Do StatementBlockLoopWhileCondition
這種格式的用法與第一種類似,只是由于條件表達式的判斷在最后,因此先執(zhí)行了程序塊之后再判斷是否進行循環(huán)。
返回本節(jié)錄2.5.3循環(huán)語句(4)Do……LoopUntil語句,格式如下:Do StatementBlockLoopUntilCondition這種格式的用法與第二種類似,只是由于條件表達式的判斷在最后,因此也是先執(zhí)行了程序塊以后,再判斷是否進行下一循環(huán)。
返回本節(jié)錄2.5.3循環(huán)語句2.For……Next循環(huán)語句For……Next是一個計數(shù)循環(huán),用于循環(huán)次數(shù)確定的循環(huán)結(jié)構(gòu),它使循環(huán)體內(nèi)的語句執(zhí)行規(guī)定的次數(shù)。其語法結(jié)構(gòu)為: ForVarname=StartToEnd[StepIncrement] StatementBlock Next
其中,Varname代表循環(huán)變量,Start和End分別為初值和終值,Increment為步長增量,缺省值為1。程序首先將變量賦以初值,執(zhí)行程序塊,然后將變量值增加一個步長,再執(zhí)行程序塊。這樣循環(huán)執(zhí)行,直到變量值等于終值,最后執(zhí)行程序體后,退出循環(huán),執(zhí)行Next后的語句。這種語句通常用在循環(huán)次數(shù)確定的代碼中。
返回本節(jié)錄2.5.3循環(huán)語句3.Goto語句Goto語句是一條無條件轉(zhuǎn)移語句,它將控制跳轉(zhuǎn)到程序中的其他位置,用Goto語句也可以構(gòu)成循環(huán)。Goto語句的語法格式為
GotoLabel
其中,Label是語句標(biāo)號,它符合標(biāo)識符的命名規(guī)則。但程序中盡量避免使用Goto語句,以方便程序的管理和維護。
返回本節(jié)錄2.5.3循環(huán)語句4.Continue(繼續(xù)循環(huán))
Continue語句是用在循環(huán)語句中的控制語句,自身不帶任何參數(shù)。PowerScript語言中,在Do……Loop和For……Next語句的循環(huán)體中,遇到Continue語句后,將不執(zhí)行Continue語句后與循環(huán)結(jié)束前的所有語句,而提前開始新一輪循環(huán)。
Do……Loop與For……Next循環(huán)語句均可嵌套使用,而Continue只在當(dāng)前的循環(huán)體內(nèi)有效,并不會影響外層的循環(huán)體。
返回本節(jié)錄2.5.3循環(huán)語句5.Exit(退出循環(huán))Exit也是用在循環(huán)語句中的控制語句,可在循環(huán)體的任何地方使用。當(dāng)程序執(zhí)行Exit語句時,程序就退出當(dāng)前循環(huán)體。與Continue語句一樣,在嵌套循環(huán)的情況下,Exit語句退出當(dāng)前層循環(huán),而不是所有循環(huán)。
返回本節(jié)錄2.5.3循環(huán)語句6.循環(huán)嵌套循環(huán)嵌套就是把一個循環(huán)放在另一個循環(huán)的內(nèi)部,后面(2.6節(jié)中)通過一個實例說明循環(huán)嵌套的工作方式。
返回本節(jié)錄2.5.4其他常用語句1.Return語句
Return語句用于從腳本中返回調(diào)用程序,等待用戶的下一個動作。其語法格式為
Return[Expression]Return語句還可以用在用戶定義函數(shù)中。當(dāng)程序執(zhí)行到Return處時,退出函數(shù),繼續(xù)執(zhí)行調(diào)用函數(shù)處以下的代碼。用在函數(shù)中時,Return后面可以帶一個返回值Expression,此返回值的類型必須與函數(shù)的返回值類型相同。
返回本節(jié)錄2.5.4其他常用語句2.Halt語句Halt語句是用來中止應(yīng)用程序的。其語法格式為
Halt[Close]當(dāng)應(yīng)用程序出現(xiàn)重大問題或者不應(yīng)該繼續(xù)執(zhí)行的時候,可以使用Halt語句來終止應(yīng)用程序。如果在Halt后有Close關(guān)鍵字,應(yīng)用程序先執(zhí)行應(yīng)用對象的Close事件中的代碼,然后再終止應(yīng)用程序。
返回本節(jié)錄2.5.4其他常用語句3.Create語句Create語句生成對象實例變量,在生成后,用點操作符引用對象的成員。語句將返回一個可以在變量中保存的對象實例句柄。它有兩種語法格式:Objectvariable=CreateObjectTypeObjectvariable=CreateUsingObjectTypeString其中,Objectvariable持有該對象實例,ObjectType代表對象類型,ObjectTypeString是保存需要創(chuàng)建的對象類型名稱的字符串。
返回本節(jié)錄2.5.4其他常用語句4.Destroy語句
Destroy語句用來釋放用Create語句創(chuàng)建的對象實例。其語法格式為
DestroyObjectVariable
返回本節(jié)錄本節(jié)完
2.6語句應(yīng)用實例
例2.1求解100以內(nèi)能夠被5整除的自然數(shù)之和。這里使用三種循環(huán)語句完成,請注意它們的格式。例2.2完成學(xué)生的百分成績的轉(zhuǎn)換。這里使用條件語句完成,請注意它們的格式
返回章目錄本節(jié)完小結(jié)PowerBuilder是事件驅(qū)動的應(yīng)用程序,事件發(fā)生時所要處理的事情需要程序完成。PowerBuilder系統(tǒng)提供了一種獨有的編程語言———PowerScript,它是一種高級的、結(jié)構(gòu)化的、面向?qū)ο蟮木幊陶Z言。本章介紹了PowerScript語言的基礎(chǔ)知識及其用法,與C語言十分類似,知識本身比較簡單,但在后續(xù)課程和實際編程中卻非常靈活,常常把標(biāo)識符的合法性、變量的類型、變量的作用域以及語句等知識綜合在一起進行使用。本章講述的內(nèi)容不是課程的重點,而是PowerBuilder的基礎(chǔ)
返回章目錄本節(jié)完第3章窗口與控件3.1 窗口及控件在應(yīng)用中的地位和作用3.2 窗口的基礎(chǔ)知識3.3 窗口及窗口控件的使用3.4 窗口及控件實例小結(jié)
返回總目錄3.1 窗口及控件在應(yīng)用中的地位和作用窗口是Windows應(yīng)用程序中最常見的也是最重要的界面元素之一,它是一種人機交互的界面。應(yīng)用程序的主要操作都是在窗口上實現(xiàn)的。Windows操作系統(tǒng)下主要的人機交互功能都是由窗口完成的。窗口和控件均有自己的屬性、事件和函數(shù),通過設(shè)置它們的屬性,為事件編寫腳本,可以定制它們的外觀和行為,實現(xiàn)應(yīng)用程序的功能。
返回章目錄本節(jié)完3.2窗口的基礎(chǔ)知識3.2.1窗口畫板3.2.2窗口屬性3.2.3窗口事件3.2.4窗口類型
返回章目錄3.2.1窗口畫板窗口對象在窗口畫板中進行編輯
返回本節(jié)錄保存當(dāng)前窗口復(fù)制選中的內(nèi)容打開當(dāng)前窗口或控件的屬性視圖剪切選中的內(nèi)容編寫當(dāng)前窗口或控件的腳本重做剛才的操作控件下拉工具欄撤消當(dāng)前的操作把剪貼板中的內(nèi)容粘貼到當(dāng)前位置設(shè)置控件的Tab順序預(yù)覽窗口關(guān)閉窗口畫板3.2.1窗口畫板
返回本節(jié)錄選擇所有內(nèi)容注釋腳本當(dāng)前行取消當(dāng)前行注釋查找字符串查找下一處替換字符串編譯窗口粘貼函數(shù)粘貼SQL語句粘貼PowerBuilder語句粘貼全局變量粘貼共享變量粘貼窗口實例變量粘貼窗口的名字粘貼對象的名字粘貼參數(shù)3.2.1窗口畫板
返回本節(jié)錄設(shè)置控件放在上一層設(shè)置控件放在下一層打開布局下拉工具欄設(shè)置控件的前景顏色設(shè)置控件的背景顏色打開邊框下拉工具欄,設(shè)置控件的邊框樣式3.2.1窗口畫板
返回本節(jié)錄用來輸入和編輯控件的文本用來選擇文本的字體字體用來設(shè)置字體的大小文本以粗體顯示文本以斜體顯示文本加下劃線文本向左對齊文本居中對齊文本向右對齊3.2.2窗口屬性
窗口的屬性決定其顯示風(fēng)格。要設(shè)置窗口的屬性,可按下述步驟進行:
(1)右擊窗口背景的空白處,彈出菜單選擇“Properties”,打開窗口的屬性視圖 (2)選擇屬性視圖的不同標(biāo)簽頁,設(shè)置相應(yīng)的屬性窗口。屬性視圖共有4頁:基本特征標(biāo)簽頁(General)、滾動條標(biāo)簽頁(Scroll)、工具欄標(biāo)簽頁(Toolbar)、其他標(biāo)簽頁(Other)。其中最重要的是基本特征標(biāo)簽頁。
返回本節(jié)錄3.2.2窗口屬性1.General標(biāo)簽頁
返回本節(jié)錄設(shè)置窗口標(biāo)題一個字符串類型的屬性,指定窗口的標(biāo)簽值設(shè)置與窗口關(guān)聯(lián)的菜單3.2.2窗口屬性2.Scroll標(biāo)簽頁設(shè)置窗口的滾動條屬性及其滾動速度
返回本節(jié)錄設(shè)置當(dāng)用戶單擊垂直滾動條中的向上或向下箭頭時,向上或向下滾動的距離設(shè)置當(dāng)用戶單擊水平滾動條中的向左或向右箭頭時,向左或向右滾動的距離設(shè)置當(dāng)用戶單擊水平滾動條時窗口滾動的列數(shù)設(shè)置當(dāng)用戶單擊垂直滾動條時窗口滾動的行數(shù)3.2.2窗口屬性3.Toolbar標(biāo)簽頁
返回本節(jié)錄在工具欄浮動時使用3.2.2窗口屬性4.Other標(biāo)簽頁
返回本節(jié)錄3.2.3窗口事件PowerBuilder的窗口事件有許多種,下面列出了這些事件觸發(fā)條件及意義。Activate事件:在激活(Active)窗口前觸發(fā)。該事件發(fā)生后,窗口中第一個跳轉(zhuǎn)次序號最小的對象首先得到焦點。如果窗口中沒有這樣的對象,則窗口本身得到焦點。
Clicked事件:用戶單擊窗口中空白區(qū)域時觸發(fā)。
Close事件:窗口被關(guān)閉時觸發(fā)。觸發(fā)該事件后,沒有辦法阻止窗口關(guān)閉操作,但可以在該事件腳本中處理關(guān)閉前的準備工作,如:數(shù)據(jù)庫斷開連接、關(guān)閉文件等。
CloseQuery事件:在開始關(guān)閉窗口時,觸發(fā)該事件。執(zhí)行該事件的事件處理程序后,系統(tǒng)檢查返回值,如果返回值為1,則窗口不被關(guān)閉,通常情況下緊隨其后觸發(fā)的Close事件不啟動;如果返回值為0,則窗口被關(guān)閉。利用該事件的這種特性,程序能夠根據(jù)當(dāng)前狀態(tài)提醒用戶保存數(shù)據(jù)、詢問用戶是否真要關(guān)閉窗口。窗口被關(guān)閉時,同時關(guān)閉任何與之相關(guān)的子窗口和彈出窗口。
返回本節(jié)錄3.2.3窗口事件Deactivate事件:當(dāng)窗口為不活動時觸發(fā)。DoubleClicked事件:當(dāng)雙擊窗口客戶區(qū)中任何未被有效控件占用的部分時觸發(fā)。DragEnter事件:當(dāng)可拖放對象進入窗口客戶區(qū)時觸發(fā)。DragLeave事件:當(dāng)可拖放對象離開窗口客戶區(qū)時觸發(fā)。
DragWithin事件:當(dāng)可拖放對象在窗口客戶區(qū)中被拖動時觸發(fā)。
HotLinkAlarm事件:在動態(tài)數(shù)據(jù)交換(DDE)服務(wù)器應(yīng)用發(fā)送了新的(修改后的)數(shù)據(jù)、且客戶DDE應(yīng)用程序已經(jīng)接收到數(shù)據(jù)時觸發(fā)。
返回本節(jié)錄3.2.3窗口事件Key事件:當(dāng)用戶在鍵盤上按下一個鍵且插入點不在編輯區(qū)域(如單行編輯框、超文本框等)中時觸發(fā)。MouseDown事件:當(dāng)用戶在窗口客戶區(qū)中任何未被有效控件占用的部分按下鼠標(biāo)左鍵時觸發(fā)。MouseMove事件:當(dāng)鼠標(biāo)在窗口內(nèi)移動時觸發(fā)。MouseUp事件:當(dāng)用戶在窗口客戶區(qū)中任何未被有效控件占用的部分放開鼠標(biāo)左鍵時觸發(fā)。Open事件:在窗口打開之后、顯示之前觸發(fā),此時系統(tǒng)已經(jīng)構(gòu)造好了窗口的所有屬性以及其上的所有控件。RbuttonDown事件:當(dāng)用戶在窗口客戶區(qū)中任何未被有效控件占用的部分按下鼠標(biāo)右鍵時觸發(fā)。
返回本節(jié)錄3.2.3窗口事件Resize事件:當(dāng)窗口大小發(fā)生變化時觸發(fā),窗口被打開時也觸發(fā)此事件。
SystemKey事件:當(dāng)插入點不在編輯框中且用戶按下Alt或Alt+其他鍵時觸發(fā)。Timer事件:在調(diào)用Timer函數(shù)啟動定時器、設(shè)定時間后觸發(fā)。ToolbarMoved事件:當(dāng)MDI窗口上的工具欄被移動時觸發(fā)。
返回本節(jié)錄3.2.3窗口事件這些事件的發(fā)生有著嚴格的順序,在為窗口事件編寫腳本時需要正確理解它們觸發(fā)的前后順序,以達到預(yù)期的功能。窗口事件發(fā)生的順序為
Open→Show→Activate→窗口活動時的各種鼠標(biāo)事件、鍵盤事件及其他事件→Deactivate→CloseQuery→Close
返回本節(jié)錄3.2.4窗口類型PowerBuilder提供了6種類型的窗口:1.主窗口(Main) 主窗口在應(yīng)用程序中使用十分普遍。主窗口不依賴其他窗口而存在,它可以覆蓋其他窗口,也可以被其他窗口覆蓋。2.彈出式窗口(Popup)彈出式窗口是在另外的窗口中打開的窗口,在大多數(shù)情況下,打開彈出式窗口的窗口也就是該彈出式窗口的父窗口。
返回本節(jié)錄3.2.4窗口類型3.子窗口(Child) 子窗口通常在主窗口或彈出式窗口中被打開,這些窗口也就成為子窗口的父窗口。4.響應(yīng)式窗口(Response) 響應(yīng)式窗口用于向用戶接收請求信息并得到用戶的應(yīng)答,它們總是在其他窗口(它的父窗口且非響應(yīng)式窗口)中打開。5.MDI框架窗口(MDIFrame)
MDI窗口是個框架窗口,可以在它的里面打開多個文檔窗口(Sheet),并且可以任意切換和移動這些文檔窗口。
返回本節(jié)錄本節(jié)完3.3窗口及窗口控件的使用3.3.1窗口的創(chuàng)建及保存3.3.2窗口控件的使用3.3.3常用的窗口控件
返回章目錄3.3.1窗口的創(chuàng)建及保存創(chuàng)建窗口的方法有兩種:普通方式繼承方式。普通方式 創(chuàng)建一個新窗口的步驟如下:
(1)選擇“File.New”菜單項,或者單擊PowerBuilder工具欄上的“New”按鈕,打開“New”對話框
返回本節(jié)錄3.3.1窗口的創(chuàng)建及保存
返回本節(jié)錄選擇“PBObject”標(biāo)簽頁選中“Window”圖標(biāo)在Target下拉列表框中選擇要建立新窗口的目標(biāo)。單擊“OK”按鈕。PowerBuilder打開窗口畫板工作區(qū)設(shè)置窗口的屬性,為窗口添加各種控件,編寫事件的腳本。保存窗口3.3.1窗口的創(chuàng)建及保存2.繼承方式創(chuàng)建窗口面向?qū)ο缶幊痰奶攸c之一是對象具有繼承性,PowerBuilder的窗口也具有繼承性。使用繼承方法建立一個后代窗口的步驟如下:(1)選擇“File.Inherit”菜單項,或者單擊PowerBuilder工具欄上的“Inherit”按鈕,打開“InheritfromObject”對話框
返回本節(jié)錄3.3.1窗口的創(chuàng)建及保存
返回本節(jié)錄選擇“Windows”選擇包含窗口的目標(biāo)選擇包含窗口的庫3.3.1窗口的創(chuàng)建及保存(3)雙擊要建立后代窗口的祖先窗口名稱,或者選擇一個窗口后,單擊“OK”按鈕。(4)根據(jù)選擇的窗口創(chuàng)建一個后代窗口,并在窗口畫板內(nèi)根據(jù)需要對后代窗口作適當(dāng)?shù)男薷?,然后以新文件名存盤。
返回本節(jié)錄3.3.1窗口的創(chuàng)建及保存當(dāng)使用繼承的方法建立一個其他對象時,與以上步驟相同,不同之處在于要根據(jù)所要創(chuàng)建的對象類型在ObjectofType下拉列表框中選擇相應(yīng)的類型。對于使用繼承方式創(chuàng)建的窗口,用戶可以根據(jù)需要進行如下操作:(1)改變窗口的屬性。(2)向后代窗口添加新控件和修改已存在控件。(3)調(diào)整窗口及其控件的大小和位置。(4)為窗口及其控件的事件建立新的腳本或定義窗口及其控件的用戶事件。(5)引用祖先的函數(shù)、事件和結(jié)構(gòu)。訪問祖先的屬性,例如實例變量(前提是屬性的作用范圍是Public或Protected類型的)。(6)擴展或者替換繼承的腳本。(7)聲明窗口的函數(shù)、結(jié)構(gòu)、變量。(8)在后代的窗口中,不允許的操作是刪除繼承而來的控件。如果在后代窗口不需要某個繼承而來的控件,可以在后代窗口把它Visible或Enabled屬性設(shè)置為False。
返回本節(jié)錄3.3.1窗口的創(chuàng)建及保存3.保存窗口在制作窗口及窗口控件的過程中要經(jīng)常進行存盤操作。在第一次存盤操作時,系統(tǒng)會給出一些提示信息,具體的操作步驟如下:(1)選擇“File.Save”菜單項,或者單擊畫板工具欄的“Save”按鈕。(2)對于沒保存過的窗口,PowerBuilder打開“SaveWindow”對話框
返回本節(jié)錄3.3.1窗口的創(chuàng)建及保存(3)在Windows文本框中輸入窗口的名稱。窗口的名稱可以是40個字符以內(nèi)的任何合法的PowerBuilder標(biāo)識符。PowerBuilder對象的名字應(yīng)該由兩部分組成,前一部分標(biāo)識該類對象,窗口一般用“w”開頭,后一部分為指示該對象功能的有意義的名稱。(4)在Comments編輯框中輸入對窗口的注釋,說明窗口的用途,方便合作。(5)在ApplicationLibraries列表中選擇要保存窗口的庫。(6)單擊“OK”按鈕,返回畫板工作區(qū)。
返回本節(jié)錄3.3.2窗口控件的使用1.在窗口中插入控件(1)選擇“Insert.Control”菜單項,或者單擊畫板工具欄中的控件下拉工具欄(2)在“Insert.Control”菜單項的級聯(lián)菜單中選擇要插入的控件名稱菜單項,或者單擊下拉工具欄中的控件按鈕。(3)在窗口的布局視圖中,單擊要放置控件的位置。(4)插入控件后,可以調(diào)整它的大小和位置,設(shè)置它的各種屬性以及為它的事件編寫腳本。
返回本節(jié)錄3.3.2窗口控件的使用2.控件的復(fù)制和刪除復(fù)制控件的方法有兩種:外觀復(fù)制和完全復(fù)制。外觀復(fù)制只復(fù)制控件的外觀和屬性,而控件的事件腳本不復(fù)制。具體操作是:
(1)選擇要復(fù)制的控件。 (2)選擇“Edit.Duplicate”菜單項或者按“Ctrl+T”鍵即可。
返回本節(jié)錄3.3.2窗口控件的使用完全復(fù)制時,控件的所有屬性及其所有腳本都會被復(fù)制。具體操作基本同上相似,步驟如下:
(1)選擇要復(fù)制的控件。 (2)選擇“Edit.Copy”菜單項或者按“Ctrl+C”鍵,或者單擊畫板工具欄的“Copy”按鈕??丶粡?fù)制到PowerBuilder剪貼板中。(3)如果在同一窗口內(nèi)復(fù)制控件,則選擇“Edit.Paste”菜單項或者按“Ctrl+V”鍵,或者單擊畫板工具欄的“Paste”按鈕;如果在不同的窗口間復(fù)制,則首先打開一個窗口并使其成為活動窗口,然后進行上述操作。 (4)粘貼后就得到了該控件的一個拷貝。如果粘貼的控件與窗口內(nèi)已存在的另一個控件同名,則PowerBuilder會把復(fù)制后的控件自動重新命名。 (5)在復(fù)制控件時,PowerBuilder把控件粘貼到目標(biāo)窗口的同一位置,因此如果在同一個窗口內(nèi)復(fù)制控件,應(yīng)該把復(fù)制后的控件移動到其他位置,任意更改復(fù)制后的控件,原來的控件不會受到影響。
返回本節(jié)錄3.3.2窗口控件的使用要刪除窗口中某一控件時,可以執(zhí)行下面的某一項操作:(1)右擊要刪除的控件,在彈出式菜單中選擇“Delete”菜單項。(2)選中要刪除的控件,單擊畫板工具欄的“Cut”按鈕。(3)選中要刪除的控件,按Delete鍵。
返回本節(jié)錄3.3.2窗口控件的使用3.控件的布局選擇控件可以在布局視圖或控件列表視圖內(nèi)進行。選擇控件可以分成以下幾種情況:(1)選擇單個控件:在窗口的布局視圖上單擊要選擇的控件,或者在控件列表視圖中單擊控件的名字。(2)選擇相鄰的多個控件:在相鄰控件某一角的窗口空白處按住鼠標(biāo)左鍵,拖動鼠標(biāo),使它經(jīng)過所要選擇的控件,這時PowerBuilder會顯示一個表示選擇范圍的方框,當(dāng)所有要選擇的控件都在方框內(nèi)時,釋放鼠標(biāo)左鍵。(3)選擇不相鄰的多個控件:可以單擊某個控件,然后按住Ctrl鍵,再單擊其他控件。(4)選擇所有控件:可以選擇“Edit.SelectAll”菜單項或按“Ctrl+A”鍵。
返回本節(jié)錄3.3.2窗口控件的使用4.設(shè)置控件的通用屬性●標(biāo)題(Text)屬性●Visible屬性●Enabled屬性●快捷鍵●顏色屬性
返回本節(jié)錄3.3.2窗口控件的使用5.控件的命名每個控件都必須有一個名字,在PowerBuilder應(yīng)用程序開發(fā)中,應(yīng)該遵循一個統(tǒng)一的命名規(guī)范。把控件添加到窗口中時,PowerBuilder會為每一個控件指定一個惟一的名字。該名字由兩部分組成:前半部分是該控件的默認前綴,后半部分是一個1~4位的數(shù)字。
返回本節(jié)錄3.3.2窗口控件的使用6.設(shè)定控件的Tab順序改變控件的Tab順序的步驟如下:(1)選擇“Format.TabOrder”菜單項,或者單擊畫板工具欄的“TabOrder”按鈕(2)單擊要改變的Tab值,或者按Tab鍵移動焦點到Tab值處,輸入一個新的Tab值(取值范圍為0~9999)。(3)重復(fù)上一步驟,直到所有控件的Tab值設(shè)置完畢。(4)再次選擇“Format.TabOrder”菜單項或者單擊“TabOrder”按鈕,Tab順序?qū)⒈槐4嫦聛怼?/p>
返回本節(jié)錄3.3.3常用的窗口控件1.命令按鈕(CommandButton)和圖形按鈕(PictureButton)
返回本節(jié)錄3.3.3常用的窗口控件2.靜態(tài)文本(StaticText)與靜態(tài)超鏈接(StaticHyperLink)
返回本節(jié)錄3.3.3常用的窗口控件3.單行編輯框(SingleLineEdit)和多行編輯框(Multi-LineEdit)
返回本節(jié)錄3.3.3常用的窗口控件4.單選按鈕(RadioButton)與復(fù)選框(CheckBox)單選按鈕的屬性
返回本節(jié)錄3.3.3常用的窗口控件5.掩碼編輯框(EditMask)及標(biāo)簽TAB(1)掩碼編輯框
返回本節(jié)錄3.3.3常用的窗口控件(2)標(biāo)簽TAB●為標(biāo)簽控件添加標(biāo)簽頁
返回本節(jié)錄3.3.3常用的窗口控件●標(biāo)簽控件的屬性
返回本節(jié)錄3.3.3常用的窗口控件●標(biāo)簽頁的屬性
返回本節(jié)錄3.3.3常用的窗口控件●刪除標(biāo)簽頁與調(diào)整標(biāo)簽頁的次序右擊標(biāo)簽頁,在彈出式菜單中選擇“Delete”菜單項。默認情況下,PowerBuilder按插入標(biāo)簽頁的先后順序作為標(biāo)簽頁的次序,可以根據(jù)需要調(diào)整標(biāo)簽頁的排列次序,操作方法是:
(1)選擇標(biāo)簽控件屬性視圖的“PageOrder”標(biāo)簽頁。(2)單擊標(biāo)簽名稱前面的按鈕,按住鼠標(biāo)左鍵不放,拖動該條目到新位置,釋放鼠標(biāo)按鈕。
返回本節(jié)錄3.3.3常用的窗口控件●標(biāo)簽控件的事件標(biāo)簽控件有一些特有的事件,如:RightDoubleClicked(在控件上右擊時觸發(fā))事件、SelectionChanged(選擇另一個標(biāo)簽頁之時觸發(fā))事件、SelectionChanging(選擇另一個標(biāo)簽之前觸發(fā))事件。
返回本節(jié)錄3.3.3常用的窗口控件6.列表框(ListBox)及圖片列表框(PictureListBox)(1)列表框類控件的通用屬性:●DisableNoScroll:設(shè)置滾動條的行為。●ExtendedSelect:允許用戶同時選中多個項目,允許時可以按下Shift鍵后單擊鼠標(biāo)選中連續(xù)多項,或按下Ctrl鍵后單擊選中不連續(xù)的多項,或拉出矩形框選中框內(nèi)連續(xù)的多項?!馦ultiSelect:允許用戶同時選中多個項目,但只能通過鼠標(biāo)單擊來選擇。 ●AllowEdit:允許在編輯框中進行編輯。 ●ShowList:使下拉列表框變?yōu)榱斜盹@示,失去下拉功能。 ●Items:用于輸入列表框中的項目??丶蠭tems屬性頁,在這一頁輸入其列表值,按Tab鍵輸入下一行,可以對輸入的列表項進行選擇、刪除、移動等操作。
返回本節(jié)錄3.3.3常用的窗口控件(2)列表框的事件列表框的常用事件包括:DoubleClicked(雙擊列表框時觸發(fā))事件、SelectionChanged(選中了列表框的某個項目時觸發(fā))事件。
返回本節(jié)錄3.3.3常用的窗口控件7.進度條(HProgressBar.VProgressBar)與滾動條(HScrollBar.VScrollBar)(1)進度條的屬性(2)進度條的事件進度條的事件包括Clicked、DoubleClicked、Rbuttondown等,它們分別在單擊、雙擊、右擊進度條時觸發(fā)。
返回本節(jié)錄3.3.3常用的窗口控件(3)滾動條的屬性
返回本節(jié)錄3.3.3常用的窗口控件(4)滾動條的事件水平滾動條和垂直滾動條共有的事件有:Moved(單擊或拖動滾動條的滑塊時觸發(fā))事件、RbuttonDown(右擊滾動條時觸發(fā))事件。水平滾動條的主要事件有:LineLeft(單擊控件的左箭頭按鈕時觸發(fā))事件、LineRight(單擊控件的右箭頭按鈕時觸發(fā))事件、PageLeft(單擊滾動條的左邊滑塊時觸發(fā))事件、PageRight(單擊滾動條的右邊滑塊時觸發(fā))事件。垂直滾動條也有類似的四個事件。
返回本節(jié)錄本節(jié)完3.4窗口及控件實例例3.5創(chuàng)建一個窗口wcontrol,此窗口用來控制顏色選擇。首先向窗口添加控件,并更改它們的相應(yīng)屬性。
返回章目錄3.4窗口及控件實例
返回本節(jié)錄3.4窗口及控件實例例3.6最后,我們把例3.2到例3.5組合在一起。在本例中,使用了我們在前面介紹的大部分控件,只是展示一下如何使用這些常用控件。并以選項卡的形式完成的。實現(xiàn)的應(yīng)用程序窗口外觀如圖3ˉ39所示。
返回本節(jié)錄3.4窗口及控件實例
返回本節(jié)錄本節(jié)完小結(jié)本章介紹如何創(chuàng)建一個窗口、為窗口添加
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 腫瘤中醫(yī)社區(qū)建設(shè)與發(fā)展
- 傳染病預(yù)防與食品安全管理
- 貧血護理要點與實施策略
- 讀愛和自由心得體會模版
- 【維卓】2023泰國社交媒體電商市場洞察報告342mb
- 2025年數(shù)學(xué)系大學(xué)生實習(xí)總結(jié)模版
- 2025年B站OTT大屏營銷通案
- 山東省濟寧市兗州區(qū)2024-2025學(xué)年高二下學(xué)期期中質(zhì)量檢測地理試卷(含答案)
- 新質(zhì)生產(chǎn)力體現(xiàn)
- 忽略癥的臨床護理
- 海門村干部考試試題及答案
- (二模)2025年5月濟南市高三高考針對性訓(xùn)練生物試卷(含答案)
- 人類面臨的主要環(huán)境問題第一課時課件高一下學(xué)期地理湘教版(2019)必修二
- 2024年云南省會澤縣事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 全球及中國雙特異性抗體治療行業(yè)市場發(fā)展分析及前景趨勢與投資發(fā)展研究報告2025-2028版
- 2025年電工操作資格證考試復(fù)習(xí)考試題庫(共583題)(含答案)
- 初中地理澳大利亞 課件-2024-2025學(xué)年七年級地理下學(xué)期(人教版2024)
- 2025-2030中國射擊器材行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025-2030中國采耳行業(yè)市場深度調(diào)研及競爭格局與投資前景研究報告
- logo保密合同協(xié)議
- 2025春新版四年級下冊語文 【期末復(fù)習(xí):文言文專項考查】
評論
0/150
提交評論