亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C++ Builder 初學問與答(一)

2019-11-17 05:05:52
字體:
來源:轉載
供稿:網友
  一直以來都想寫一點為BCB初學者快速入門的東西,前不久寫了幾篇《閑談BCB》想把自己學習BCB中如何來解決難點的方法說給大家,沒想到被罵得不成樣子。
本想不寫了,但覺得這些東西留下來能做什么呢?還是用另一種方法來重新演譯我的思維吧,最近有些忙,那幾篇沒有寫完的文章,我也會盡快寫完的,至于《深入QR》,我想我一定會用另一種手法來寫,讓你一看就會把QR這個嬌女的所有衣服都脫光,不整理到這個地步,我是不敢輕易再拿出來,還請朋友見諒!  本文分為《基礎入門》、《快速提高》與《成功編程者》三部分。  第一部分:基礎入門  1.窗體

  1)問:Windows的編程就是在窗體的基礎上實現的, C++Builder是怎樣處理窗體的呢?  答:窗體的一部分功能通過窗體的屬性來實現,窗體的屬性非常多,這里只對其中比較重要的屬性進行介紹。  1.ActiveControl指定窗體上的某個組件為輸入焦點。如下面的語句將窗體上的Label1組件成為輸入焦點:ActiveControl=Label1。在同一時時刻,應用程序只能有一個輸入焦點?! ?.BorderIcons用來設定標題欄上出現哪些系統圖標。它是一個集合,可以設成以下幾個類型:最大化按鈕(biMaximize)、最小化按鈕(biMinimize)、幫助按鈕(biHelp)和系統菜單(biSystemMenu)。  3.Icon屬性用來指定當窗體最小化時顯示的圖標。  4.KeyPReview屬性為true時,表示擊鍵事件發生時先傳給窗體,然后再傳給有輸入焦點的組件上,相當于窗體截獲了原本屬于組件的事件。缺省值為false,表示擊鍵事件只送到當前有輸入焦點的組件上。  5. Menu屬性用來指定窗體的主菜單?! ?.Visible屬性用來確定窗體是否可見?! 〈送膺€有一些運行時態屬性,這些屬性只有在程序運行的時候才能通過編程訪問。這種屬性主要有:  Active
  屬性用來確定窗體是否獲得輸入焦點。
  
  ActiveMDIChild
  這個函數將返回當前活動的子窗體。
  
  DropTarget
  屬性用來指定窗體是否是拖放操作的對象。
  
  Parent
  屬性用來設定包含窗體的窗口控件,通常是另一個窗體。假如窗體沒有包含它的控件,那么它的Parent屬性為nil。
  



更多文章 更多內容請看C/C++技術專題專題,或
  2)問: Windows窗體有很多樣式,比如對話框,彈出窗口。假如我要控制窗體的邊界樣式,應該怎么辦?  答:屬性BorderStyle可以指定窗體邊界的外觀和行為。它一共有六種可能的取值。
  bsDialog
  表示大小不可變的標準的對話框邊界。
  
  bsSingle
  表示大小不可變的單線邊界。
  
  bsNone
  表示大小不可變、沒有邊界。
  
  bsSizeable
  表示標準的可改變大小的窗體。
  
  bsToolWindow
  與bsSingle時類似,但是標題較小,用做工具框窗口。
  
  bsSizeToolWin
  與bsSizeable時相似,但是標題較小,做工具框窗口。  要注重的是,對于MDI子窗體,bsDialog或bsNone將不起作用?!?STRONG> 3)問:同樣是獲得焦點,ActiveControl與SetFocus()有什么不同?   答: ActiveControl是把焦點交給組件,它是一個屬性。而SetFocus()是組件主動要焦點,是一個方法。書寫格式也不一樣。例如,我們想使同樣的一個Button1獲得焦點,可以下的兩種寫法:  ActiveControl=Button1或Button1=SetFocus()  二者作用是一樣的,不過一般都習慣用第一種方式。  4)問:屬性FormStyle有什么作用?  答:屬性FormStyle可以確定窗體的類型,它一共有四種屬性值?! sNormal

  表示窗體既不是MDI父窗口也不是MDI子窗口,只可能是單文檔SDI窗口或者對話框。這個屬性值是缺省值。
  
  fsMDIChild
  表示這個窗體是一個MDI子窗口。
  
  fsMDIForm
  表示這個窗體是一個MDI父窗口。




