2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  分類號 密級</p><p>  畢 業(yè) 設(shè) 計(論 文)</p><p>  題 目 大型機房空位指示系統(tǒng)設(shè)計 </p><p>  英文題目 The Design of the System to Show the Unused Comput

2、ers in Computer-rooms</p><p>  畢業(yè)設(shè)計(論文)任務(wù)書</p><p>  發(fā)出任務(wù)書日期: 2006年3月4日 </p><p>  指導(dǎo)教師簽名: 教研室主任簽名: </p><p><b>  摘 要<

3、/b></p><p>  “大型機房空位指示系統(tǒng)”是一個能顯示各個大型機房中每臺電腦正在使用或空閑狀態(tài)的情況,能夠?qū)γ颗_電腦都能準(zhǔn)確定位顯示。用戶只要在服務(wù)器上通過軟件界面上各種窗口和菜單的控件按鈕,就能切換進(jìn)入查看機房的界面,就能很快知道任意一臺機器的使用情況,方便了機房管理員對每臺電腦的管理,減輕了他們的工作強度。</p><p>  本論文主要研究在PowerBuilder的

4、圖形開發(fā)環(huán)境下訪問Oracle數(shù)據(jù)庫,編輯設(shè)計一個能夠給用戶一個簡潔友好的對數(shù)據(jù)進(jìn)行查看的可視化平臺。</p><p>  該軟件的設(shè)計思路是判斷機器是否在用,看數(shù)據(jù)庫中的標(biāo)志位(計算機登陸系統(tǒng)時,會記錄在數(shù)據(jù)庫中的),根據(jù)據(jù)庫接口相數(shù)據(jù)庫中標(biāo)志位的位置又可以確定計算機的實際位置,然后與PowerBuilder的數(shù)連接,通過數(shù)據(jù)庫窗口顯示在軟件的界面上,最后是軟件的測試,能在Windows平臺上進(jìn)行運行。 <

5、;/p><p>  關(guān)鍵詞:PowerBuilder; Oracle數(shù)據(jù)庫; 應(yīng)用程序; ODBC; 控件;</p><p><b>  ABSTRACT</b></p><p>  The system can show whether each computer is used in many rooms, and can tell the a

6、ccurate position of each computer. The user can access the interface of inquiring computer rooms by various function button in the software interface, and can find out whether a computer is used. It conveniences the cont

7、rollers to manage the computers, and relieves their working burden.</p><p>  My paper mainly studied how to access Oracle database in PowerBuilder, and design a simple and friendly visible interface for user

8、 to find out data.</p><p>  The thought of software design is followed. Firstly, judge whether the computer is used and see the sign in database. Secondly, determine the position of computer by the sign in d

9、atabase. And then join the interface of PowerBuilder, and display the result in software interface. At last, compile the software, and build the application running in Windows.</p><p>  Key words: PowerBuild

10、er; Oracle Database; Application; ODBC; Control;</p><p><b>  目 錄</b></p><p><b>  1 緒論1</b></p><p>  1.1 系統(tǒng)設(shè)計的特點和意義1</p><p>  1.2 開發(fā)工具現(xiàn)狀及

11、發(fā)展趨勢1</p><p>  1.3 開發(fā)工具的介紹1</p><p>  1.3.1 PowerBuilder介紹1</p><p>  1.3.2 Oracle數(shù)據(jù)庫介紹2</p><p>  2 系統(tǒng)的設(shè)計5</p><p><b>  2.1 思路5</b><

12、/p><p>  2.2 流程圖5</p><p>  3 系統(tǒng)界面的設(shè)計6</p><p>  3.1 安裝和認(rèn)識Powerbuilder9.06</p><p>  3.2 新建一個主窗口6</p><p>  3.3 創(chuàng)建菜單欄8</p><p>  3.4 主窗口和菜單

13、關(guān)聯(lián)10</p><p>  3.5 新建機房窗口11</p><p>  3.6 刪除窗口12</p><p>  3.7 圖形窗口13</p><p>  4 數(shù)據(jù)庫的連接15</p><p>  4.1 PowerBuilder與數(shù)據(jù)庫的關(guān)系15</p><p>  

14、4.2 PowerBuilder與數(shù)據(jù)庫的連接15</p><p>  4.3 PB內(nèi)置Oracle數(shù)據(jù)庫接口的使用方法15</p><p>  4.4 數(shù)據(jù)庫的創(chuàng)建與連接18</p><p><b>  結(jié) 論20</b></p><p><b>  致 謝21</b><

15、/p><p><b>  參考文獻(xiàn)22</b></p><p><b>  附 錄23</b></p><p><b>  1 緒論</b></p><p>  1.1 系統(tǒng)設(shè)計的特點和意義</p><p>  隨著計算機科學(xué)技術(shù)和網(wǎng)絡(luò)通訊技術(shù)的迅

16、猛發(fā)展,計算機性能的逐漸增強,價格的逐漸降低,各大專院校的計算機實驗室也在不斷地擴大,一般院校的計算機實驗室少則幾百臺,多則上千臺計算機。這使得如何管理好這些計算機成為一個比較傷腦筋的問題。目前,絕大多數(shù)機房還處于原始的人工管理階段,而且大部分機房為了提高資源的利用率,都在業(yè)余時間對學(xué)生開放,這都為機房的管理增加了難度。開發(fā)一個既能保證學(xué)生上機方便又有利于機房管理的、比較實用的機房管理系統(tǒng)很有必要。</p><p&g

17、t;  本系統(tǒng)能顯示各個大型機房中每臺電腦正在使用或空閑狀態(tài)的情況,能夠?qū)γ颗_電腦都能準(zhǔn)確定位顯示。用戶只要在服務(wù)器上通過軟件界面上各種窗口和菜單的控件按鈕,就能切換進(jìn)入查看機房的界面,就能很快知道任意一臺機器的使用情況,提高機房的管理效率和管理質(zhì)量,降低管理人員的勞動強度,節(jié)約了人力資源。</p><p>  通過這次設(shè)計,綜合性地運用大學(xué)4年內(nèi)所學(xué)計算機方面的知識去分析、解決問題。在設(shè)計過程中,所學(xué)知識得到疏

18、理和運用,它既是一次檢閱,又是一次鍛煉。在作完畢業(yè)設(shè)計后,自己會感到實踐動手、動筆能力得到鍛煉,增強了即將跨入社會去競爭,去創(chuàng)造的自信心。</p><p>  1.2 開發(fā)工具現(xiàn)狀及發(fā)展趨勢</p><p>  設(shè)計這個系統(tǒng)的主要是在Windows XP環(huán)境下用PowerBuilder和Oracle數(shù)據(jù)庫兩個工具做成的。</p><p>  PowerBuilde

