C Builder初學問與答1

2021-04-14 00:33:25 字數 3205 閱讀 3453

一直以來都想寫一點為bcb初學者快速入門的東西,前不久寫了幾篇《閒談bcb》想把自己學習bcb中如何來解決難點的方法說給大家,沒想到被罵得不成樣子。本想不寫了,但覺得這些東西留下來能做什麼呢?還是用另一種方法來重新演譯我的思維吧,最近有些忙,那幾篇沒有寫完的文章,我也會盡快寫完的,至於《深入qr》,我想我一定會用另一種手法來寫,讓你一看就會把qr這個嬌女的所有衣服都脫光,不整理到這個地步,我是不敢輕易再拿出來,還請朋友見諒!

本文分為《基礎入門》、《快速提高》與《成功程式設計者》三部分。

第一部分:基礎入門

1.窗體

1)問:windows的程式設計就是在窗體的基礎上實現的, c++builder是怎樣處理窗體的呢?

答:窗體的一部分功能通過窗體的屬性來實現,窗體的屬性非常多,這裡只對其中比較重要的屬性進行介紹。

activecontrol指定窗體上的某個元件為輸入焦點。如下面的語句將窗體上的label1元件成為輸入焦點:activecontrol=label1。在同一時時刻,應用程式只能有乙個輸入焦點。

bordericons用來設定標題欄上出現哪些系統圖示。它是乙個集合,可以設成以下幾個型別:最大化按鈕(bimaximize)、最小化按鈕(biminimize)、幫助按鈕(bihelp)和系統選單(bisystemmenu)。

icon屬性用來指定當窗體最小化時顯示的圖示。

keypreview屬性為true時,表示擊鍵事件發生時先傳給窗體,然後再傳給有輸入焦點的元件上,相當於窗體截獲了原本屬於元件的事件。預設值為false,表示擊鍵事件只送到當前有輸入焦點的元件上。

menu屬性用來指定窗體的主選單。

visible屬性用來確定窗體是否可見。

此外還有一些執行時態屬性,這些屬性只有在程式執行的時候才能通過程式設計訪問。這種屬性主要有:

active 屬性用來確定窗體是否獲得輸入焦點。

activemdichild 這個函式將返回當前活動的子窗體。

droptarget 屬性用來指定窗體是否是拖放操作的物件。

parent 屬性用來設定包含窗體的視窗控制項,通常是另乙個窗體。如果窗體沒有包含它的控制項,那麼它的parent屬性為nil。

2)問: windows窗體有很多樣式,比如對話方塊,彈出視窗。如果我要控制窗體的邊界樣式,應該怎麼辦?

答:屬性borderstyle可以指定窗體邊界的外觀和行為。它一共有六種可能的取值。

bsdialog 表示大小不可變的標準的對話方塊邊界。

bssingle 表示大小不可變的單線邊界。

bsnone 表示大小不可變、沒有邊界。

bssizeable 表示標準的可改變大小的窗體。

bstoolwindow 與bssingle時類似,但是標題較小,用做工具框視窗。

bssizetoolwin與bssizeable時相似,但是標題較小,做工具框視窗。

要注意的是,對於mdi子窗體,bsdialog或bsnone將不起作用。

3)問:同樣是獲得焦點,activecontrol與setfocus()有什麼不同?

答: activecontrol是把焦點交給元件,它是乙個屬性。而setfocus()是元件主動要焦點,是乙個方法。書寫格式也不一樣。例如,我們想使同樣的乙個button1獲得焦點,可以下的兩種寫法:

activecontrol=button1或button1=setfocus()

二者作用是一樣的,不過一般都習慣用第一種方式。

4)問:屬性formstyle有什麼作用?

答:屬性formstyle可以確定窗體的型別,它一共有四種屬性值。

fsnormal 表示窗體既不是mdi父視窗也不是mdi子視窗,只可能是單文件sdi視窗或者對話方塊。這個屬性值是預設值。

f**dichild 表示這個窗體是乙個mdi子視窗。

f**diform 表示這個窗體是乙個mdi父視窗。

fsstayontop 表示窗體始終保持在窗體所屬工程中其它窗體的上面,除非還有別的窗體的formstyle屬性也被設定成了fsstayontop。

要特別注意的是,在程式執行期間不要修改窗體的formstyle屬性。

5)問:屬性position有什麼作用?

答:屬性position可以確定程式執行時出現在螢幕上的窗體的大小和位置,它有五種可能的取值。

1.podesigned表示使用設計時指定的尺寸和位置屬性時顯示窗體。尺寸屬性是指height和width,位置屬性是指left和top。這個屬性值是預設值。

2.podefault表示窗體在螢幕上顯示的位置和大小由windows決定。每次執行應用程式時,窗體都會稍微向下向右移動。

3.podefaultposonly表示窗體以設計時的窗體尺寸顯示窗體,但是在螢幕上顯示的位置由windows確定。每次執行應用程式時,窗體都會稍微向下向右移動。當無法再向下移動時,就又會從螢幕的左上角開始顯示。

4.podefaultsizeonly表示窗體的位置由設計時指定的值確定,而尺寸由windows確定。

5.poscreencenter表示使用設計時指定的尺寸和位置屬性,在螢幕的**顯示窗體。

6)問:如何最大化或最小化窗體?

答:屬性windowstate與窗體的顯示有關,它有三種可能的取值。

wsnormal 窗體既不是最大化顯示也不是最小化顯示。這個值是預設值。

w**inimized 窗體最小化顯示。

w**aximized 窗體最大化顯示。

7)問:屬性clientheight和clientwidth有什麼作用?

答:這兩個屬性用來定義窗體使用者區域的高和寬。所謂使用者區域窗體的實際工作區域,就是除了窗體的標題欄、選單條、工具條和狀態條以及邊框之外的窗體區域。所以對於新建立的窗體,它的使用者區域比窗體的大小要稍微小一些,相對而言,窗體的大小是由屬性height和width確定的。

8)問:如何動態建立乙個窗體呢?

答:我們先建立乙個主窗體mainform,把她的caption改為「主窗體」,把formstyle屬性改為f**diform。再建立乙個子窗體windows1,把caption改為「子窗體」,把formstyle屬性改為f**dichild。

選擇「project|options…」選單項,將會彈出乙個如圖所示的對話方塊。

C Builder初學問與答3

21 問 在進行 windows 程式介面設計中,經常會用到按鈕,在 c builder 中,按鈕一定是通過按鈕元件來實現的嗎?答 是的,並且 c builder 的按鈕類元件十分豐富。bcb 提供了兩類按鈕類元件 一類是執行類按鈕,另一類是資訊類按鈕。所謂執行類按鈕是指它們通常用來啟動程式執行的,...

C Builder初學問與答8

8.圖形類元件 59 問 windows是乙個圖形系統,c builder是怎樣處理圖形的呢?答 c builder通過提供圖形元件來處理圖形,其中比較常用的有影象元件 image 幾何圖形元件 shape 和畫板元件 paintbox 前兩個元件位於additional頁中,畫板元件位於syste...

C Builder初學問與答11

11.工具條元件 87 問 工具條是windows程式設計經常要用的,c builder能不能實現這個功能呢?答 當然可以,工具條是由許多具有圖形的按鈕組成的,這些按鈕被分隔符分隔成許多組,每個組都能夠完成特定的工作。工具條上的按鈕具有與點陣圖按鈕相似的特性 可以擁有多個位圖,當按鈕處於不同狀態時,...