更多文章 更多內容請看C/C++技術專題專題,或
  
  fsStayOnTop
  表示窗體始終保持在窗體所屬工程中其它窗體的上面,除非還有別的窗體的FormStyle屬性也被設置成了fsStayOnTop?! ∫欠沧⒅氐氖?,在程序運行期間不要修改窗體的FormStyle屬性。
  5)問:屬性Position有什么作用?  答:屬性Position可以確定程序運行時出現在屏幕上的窗體的大小和位置,它有五種可能的取值?! ?.poDesigned表示使用設計時指定的尺寸和位置屬性時顯示窗體。尺寸屬性是指Height和Width,位置屬性是指Left和Top。這個屬性值是缺省值?! ?.poDefault表示窗體在屏幕上顯示的位置和大小由Windows決定。每次運行應用程序時,窗體都會稍微向下向右移動。  3.poDefaultPosOnly表示窗體以設計時的窗體尺寸顯示窗體,但是在屏幕上顯示的位置由Windows確定。每次運行應用程序時,窗體都會稍微向下向右移動。當無法再向下移動時,就又會從屏幕的左上角開始顯示。  4.poDefaultSizeOnly表示窗體的位置由設計時指定的值確定,而尺寸由Windows確定。  5.poScreenCenter表示使用設計時指定的尺寸和位置屬性,在屏幕的中心顯示窗體?!?STRONG> 6)問:如何最大化或最小化窗體?  答:屬性WindowState與窗體的顯示有關,它有三種可能的取值?! sNormal
  窗體既不是最大化顯示也不是最小化顯示。這個值是缺省值。
  
  wsMinimized
  窗體最小化顯示。
  
  wsMaximized
  窗體最大化顯示?!?STRONG> 7)問:屬性ClientHeight和ClientWidth有什么作用?  答:這兩個屬性用來定義窗體用戶區域的高和寬。所謂用戶區域窗體的實際工作區域,就是除了窗體的標題欄、菜單條、工具條和狀態條以及邊框之外的窗體區域。所以對于新創建的窗體,它的用戶區域比窗體的大小要稍微小一些,相對而言,窗體的大小是由屬性Height和Width確定的。  8)問:如何動態創建一個窗體呢?  答:我們先創建一個主窗體MainForm,把她的Caption改為“主窗體”,把FormStyle屬性改為fsMDIForm。再創建一個子窗體windows1,把Caption改為“子窗體”,把FormStyle屬性改為fsMDIChild。




更多文章 更多內容請看C/C++技術專題專題,或
  選擇“ProjectOptions…”菜單項,將會彈出一個如圖所示的對話框。  在這里我們可以通過下拉框選擇主窗體(Main form),在左側的Auto-create forms里列出了所有的窗口,這里面的窗口通常是動態創建,你可以把需要動態創建的窗口(Available forms)通過中間的那四個按鈕調到右側,然后OK就可以了。  動態的創建的方法如下:
void _fastcall TForm1::Button1Click(TObject *Sender){   Tform2 *Forms;   try   {Form2=new TForm2(application);//動態創建Form2Form2->ShowModal();delete Form2;//把Form2釋放   }   catch(Exception &exception)   {delete Form2;Application->ShowException(&exception);}}
 




更多文章 更多內容請看C/C++技術專題專題,或
  要注重一般你可能不喜歡用上面的那種形式,而寫成如下格式:
void _fastcall TForm1::Button1Click(TObject *Sender){   Tform2 *Forms;Form2=new TForm2(Application);//動態創建Form2……}   你要記住,無論你的子窗體創建是否完成,你都必須運行delete來釋放你剛才創建的子窗體,當然你也可以把釋放的過程寫在OnClose事件函數內,這個函數有一個參數為Action,它有四個取值:caNone為不關閉窗體,什么也不操作;caHide為不關閉窗體,但把它隱藏起來;caFree為關閉窗體,同時釋放內存;caMinimize為最小化窗體,不關閉。所以我們也可以象下面這樣來釋放子窗體。

void _fastcall TForm2::FormClose(Tobject *Sender,TcloseAction &Action){  Action=caFree;}   9)問:為什么我們用Close()不能關閉我當前活動的子窗體?  答:關閉當前活動窗體,很多人會用如下的方法:
void _fastcall TForm1::Button2Click(Tobjcet *Sender){  ActiveMDIChild->Close();//注重這是在主窗體(或者說在其它窗體)中來關閉當前活動的子窗體,這樣做不好,一般的關閉應該象10)問中那樣來做}




更多文章 更多內容請看C/C++技術專題專題,或
  此時窗體并沒有關閉,而是最小化了,因此要在子窗體的OnClose事件中用如下代碼來關閉。
void _fastcall TForm2::FormClose(Tobject *Sender,TCloseAction &Action){  Action=caFree;}   這段程序不用多說了,上面都說過了?! ∵@里有一點要說明一下,就是在調用Close()時,會自動觸發OnClose事件,而由上我們知道窗體沒有關閉,而是最小化,說明在OnClose中Action的此時的值為caMinimize。所以我們要寫上面的方法來關閉?!?STRONG> 10)問:Show()與ShowModal()有什么不同?  答:我們的程序中不可能就只有一個Form,比如,有Form1和Form2兩個窗口,我們在Form1中調用Form2應該先在Unit1.cpp的開頭部分加入:
#include “Unit2.h”   在要調用的地方加入:
Form2->Show();//或是Form2->ShowModal();   兩者的區別在于若使用了ShowModal()則必須關閉Form2,才能處理其它窗口的內容,而Show()則不用。當然你可以直接在Form2直接創建一個Button1來關閉她,程序內容如下:
void _fastcall TForm2::Button1Click(Tobject *Sender){ Close();}   在Close前,不需要加上Form2,因為這行程序就是在Form2上運行的,所以默認的父組件就是Form2。





更多文章 更多內容請看C/C++技術專題專題,或

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人国产人伦爽爽爽| 成人免费淫片视频软件| 国产精品免费一区二区三区都可以| 蜜臀久久99精品久久久久久宅男| 亚洲精品在线观看www| 视频直播国产精品| 日本亚洲精品在线观看| 热re99久久精品国产66热| 日韩免费在线免费观看| 91视频88av| 亚洲自拍中文字幕| 亚洲视频网站在线观看| 亚洲视频日韩精品| 久热爱精品视频线路一| 青青草原一区二区| 91高清免费在线观看| 91禁外国网站| 日韩在线观看你懂的| 国产做受69高潮| 另类美女黄大片| 日韩不卡中文字幕| 91丝袜美腿美女视频网站| 日韩视频免费在线观看| 26uuu另类亚洲欧美日本老年| 51久久精品夜色国产麻豆| 国产成人久久精品| 国产午夜精品美女视频明星a级| 欧美日韩不卡合集视频| 久久久精品影院| 欧美一级视频在线观看| 色婷婷综合成人av| 国产亚洲精品久久久久久777| 性欧美暴力猛交69hd| 久久天天躁夜夜躁狠狠躁2022| 欧美黑人巨大xxx极品| 欧美亚洲另类制服自拍| 91精品久久久久久久久久| 亚洲最大福利网| 久久影视免费观看| 亚洲福利视频二区| 欧美高清无遮挡| 亚洲综合自拍一区| 色婷婷亚洲mv天堂mv在影片| 日韩大片在线观看视频| 欧美性xxxxx极品娇小| 2020久久国产精品| 黄色一区二区在线观看| 欧美在线免费视频| 日韩欧美在线视频| 亚洲人成电影网站色…| 亚洲免费视频观看| 亚洲男人天堂九九视频| 精品国产区一区二区三区在线观看| 精品高清美女精品国产区| 久久在线免费视频| 91麻豆国产精品| 日韩中文字幕在线| 国产成人久久精品| 国产精品久久久久久久久久久久| 亚洲国产欧美精品| xxxxx成人.com| 欧美日韩一二三四五区| 欧美激情一区二区三区成人| 国产精品久久婷婷六月丁香| 欧美高清激情视频| 欧美色道久久88综合亚洲精品| 亚洲一区亚洲二区亚洲三区| 国产日韩欧美视频在线| 亚洲美女自拍视频| 国产精品免费一区豆花| 91精品国产乱码久久久久久蜜臀| 中文字幕在线看视频国产欧美在线看完整| 日本国产欧美一区二区三区| 国产精品成人v| 久久精视频免费在线久久完整在线看| 91精品在线一区| 欧美亚洲国产成人精品| 欧美福利在线观看| 日韩欧美国产免费播放| 欧美亚洲在线观看| 欧美成年人在线观看| 久久精视频免费在线久久完整在线看| 日韩性生活视频| 亚洲精品福利视频| 欧美日韩亚洲一区二| 在线看国产精品| 亚洲欧美日韩国产成人| 国内精品久久久久影院优| 欧美片一区二区三区| 欧美性猛交xxxx久久久| 黄色成人在线免费| 狠狠色香婷婷久久亚洲精品| 91av在线看| 精品夜色国产国偷在线| 日韩在线视频免费观看高清中文| 亚洲国产另类久久精品| 欧美成人免费小视频| 国产精品久久色| 日本久久久久久| 欧美美女操人视频| 精品福利在线看| 97视频在线观看网址| 国产精品美女在线| 亚洲精品91美女久久久久久久| 日日狠狠久久偷偷四色综合免费| 高跟丝袜一区二区三区| 91经典在线视频| 91地址最新发布| 亚洲美女黄色片| 日本国产高清不卡| 欧美亚洲国产日韩2020| 欧美一级黄色网| 欧美成人午夜免费视在线看片| 久久久精品国产| 亚洲影院高清在线| 久久伊人精品一区二区三区| 欧美在线视频在线播放完整版免费观看| 欧美激情精品久久久久久免费印度| 久久影院中文字幕| 欧美午夜片在线免费观看| 久久久噜噜噜久久| 亚洲欧美日韩国产精品| 久久久久女教师免费一区| 亚洲国产精彩中文乱码av在线播放| 欧美交受高潮1| 精品一区电影国产| 亚洲国产精品视频在线观看| 一区二区亚洲欧洲国产日韩| 精品一区二区亚洲| 亚洲bt欧美bt日本bt| 久久精品国产综合| 亚洲精品成人久久电影| 久久久精品999| 97精品国产91久久久久久| 日韩国产中文字幕| 性欧美亚洲xxxx乳在线观看| 国产在线日韩在线| 91国产精品91| 欧美亚洲伦理www| 欧美大片在线看免费观看| 亚洲人成在线一二| 欧美视频第一页| 日韩欧美在线播放| 91sa在线看| 久久久人成影片一区二区三区| 久久青草精品视频免费观看| 在线亚洲午夜片av大片| 久久久精品亚洲| 国产精品久久久久久久av大片| 欧美xxxx18国产| 亚洲国产精品久久久久| 欧美激情亚洲视频| 91九色国产视频| 欧美精品激情在线观看| 欧美日韩亚洲一区二区三区| 91免费国产视频| 国产成人精品免费久久久久| 91精品综合久久久久久五月天| 91免费精品国偷自产在线| 国产精品一区二区三区久久| 色偷偷噜噜噜亚洲男人| 亚洲无av在线中文字幕| 国产精品入口夜色视频大尺度| 欧美视频在线免费|