19、r(以下簡稱PB)是數(shù)據(jù)庫應(yīng)用軟件的開發(fā)工具,是開發(fā)C/S體系結(jié)構(gòu)的一個很不錯的工具。但是,技術(shù)的發(fā)展對開發(fā)工具也提出了更多的要求。目前,PB還提供了對當(dāng)前熱門開發(fā)技術(shù)的支持,比如,.NET、Web Service、J2EE等等,并且還提供了B/S體系結(jié)構(gòu)應(yīng)用軟件的開發(fā),以及對第三方Web服務(wù)器、EJB服務(wù)器等的支持。對第三方服務(wù)器的支持標(biāo)志著Sybase公司對PB發(fā)展策略的巨大調(diào)整。原來Sybase一直不支持第三方服務(wù)器,只能將應(yīng)用部

20、署在EA Server上。雖然EA Server的理念還是不錯的,但是畢竟不能算是主流服務(wù)器。所以,限制了PB在B/S開發(fā)上的推廣,給人的感覺仍然是一個數(shù)據(jù)庫應(yīng)用軟件和C/S應(yīng)用軟件的開發(fā)工具,所以導(dǎo)致了很少新人加入,只有那些老的PB程序員忠誠的維護(hù)著PB。目前則完全不一樣了,WSDL、SOAP、Web Service、.NET等的強大支持,對Web Logic、Tomcat、EA Server等服務(wù)器的支持,使得PB成為一個開發(fā)的開發(fā)

21、環(huán)境,再加上眾所周知的優(yōu)秀C/S開發(fā)能力、功能強大的Data Window控件,所有這些必將帶來P</p><p>  1.3 開發(fā)工具的介紹</p><p>  1.3.1 PowerBuilder介紹</p><p>  PB是著名的數(shù)據(jù)庫應(yīng)用開發(fā)工具生產(chǎn)廠商Sybase公司推出的產(chǎn)品,它完全按照客戶機/服務(wù)器體系結(jié)構(gòu)研制設(shè)計,在客戶機/服務(wù)器結(jié)構(gòu)中,它使用

22、在客戶機中,作為數(shù)據(jù)庫應(yīng)用程序的開發(fā)工具而存在。由于PB采用了面向?qū)ο蠛涂梢暬夹g(shù),提供可視化的應(yīng)用開發(fā)環(huán)境,使得我們利用PB,可以方便快捷地開發(fā)出利用后臺服務(wù)器中的數(shù)據(jù)和數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫應(yīng)用程序。</p><p>  PowerBuilder的特點:</p><p>  1、它支持應(yīng)用系統(tǒng)同時訪問多種數(shù)據(jù)庫,其中既包括Oracle Sybase之類的大型數(shù)據(jù)庫,又包括FOXPRO之

23、類支持ODBC接口的小型數(shù)據(jù)庫,PB是完全可視化的數(shù)據(jù)庫開發(fā)工具,它提供了大量的控件,大大加快了項目的開發(fā)速度,也使開發(fā)者更容易掌握數(shù)據(jù)庫的開發(fā)。</p><p>  2、它使用的編程語言叫做工Power Script,它也是一種高級的,結(jié)構(gòu)化的編程語言。Power Script提供了一套完整的嵌入式SQL語句,開發(fā)人員可以像使用其它語句一樣自由地使用SQL語言,這樣就大大增強了程序操縱和訪問數(shù)據(jù)庫的能力??梢哉f

24、PB既適合初學(xué)者快速學(xué)習(xí)數(shù)據(jù)庫的開發(fā),又可以讓有經(jīng)驗的開發(fā)人員開發(fā)出功能強大的數(shù)據(jù)庫,是一種適用面非常廣的開發(fā)工具。</p><p>  3、PB是一個用來進(jìn)行客戶/服務(wù)器開發(fā)的完全的可視化開發(fā)環(huán)境。使用PB,你可以用一種可視的直觀的方式來創(chuàng)建應(yīng)用程序的用戶界面和數(shù)據(jù)庫接口。這是一個總的概念,實際上是開發(fā)人員使用PB去開發(fā)應(yīng)用程序,由于所開發(fā)的各種應(yīng)用程序充分利用了圖形用戶接口(GUI)的優(yōu)點,所以PB被認(rèn)為是一

25、個圖形工具。</p><p>  4、在客戶/服務(wù)器結(jié)構(gòu)的應(yīng)用中,PB具有描述多個數(shù)據(jù)庫連接與檢索的能力。特別是PB能從大多數(shù)流行的RDBMS中存取數(shù)據(jù),且不管數(shù)據(jù)存放在什么地方;另外,各種應(yīng)用程序又可以獨立于RDBMS,因為PB可以使用數(shù)據(jù)庫的標(biāo)準(zhǔn)操作語言SQL(結(jié)構(gòu)化查詢語言)進(jìn)行。</p><p>  5、使用PB,可以很容易地開發(fā)出功能強大的圖形界面的訪問服務(wù)器數(shù)據(jù)庫的應(yīng)用程序,P

26、B提供了建立符合工業(yè)標(biāo)準(zhǔn)的應(yīng)用程序(例如訂單登記、會計及制造系統(tǒng))所需的所有工具。</p><p>  6、PB應(yīng)用程序由窗口組成,這些窗口包含用戶與之交互的控件。開發(fā)人員可以使用所有標(biāo)準(zhǔn)空間(如按鈕、復(fù)選框、下拉式列表框或編輯框)以及PB提供的特殊的使應(yīng)用程序更易于開發(fā)和使用的控件。</p><p>  7、通常人們把PB看成是一種開發(fā)工具,實際上它比其他工具強得多,是一種強有力的開發(fā)環(huán)

27、境。開發(fā)人員不僅能用它來開發(fā)用戶容易使用的各種應(yīng)用程序還可以通過PB修改數(shù)據(jù)庫,利用400多個內(nèi)部定義函數(shù),可以開發(fā)能和其他應(yīng)用程序進(jìn)行的各種應(yīng)用程序。</p><p>  8、PB正在成為客戶/服務(wù)器應(yīng)用開發(fā)的標(biāo)準(zhǔn)。相對于其他任何客戶/服務(wù)器開發(fā)環(huán)境,PB使開發(fā)人員的工作更快、成本更低、質(zhì)量更高、功能更強。</p><p>  9、PB為應(yīng)用開發(fā)提供了全面綜合性的支持,可以分別概括為如下

28、幾點:事件驅(qū)動的應(yīng)用程序;功能強大的編程語言與函數(shù);面向?qū)ο蟮木幊?;跨平臺開發(fā);開放的數(shù)據(jù)庫連結(jié)系統(tǒng)。</p><p>  10、PB開發(fā)環(huán)境由一系列集成的圖形畫板(Painter)組成,應(yīng)用開發(fā)人員通過簡單的鼠標(biāo)操作即可設(shè)計、建立、交互檢驗和測試客戶/服務(wù)器應(yīng)用程序。</p><p>  1.3.2 Oracle數(shù)據(jù)庫介紹</p><p>  Oracle是以高

29、級結(jié)構(gòu)化查詢語言(SQL)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫,通俗地講它是用方便邏輯管理的語言操縱大量有規(guī)律數(shù)據(jù)的集合。是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)體系結(jié)構(gòu)的數(shù)據(jù)庫之一[2]。</p><p><b>  數(shù)據(jù)庫的特點:</b></p><p>  1、Oracle引入了共享SQL和多線索服務(wù)器體系結(jié)構(gòu)。這就減少了Oracle的資源占用,并增強了Ora

30、cle的能力,使之在低檔軟硬件平臺上用較少的資源就可以支持更多的用戶,而在高檔平臺上可以支持成百上千個用戶。</p><p>  2、提供了基于角色(ROLE)分工的安全保密管理。在數(shù)據(jù)庫管理功能、完整性檢查、安全性、一致性方面都有良好的表現(xiàn)。</p><p>  3、支持大量多媒體數(shù)據(jù),如二進(jìn)制圖形、聲音、動畫以及多維數(shù)據(jù)結(jié)構(gòu)等。</p><p>  4、提供了與

31、第三代高級語言的接口軟件PRO*系列,能在C,C++等主語言中嵌入SQL語句及過程化(PL/SQL)語句,對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操縱。加上它有許多優(yōu)秀的前臺開發(fā)工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速開發(fā)生成基于客戶端PC 平臺的應(yīng)用程序,并具有良好的移植性。</p><p>  5、提供了新的分布式數(shù)據(jù)庫能力??赏ㄟ^網(wǎng)絡(luò)較方便地讀寫遠(yuǎn)端數(shù)據(jù)庫里的數(shù)據(jù),并有對稱復(fù)制的

32、技術(shù)。</p><p><b>  存儲結(jié)構(gòu):</b></p><p><b>  1、物理結(jié)構(gòu)</b></p><p>  Oracle數(shù)據(jù)庫在物理上是存儲于硬盤的各種文件。它是活動的,可擴充的,隨著數(shù)據(jù)的添加和應(yīng)用程序的增大而變化。</p><p>  下圖為Oracle數(shù)據(jù)庫擴充前后在硬盤上存

33、儲結(jié)構(gòu)的示意圖1-1:</p><p>  圖1-1數(shù)據(jù)庫擴充前后在硬盤上存儲結(jié)構(gòu)</p><p><b>  2、邏輯結(jié)構(gòu)</b></p><p>  Oracle數(shù)據(jù)庫在邏輯上是由許多表空間構(gòu)成。主要分為系統(tǒng)表空間和非系統(tǒng)表空間。非系統(tǒng)表空間內(nèi)存儲著各項應(yīng)用的數(shù)據(jù)、索引、程序等相關(guān)信息。我們準(zhǔn)備上馬一個較大的Oracle應(yīng)用系統(tǒng)時,應(yīng)該創(chuàng)建

34、它所獨占的表空間,同時定義物理文件的存放路徑和所占硬盤的大小。</p><p>  下圖1-2為Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)與物理結(jié)構(gòu)的對照關(guān)系: </p><p>  圖1-2數(shù)據(jù)庫邏輯結(jié)構(gòu)與物理結(jié)構(gòu)的對照關(guān)系</p><p>  3.分布式數(shù)據(jù)庫管理</p><p><b>  1、原理</b></p>

35、<p>  物理上存放于網(wǎng)絡(luò)的多個Oracle數(shù)據(jù)庫,邏輯上可以看成一個單個的大數(shù)據(jù)庫。用戶可以通過網(wǎng)絡(luò)對異地數(shù)據(jù)庫中的數(shù)據(jù)同時進(jìn)行存取,而服務(wù)器之間的協(xié)同處理對于工作站用戶及應(yīng)用程序而言是完全透明的:開發(fā)人員無需關(guān)心網(wǎng)絡(luò)的連接細(xì)節(jié)、無需關(guān)心數(shù)據(jù)在網(wǎng)絡(luò)接點中的具體分布情況、也無需關(guān)心服務(wù)器之間的協(xié)調(diào)工作過程。</p><p>  下圖為Oracle分布式數(shù)據(jù)庫原理示意圖1-3:</p>&

36、lt;p>  圖1-3分布式數(shù)據(jù)庫原理示意圖</p><p><b>  2、過程</b></p><p>  由網(wǎng)絡(luò)相連的兩個Oracle數(shù)據(jù)庫之間通過數(shù)據(jù)庫鏈接(DB-LINKS)建立訪問機制,相當(dāng)于一方以另一方的某用戶遠(yuǎn)程登錄所做的操作。但Oracle采用的一些高級管理方法,如同義詞(SYNONME)等使我們覺察不到這個過程,似乎遠(yuǎn)端的數(shù)據(jù)就在本地。數(shù)據(jù)庫

37、復(fù)制技術(shù)包括:實時復(fù)制、定時復(fù)制、儲存轉(zhuǎn)發(fā)復(fù)制。對復(fù)制的力度而言,有整個數(shù)據(jù)庫表的復(fù)制,表中部分行的復(fù)制。在復(fù)制的過程中,有自動沖突檢測和解決的手段。</p><p><b>  2 系統(tǒng)的設(shè)計</b></p><p><b>  2.1 思路</b></p><p>  在設(shè)計軟件之前,首先要確定軟件的主要結(jié)構(gòu),然后

38、要查閱收集相關(guān)的資料。每個軟件都有它自己獨特的顯示風(fēng)格以及整齊有序的窗口顯示排列。我想設(shè)計的風(fēng)格是簡潔明了,易于操作。幾乎不帶任何圖片和動畫的修飾。比如在一號機房的一臺機器上,學(xué)生進(jìn)入機器系統(tǒng)前是要輸入賬號和密碼的,然后才能使用電腦。在數(shù)據(jù)庫里已經(jīng)預(yù)先存儲了每臺機器的IP號和相對應(yīng)的機器號,這時機器就向書庫發(fā)送了信息,記錄這臺電腦在數(shù)據(jù)庫里的占位符就改變,假如“1”代表使用,“0”代表沒使用。然后只要服務(wù)器訪問數(shù)據(jù)庫,查尋里面每臺電腦占

39、位符的情況,就能在軟件的界面上顯示出電腦的使用情況。下面顯示的是軟件實現(xiàn)功能的關(guān)系圖2-1。</p><p>  圖2-1軟件實現(xiàn)功能的關(guān)系圖</p><p><b>  2.2 流程圖</b></p><p>  在開始設(shè)計軟件之前,必須將要實現(xiàn)功能的內(nèi)容用一個線框流程圖表示出來。比如,什么時候進(jìn)行跳轉(zhuǎn),跳到什么地方,如何返回等等??雌饋?,

40、似乎小題大做,可是這個過程是非常重要的,哪怕非常簡單,都會大大提高工作效率。首先是數(shù)據(jù)庫先對所有的機器進(jìn)行掃描,記錄機器的發(fā)送到數(shù)據(jù)庫里的信息,然后對數(shù)據(jù)進(jìn)行分析比較,確定機器對應(yīng)的占位符情況,就可以反映出相應(yīng)IP的機器使用情況,最后服務(wù)器通過訪問數(shù)據(jù)庫里的信息,調(diào)用出顯示機器狀態(tài)的圖片,可以非常直觀地表示出來(一種是正在使用的圖片,另一種是空閑狀態(tài)的圖片)。下面就是本軟件設(shè)計的大致流程圖2-2。</p><p>

41、;<b>  圖2-2流程圖</b></p><p>  3 系統(tǒng)界面的設(shè)計</p><p>  3.1 安裝和認(rèn)識Powerbuilder9.0 </p><p>  1.我安裝的是Powerbuilder9.0企業(yè)版,和其它軟件一樣,安裝時有安裝向?qū)Ы缑?、安裝授權(quán)界面、用戶安裝屬性和安裝位置設(shè)置界面等。</p><p

42、>  2.想學(xué)號一種開發(fā)工具,首先需要了解該軟件的特征,知道它的優(yōu)點,懂得該軟件的使用場合并熟悉它的工作環(huán)境。PB9.0正常啟動后,出現(xiàn)主窗口,從上往下包含標(biāo)題、菜單、工具欄、系統(tǒng)樹、工作區(qū)、剪貼窗口、輸出窗口和狀態(tài)欄等部件,在打開編程文件時,在工作區(qū)中將彈出編輯畫板和相應(yīng)的編輯畫板屬性窗口[3]。下面就是它的主窗口圖3-1。</p><p><b>  圖3-1主窗口圖</b><

43、;/p><p>  3.2 新建一個主窗口</p><p>  窗口在WINDOWS應(yīng)用程序中是一個極為重要的概念,它提供了應(yīng)用程序同用戶之間交互的非常直觀的界面,目前許多的WINDOWS下的開發(fā)工具都提供了可視化開發(fā)窗口對象的方法,使得開發(fā)一個窗口對象變得非常容易,下面就開始創(chuàng)建這里的應(yīng)用程序中要用到的主窗口。創(chuàng)建一個窗口的一般步驟如下:</p><p>  單擊菜

44、單欄的File,選擇下拉菜單的New項,選擇其中的“PB Object”選項頁,然后選擇其中的Window圖標(biāo)。如圖3-2。 </p><p><b>  圖3-2創(chuàng)建窗口圖</b></p><p>  點擊OK按鈕之后出現(xiàn)新建窗口的“窗口畫板”,此時對該窗口進(jìn)行編輯。如圖3-3。</p><p>  圖3-3軟件的窗口畫板</p>

45、<p>  在窗口上單擊右鍵并選擇屬性(Properties)命令,將彈出的窗口屬性設(shè)置為主窗口(即將Window Type設(shè)置為main)。在屬性窗口中的General標(biāo)簽中將Title中的內(nèi)容(txt)改為“大型機房空位指示系統(tǒng)”,并且在下面的屬性里分別設(shè)置窗口的大?。?834,1728),圖標(biāo)(),顯示位置(屏幕居中),和背景顏色“藍(lán)色”,在Script腳本欄里寫上命令“open(w_main)”。將設(shè)置好的窗口進(jìn)行

46、存盤,通過選擇菜單的Save按鈕保存,保存名是“w_main”,如圖3-4。</p><p>  圖3-4命名后的保存</p><p>  在建立窗口時,如果窗口的類型是mdihelp,則在窗口底部有一個狀態(tài)欄,它用來顯示菜單的Micro Help或程序執(zhí)行的狀態(tài)信息。如果窗口類型為mdi,則窗口的底部沒有狀態(tài)欄,這時設(shè)計的Micro Help無效[5]。</p><p

47、>  3.3 創(chuàng)建菜單欄</p><p>  在應(yīng)用程序所有的窗口中,出了子窗口和彈出窗口外還應(yīng)該有菜單。菜單是和當(dāng)前活動窗口的命令或者選項相關(guān)聯(lián)的列表。菜單中的每個選項稱為菜單項,菜單項顯示在菜單欄中或者顯示在下拉或?qū)盈B菜單中[4]。</p><p>  單擊菜單欄的File,選擇下拉菜單的New項,選擇其中的“PB Object”選項頁,然后選擇其中的Menu圖標(biāo),單擊OK進(jìn)入

48、菜單編輯畫板,如圖3-5。</p><p>  圖3-5菜單編輯窗口</p><p>  對于菜單編輯窗口,并沒有直接的菜單創(chuàng)建按鈕,創(chuàng)建菜單只能通過Insert→Insert Submenu Item逐項插入,然后根據(jù)需要對所插入的選項編寫腳本代碼來觸發(fā)事件[6]。</p><p>  我的菜單有三個主項,分別是文件(其下拉菜單項是新建,打開,關(guān)閉),編輯(其下拉

49、菜單項是圖形查看機房,列表查看機房,刪除機房),幫助(其下拉菜單項是軟件功能,關(guān)于軟件,顯示文字,顯示提示)。</p><p>  顯示文字是,菜單項設(shè)置Toolbar中圖標(biāo)的中文顯示,當(dāng)鼠標(biāo)放在圖標(biāo)上時可以彈出文字標(biāo)注,來解釋當(dāng)前圖標(biāo)的作用;顯示提示是,顯示菜單的圖標(biāo),當(dāng)選中是就在菜單欄下面一行顯示設(shè)置的圖標(biāo),沒選中時就不顯示。實現(xiàn)他們功能的腳本分別是:</p><p>  applic

50、ation app</p><p>  app=getapplication()</p><p>  this.checked=not this.checked</p><p>  app.toolbartext=this.checked</p><p><b>  顯示文字</b></p><p&g

51、t;  application app</p><p>  app=getapplication()</p><p>  this.checked=not this.checked</p><p>  app.toolbartips=this.checked</p><p><b>  顯示提示</b></p>

52、;<p>  對菜單項進(jìn)行專門的快捷鍵設(shè)置,需要修改菜單的屬性窗口。以菜單項“新建&N”為例,在菜單的屬性對話框中Shortcut Key的N,在其下方的復(fù)選框中選擇Shortcut Shift。其中N前面加一個“&”符號是為了讓N有個下劃線[7]。</p><p>  菜單的Micro Help是在設(shè)計菜單對象時設(shè)定的。由于菜單獨立的PB對象,所以設(shè)計菜單時和任何一個窗口或窗口類型

53、都沒有關(guān)系,也就是說,每個菜單都可以設(shè)置Micro Help,為菜單設(shè)置好的在程序運行時能否發(fā)揮作用則取決于該菜單所粘連的窗口類型,只有窗口類型為mdihelp時才有意義。它在畫板Properties視窗的General標(biāo)簽頁中輸入。在運行應(yīng)用程序時,當(dāng)鼠標(biāo)光標(biāo)移動到相應(yīng)的菜單項或相應(yīng)的工具欄中的圖標(biāo)并稍停片刻,在窗口底部的狀態(tài)欄中就可以看到相應(yīng)的提示信息。如圖3-6所示。</p><p>  圖3-6窗口的狀態(tài)

54、欄</p><p>  創(chuàng)建完之后需要存盤,保存為m_main。軟件整體關(guān)聯(lián)以后還要用到,再進(jìn)行修改。</p><p>  3.4 主窗口和菜單關(guān)聯(lián)</p><p>  需要和菜單關(guān)聯(lián)的窗口必須為MDI格式,然后在窗口的屬性界面中的菜單屬性和已建好的菜單關(guān)聯(lián)起來[8],如圖3-7。</p><p>  圖3-7關(guān)聯(lián)菜單窗口</p>

55、;<p>  設(shè)置好各個選項后,可以直接通過點擊菜單Run→Run運行該程序,程序暫時運行是的界面如圖3-8。</p><p><b>  圖3-8系統(tǒng)的界面</b></p><p>  3.5 新建機房窗口</p><p>  新建機房窗口,它的作用是當(dāng)用戶點擊菜單項的新建控件時,能彈出一個窗口,里面有三個SingleLine

56、Edit控件,三個StaticText控件,和兩個Button控件。只要用戶在這窗口里輸入新建機房里電腦的排列(如n行,m列),然后點擊確定,就能彈出想建機房的窗口了;也可以點取消,來關(guān)閉當(dāng)前的新建窗口。圖3-9。</p><p>  圖3-9新建機房窗口</p><p>  在這里,我還對輸入的行和列的數(shù)目進(jìn)行了限制,因為根據(jù)現(xiàn)在自己使用的電腦性能來看,新建窗口的數(shù)字不可能很大,容易造成

57、死機。我限定的行和列都不能超過100[9]。具體腳本如下:圖3-10。</p><p>  圖3-10消息提示窗口</p><p>  if trim(sle_2.text)="" or trim(sle_3.text)="" then</p><p>  messagebox("提示","請輸入

58、機房的行和列!")</p><p>  if trim(sle_2.text)="" then</p><p>  sle_2.setfocus()</p><p><b>  else</b></p><p>  sle_3.setfocus()</p><p>&

59、lt;b>  end if</b></p><p><b>  else</b></p><p>  if long(sle_2.text)>100 or long(sle_3.text)>100 then</p><p>  if long(sle_2.text)>100 then</p>&

60、lt;p>  messagebox("提示","您輸入超過設(shè)計范圍,請輸入小于100的行!")</p><p>  sle_2.setfocus()</p><p>  sle_2.selecttext(1,len(sle_2.text))</p><p><b>  else</b></p&

61、gt;<p>  messagebox("提示","您輸入超過設(shè)計范圍,請輸入小于100的列!")</p><p>  sle_3.setfocus()</p><p>  sle_3.selecttext(1,len(sle_3.text))</p><p><b>  end if</b>

62、;</p><p><b>  else</b></p><p>  close(w_new)</p><p>  open(w_a_pic)</p><p><b>  end if</b></p><p><b>  end if</b><

63、/p><p><b>  3.6 刪除窗口</b></p><p>  刪除窗口的作用是,刪除已經(jīng)建有的機房。當(dāng)它彈出窗口時會顯示所有已經(jīng)建好的機房,以列表形式排列,前面都帶有復(fù)選框,來提供選擇。每個復(fù)選框都和相應(yīng)的機房對應(yīng),當(dāng)前面打勾確定關(guān)聯(lián),不打勾取消關(guān)聯(lián)。按下刪除建按鈕時,就可以進(jìn)行刪除了。這里,我為了在使用時可能進(jìn)行誤操作,寫了一個用來再次確定的提示窗口[10]

64、。圖3-11。其腳本是:</p><p>  if cbx_1=ture or cbx_2=ture</p><p>  messagebox("確定刪除","是否確定刪除當(dāng)前選擇的房?",exclamation!,okcancel!,2)</p><p><b>  then</b></p>

65、<p>  delete cbx_1</p><p>  delete cbx_2</p><p><b>  end if</b></p><p><b>  else</b></p><p>  close(w_del)</p><p><b> 

66、 圖3-11刪除窗口</b></p><p><b>  3.7 圖形窗口</b></p><p>  創(chuàng)建一個圖形窗口的目的是以圖片方式代表每臺電腦的狀態(tài),他一共有兩種狀態(tài)(使用狀態(tài),空閑狀態(tài))。它是所有窗口中設(shè)計比較難,花設(shè)計時間比較多的地方。它有以下幾個難點。</p><p>  1.先識別服務(wù)器顯示器的分辨率,因為不是所有

67、的顯示器設(shè)置的分辨率是相同的,有的是1024×768的,有的是800×600的,這就很難確定象素來設(shè)置窗口的大小,如果不進(jìn)行這部分工作的話,圖片的顯示和排列就不正常[11]。</p><p>  2.顯示窗口應(yīng)該設(shè)置成多大。經(jīng)過多次試驗,如果設(shè)置的機房中機器數(shù)量比較少的話,狀態(tài)圖片在整個窗口中顯示和排列完全沒問題;但是如果機器的數(shù)量比較多時,圖片也就多了,整個窗口不可能都顯示出來。經(jīng)過翻閱大量

68、資料和別人的例子中,發(fā)現(xiàn)其實在很多窗口中都是用 滑塊來彌補窗口有限而不能顯示全部內(nèi)容,這能完全解決我設(shè)計的問題。</p><p>  3.為了能方便確定哪臺機器,我設(shè)計了在每個圖片上都有相應(yīng)的號碼,這個號碼和機房的機器號是一樣的。每個號碼和它下面的圖片是對應(yīng)的,圖片在哪,號碼就跟隨到哪,這就能實現(xiàn)動態(tài)顯示的功能了。</p><p>  4.要使顯示機器狀態(tài)的圖片放到指定的位置,并且能顯示兩

69、個狀態(tài)。其實我把圖片都放到一個圖片框里,每個框都有兩張圖,一張是使用狀態(tài)的圖,另一張是空閑狀態(tài)的圖,只要從數(shù)據(jù)庫中得到機器狀態(tài)的信息,編寫腳本使兩張圖片交替顯示(當(dāng)?shù)玫綑C器正在使用的信息時,命令顯示使用狀態(tài)的圖片是可視狀態(tài),顯示空閑狀態(tài)的圖片為隱藏狀態(tài),反之亦然)。下面是這個只能通過自己編寫算法,來確定圖片框的位置:</p><p>  1.當(dāng)m×n,n≥2且m≥2時</p><p&

70、gt;  (L-2l-an)÷(n-1)=x</p><p> ?。╓-u-d-am)÷(m-1)=y</p><p>  2.當(dāng)1×n,n≥2時</p><p>  (L-2l-an)÷(n-1)=x</p><p> ?。╓- a)÷2=y</p><p>  3.

71、當(dāng)m×1,m≥2時</p><p><b>  (L-a)÷2=x</b></p><p>  (W-u-d-am)÷(m-1)=y</p><p>  其中W是窗口的高度,L是窗口的寬,a是圖片框的寬和高(它是個正方形),m是框的行數(shù),n是框的列數(shù),l是框到窗口左右邊的距離,u是框到窗口上邊的距離,d是框到窗口下

72、邊的距離,這些數(shù)據(jù)在編寫腳本時可以根據(jù)顯示的效果而反復(fù)調(diào)整,以達(dá)到較好的顯示效果。其暫時的效果如圖3-12。</p><p>  圖3-12暫時的效果如圖</p><p>  到這里所有的界面設(shè)計基本上完成了,下面要解決的問題是和數(shù)據(jù)庫的連接。</p><p><b>  4 數(shù)據(jù)庫的連接</b></p><p>  

73、4.1 PowerBuilder與數(shù)據(jù)庫的關(guān)系</p><p>  兩者是“配合”與“協(xié)調(diào)”的關(guān)系,PB完成數(shù)據(jù)請求、數(shù)據(jù)表現(xiàn)、菜單。界面等方面的工作;而數(shù)據(jù)庫服務(wù)器則是完成數(shù)據(jù)的存儲管理、安全管理、并發(fā)控制、事務(wù)管理、完整性維護(hù)、查詢優(yōu)化等工作。因此PB完成的主要是表示邏輯和部分應(yīng)用邏輯方面的工作,而數(shù)據(jù)庫服務(wù)器完成的是事務(wù)邏輯管理和數(shù)據(jù)存取方面的工作。</p><p>  4.2

74、PowerBuilder與數(shù)據(jù)庫的連接</p><p>  數(shù)據(jù)庫前端開發(fā)工具與后臺數(shù)據(jù)庫管理系統(tǒng)的連接方式是一個很重要的課題。PB提供了兩種訪問后臺數(shù)據(jù)庫的方式,一種是通過ODBC標(biāo)準(zhǔn)接口的方式,第二種是通過專用的接口與后臺的數(shù)據(jù)庫相連。</p><p>  ODBC的中文名字是開放式數(shù)據(jù)庫連接,它是微軟公司提出的數(shù)據(jù)庫連接標(biāo)準(zhǔn),使用ODBC方式連接數(shù)據(jù)庫的第一步是創(chuàng)建數(shù)據(jù)源,比如我們可

75、以利用WINDOWS下控制面板中的“32 BIT ODBC”選項來創(chuàng)建驅(qū)動某種數(shù)據(jù)庫的數(shù)據(jù)源,創(chuàng)建好數(shù)據(jù)源之后,我們就可以在本地計算機中利用定義好的數(shù)據(jù)源存取后臺數(shù)據(jù)庫中的數(shù)據(jù)了。</p><p>  我們還可以通過專用接口同后臺的數(shù)據(jù)庫相連,由于專用接口是針對特定的后臺數(shù)據(jù)庫管理系統(tǒng)而設(shè)計,因此這種方式存取數(shù)據(jù)的速度要比采用ODBC方式存取數(shù)據(jù)的速度要快一些,如果我們的應(yīng)用程序只是針對特定類型的后臺數(shù)據(jù)庫,當(dāng)然

76、是采用專用接口訪問后臺數(shù)據(jù)更快一些。PB與數(shù)據(jù)庫管理系統(tǒng)的關(guān)系如圖4-1。</p><p>  圖4-1PB與數(shù)據(jù)庫管理系統(tǒng)</p><p>  4.3 PB內(nèi)置Oracle數(shù)據(jù)庫接口的使用方法</p><p>  這次設(shè)計選用Oracle數(shù)據(jù)庫有兩個原因,一是因為系統(tǒng)使用的對象是大型機房,其中一個機房就有幾百、幾千臺機器,它的數(shù)據(jù)量很大,而Oracle正是適合大

77、數(shù)據(jù)量的環(huán)境;二是因為PB本身內(nèi)置有Oracle數(shù)據(jù)庫接口,并且和上面講到的采用專用接口訪問后臺數(shù)據(jù)更快一些[12]。</p><p>  PB提供了兩種與Oracle連接的接口:Power Soft內(nèi)置的數(shù)據(jù)庫接口(native database interface)和ODBC接口。我使用的是內(nèi)置的Oracle數(shù)據(jù)庫接口,如圖4-2。</p><p>  圖4-2內(nèi)置的Oracle數(shù)據(jù)庫

78、接口</p><p>  假定已安裝Oracle客戶端應(yīng)用程序??捎胹qlplus或tnsping等是否能連接到oracle數(shù)據(jù)庫,如果沒有問,可在oracle客戶端程序目錄下tnsname.ora文件中找到。另外保證搜索路徑已包括應(yīng)用程序的安裝目錄(如c:\orawin\bin)。</p><p>  進(jìn)入PB的database profiles畫筆,可看到所有已安裝的數(shù)據(jù)庫接口,選擇“

79、oracle”,點擊“new”按鈕,進(jìn)入database profile setup對話框。在“connection”頁輸入信息,profile name為該database profile起一個有意義的名稱;server:tns:servername,其中servername為上述數(shù)據(jù)庫別名(服務(wù)器名),如tns:ora73;login id:oracle數(shù)據(jù)庫中實際的用戶名,由于PB初次連接到數(shù)據(jù)庫時要自動建立五個系統(tǒng)表(power

80、builder catalog table:pbcattbl,pbcatcol,pbcatedt,pbcatfmt,pbcatvld,存儲表的擴展屬性),因此第一個連接到oracle的用戶必須具有建表、給public角色授權(quán)等權(quán)限。例如可用system用戶進(jìn)行第一次連接,此后的連接對用戶則無特殊要求;password:該用戶的口令。設(shè)置上述內(nèi)容后,即可連上oracle。圖4-3所示。</p><p>  圖4-3

81、數(shù)據(jù)庫連接配置</p><p>  為優(yōu)化數(shù)據(jù)庫連接,還可設(shè)置下列選項,prompt for database information:連接時是否提示用戶輸入用戶名和口令;generate trace:啟動db跟蹤工具,跟蹤連接;thread safe:開發(fā)需要多線程環(huán)境支持的分布式應(yīng)用時,選擇該項。缺省為未選,適用于非分布應(yīng)用;pbdbms:與存儲過程調(diào)用方式有關(guān)的參數(shù);commit on disconnect

82、:斷開連接時,指定提交或回退未提交的事務(wù);case sensitive:連接的oracle服務(wù)器是否區(qū)分大小寫。注意該項選中時,所有主鍵、包含主鍵的表名、外鍵必須全為大寫字符。Power builder catalog tables owner:指定擁有PB系統(tǒng)表的用戶,缺省為“system”。如果要使用多種顯示格式或有效性規(guī)則,可以在不同的用戶下建立幾套系統(tǒng)表;table criteria:指定滿足哪些條件的表、視圖和同義詞可在“se

83、lect tables”對話框中顯示出來。例如dev用戶下銷售子系統(tǒng)的表都以sale開頭,則可以用sale%、dev、“table”、“view”指定只顯示dev用戶以sale開頭</p><p>  4.4 數(shù)據(jù)庫的創(chuàng)建與連接</p><p>  為了能測試一下最后效果,我在數(shù)據(jù)庫里建一張表,里面記錄了6臺機器的信息,其中pc_no表示機器號,ip_addr表示機器的IP地址,use_

84、flag表示使用狀態(tài),在測試時,可以手動修改use_flag的值,保存之后,然后看在PB界面最終效果[13]。如圖4-4。</p><p><b>  圖4-4數(shù)據(jù)庫表</b></p><p>  在PB的目標(biāo)文件的腳本編輯器里輸入數(shù)據(jù)庫的連接代碼。然后編譯運行[14]。</p><p>  SQLCA.DBMS = "ODBC&qu

85、ot;</p><p>  SQLCA.AutoCommit = False</p><p>  SQLCA.DBParm = "ConnectString='driver=Oracle Microsoft Access Driver (*.mdb);DBQ=c:\1.mdb'"</p><p><b>  CONNEC

86、T;</b></p><p>  IF SQLCA.SQLCode <> 0 THEN</p><p>  MessageBox("數(shù)據(jù)庫連接失敗","請與管理員聯(lián)系。錯誤號:" + String(SQLCA.SQLCode) + "~r~n錯誤原因:" + SQLCA.SQLErrText)</p&

87、gt;<p><b>  RETURN</b></p><p><b>  else</b></p><p>  MessageBox("數(shù)據(jù)庫連接成功","現(xiàn)在進(jìn)入系統(tǒng)... ...")</p><p><b>  end if</b></

88、p><p>  open(w_main)</p><p>  運行后出現(xiàn)了連接成功的提示框[15]。圖4-5。</p><p>  圖4-5連接成功的提示</p><p>  這是假設(shè)機房6臺機器的情況,我把數(shù)據(jù)庫里的use_flag值都寫成“1”表示機房不在使用,下面是不在使用時候的效果圖4-6。</p><p>  圖

89、4-6不在使用時候的效果圖</p><p>  我又把數(shù)據(jù)庫里的use_flag值都寫成“0”表示機房正在使用,下面是正在不在使用時候的效果圖4-7。</p><p>  圖4-7正在不在使用時候的效果圖</p><p>  這里的最終顯示效果正是預(yù)期想得到的,而且又在數(shù)據(jù)庫里修改了幾組use_flag值,結(jié)果顯示都正確。</p><p>&

90、lt;b>  結(jié) 論</b></p><p>  整個設(shè)計基本上達(dá)到了最初的設(shè)計目標(biāo),最終的測試結(jié)果也比較滿意。唯一的缺陷是沒有真正在大型的機房進(jìn)行測試,最后只能在自己的電腦里測試,而且機器性能不太好,只顯示了6臺機器的情況。</p><p>  這次設(shè)計最難的地方是顯示情況的狀態(tài)圖和數(shù)據(jù)庫中的信息相對應(yīng)的調(diào)試,其次是界面的設(shè)計和各種彈出窗口腳本的編寫,查了很多資料,自

91、己也想了很多。</p><p>  通過這次畢業(yè)設(shè)計使我掌握了PB的是具體使用,也初步了解了Oracle數(shù)據(jù)庫(設(shè)計的重點不在數(shù)據(jù)庫方面,只在里面建立了幾個表進(jìn)行簡單的連接)。體會到設(shè)計軟件不是一件容易的事情,要查閱相當(dāng)多的資料,進(jìn)行無數(shù)次的上機操作和調(diào)試。</p><p><b>  致 謝</b></p><p>  衷心感謝**老師在我

92、做畢設(shè)期間給予的悉心指導(dǎo)。老師開闊敏銳的思維、嚴(yán)謹(jǐn)治學(xué)的作風(fēng)及認(rèn)真工作的態(tài)度使我在論文研究中獲益頗多;老師以人為本,寬厚真誠,濃厚的人文精神使我在人生旅途中受益非淺。</p><p>  無法用言語感激我的父母和親戚寄予我的深切厚望和支持。</p><p>  最后,衷心感謝在百忙之中抽出時間審閱本論文的專家教授。</p><p><b>  參考文獻(xiàn)&l

93、t;/b></p><p>  [1] 鄭阿奇. PowerBuilder實用教程. 北京:電子工業(yè)出版社,2002,102-103.</p><p>  [2] 東方華人. Oracle 9i入門與提高. 北京:清華大學(xué)出版社,2004,96-97.</p><p>  [3] 焦虹. PowerBuilder 7.0 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)教程. 北京:

94、清華大學(xué)出版社,2002,134-135.</p><p>  [4] 王蓉. PowerBuilder 7.0 應(yīng)用開發(fā)技術(shù)詳解. 北京:電子工業(yè)出版社,2002,75-76.</p><p>  [5] 張振坤. PowerBuilder精彩編程200例. 北京:機械工業(yè)出版社,2004,105-106.</p><p>  [6] 崔巍. PowerBu

95、ilder 8.0 數(shù)據(jù)庫開發(fā)入門. 北京:清華大學(xué)出版社,2002,39-40.</p><p>  [7] 魯焱. PowerBuilder 9.0 程序設(shè)計. 北京:中國鐵道出版社,2005,66-67.</p><p>  [8] 達(dá)通電腦科技. http://www.study01job.com/index.php.</p><p>  [9] 中國

96、PB程序員俱樂部. http://www.easybetter.com/.</p><p>  [10] Rajesh Palani. Linux Porting Guide. Embedded Systems Design,2001.</p><p>  [11] 張見青. 數(shù)據(jù)庫開發(fā)指南. 北京:科技出版社,2001年.</p><p>  [12] 楊愛林.

97、PowerBuilder 8.0 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)教程. 北京:清華大學(xué)出版社,2002,34.</p><p>  [13] 范永開. Linux應(yīng)用開發(fā). 北京:人民郵電出版社,2006,139-140.</p><p>  [14] 孟慶昌. Linux教程. 北京:電子工業(yè)出版社,2004,74-75.</p><p>  [15] 吳建. PowerBu

98、ilder數(shù)據(jù)庫應(yīng)用. 北京:清華大學(xué)出版社,2004,56-57.</p><p><b>  附 錄</b></p><p><b>  屏幕大小識別</b></p><p>  environment lenv_system </p><p>  getenvironment(len

99、v_system) </p><p>  newheight=lenv_system.ScreenHeight //取當(dāng)前屏幕分辨率的高度 </p><p>  newwidth=lenv_system.ScreenWidth //取當(dāng)前屏幕分辨率的寬度 </p><p>  oldheight=768 //假設(shè)程序員

100、屏幕分辨率為1024*768 </p><p>  oldwidth=1024 </p><p>  This.y=This.y*newheight/oldheight \\然后有多少個控件就寫多少 </p><p>  This.x =This.x*newwidth/oldwidth </p><p>  This.width

101、=This.width*newwidth/ oldwidth </p><p>  This.height=This.height*newheight/oldheight </p><p>  st_title.y=st_title.y*newheight/oldheight </p><p>  st_title.x=st_title.x*newwid

102、th/oldwidth </p><p>  st_title.width=st_title.width* newwidth/oldwidth </p><p>  st_title.height=st_title.height* newheight/oldheight </p><p>  st_title.textsize=st_title.text

103、size*newheight/oldheight </p><p>  在不同分辨率下自動調(diào)整程序界面</p><p>  f_windowscreen(this,1024,768)</p><p>  global type f_windowscreen from function_object</p><p><b>  e

104、nd type</b></p><p>  forward prototypes</p><p>  global function integer f_windowscreen (readonly window arwin, integer arx, integer ary)</p><p>  end prototypes</p>&l

105、t;p>  global function integer f_windowscreen (readonly window arwin, integer arx, integer ary);environment env</p><p>  int ii_Screenwidth,ii_Screenheight</p><p>  double WRadio,HRadio,Radio&

106、lt;/p><p>  int ii_WinBolderwidth,ii_WinBolderheight</p><p>  getenvironment(env)</p><p>  ii_WinBolderwidth=arwin.width - arwin.workspacewidth()//取得窗體邊框的寬度</p><p>  ii_Wi

107、nBolderheight=arwin.height - arwin.workspaceheight()</p><p>  ii_Screenwidth=env.screenwidth</p><p>  ii_Screenheight=env.screenheight//獲取需要調(diào)整的計算機分辨率//</p><p>  WRadio=ii_Screenwidt

108、h/arx //標(biāo)準(zhǔn)認(rèn)為屏幕分辨率為arx*ary</p><p>  HRadio=ii_Screenheight/ary//計算出屏幕相對arx*ary分辨率的變化</p><p>  Radio=min(WRadio,HRadio)</p><p>  if Radio=1.0 then //如果分辨率是arx*ary</p><p>

109、<b>  return 0</b></p><p><b>  end if</b></p><p>  if (arwin.WindowType=MDIHelp!) or (arwin.WindowType=MDI!) then </p><p>  arwin.resize(arwin.workspacewidth(

110、)*Radio,arwin.workspaceheight()*Radio)</p><p><b>  return 0</b></p><p><b>  else</b></p><p>  arwin.hide()</p><p>  arwin.width=(arwin.width - i

111、i_WinBolderwidth)*Radio + ii_WinBolderwidth</p><p>  arwin.height=(arwin.height - ii_WinBolderheight)*Radio + ii_WinBolderheight</p><p><b>  int i</b></p><p>  dragobjec

112、t temp//用于取各種控件</p><p>  windowobject song[]</p><p>  song[]=arwin.control[]</p><p>  for i=1 to upperbound(song)</p><p>  temp=arwin.control[i]//調(diào)整控件大小和位置</p>&

113、lt;p>  temp.width=temp.width*Radio</p><p>  temp.x=temp.x*Radio</p><p>  temp.height=temp.height*Radio</p><p>  temp.y=temp.y*Radio</p><p>  choose case typeof(temp)

114、</p><p><b>  case tab!</b></p><p><b>  tab mtab</b></p><p><b>  mtab=temp</b></p><p>  mtab.textsize=mtab.textsize*Radio//設(shè)置字體大小<

115、/p><p>  case commandbutton!</p><p>  commandbutton cb</p><p><b>  cb=temp</b></p><p>  cb.textsize=cb.textsize*Radio</p><p>  case singlelineedit

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論