程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ Builder初學問與答12

C++ Builder初學問與答12

編輯:C++入門知識

  13.對話框組件

  96)問:怎樣編寫文件打開、保存等對話框?

  答:C++Builder為我們提供了許多常用的對話框組件,這些對話框組件都放在組件模板的Dialogs選項卡中,例如Font,Color,Open和Print對話框。其中OpenDialog對話框組件最具有代表性,只要掌握了它的用法,那麼你也就會使用其他的對話框組件了。

  97)問:對話框組件的特性有哪些特性呢?

  答:對話框組件是一種不可見組件。當你把它放在窗體上時,它是一個大小不變的圖形按鈕,當程序運行時,對話框組件不會立刻顯示,而必須使用每個對話框都有的Execute方法,使對話框顯示出來。

  C++Builder提供的對話框大多數是有模式對話框。這種對話框要求首先必須響應該對話框,然後才能繼續進行工作。所謂響應對話框就是你必須單擊OK或者Cancel按鈕,使對話框返回一個值。當用戶單擊對話框上的按鈕OK時,返回True,單擊Cancel按鈕返回False。用戶可以根據返回值的不同進行不同的處理。

  非模式的對話框使你在響應對話框之前可以完成其他的工作,不必非要首先響應對話框。這類對話框有:FindDialog,ReplaceDialog等。

  98)問:能更細點的說明對話框組件的用法嗎?

  答:我們就編制一個文本閱讀器來說明如何使用文件打開對話框。

  打開一個新的窗體,我們放上一個按鈕組件和一個Memo組件,將Memo的ScrollBars屬性設置為ssBoth,使得Memo能夠顯示垂直和水平的滾動條。

  選中Lines屬性,刪除裡面的文本。

  在窗體上放置OpenDialog組件。

  選中OpenDialog組件,可以看出,OpenDialog有這樣一些主要的特性

  FilrerIndex屬性用來指定每次打開對話框所用的缺省過濾器。

  DefaultExt屬性是一個擴展名,當用戶在文件編輯框中輸入的文件名沒有帶擴展名時,對話框會用它作為文件缺省的擴展名。

  InitialDir屬性用來設置對話框打開時顯示的目錄。

  FileName屬性用來返回最近一次選中的文件的完整路徑名。

  Filter屬性,這個屬性用來設計在對話框的文件列表中將列出哪些類型的文件。

  OpenDialog對話框提供了一個專門的編輯器來編輯屬性filter,單擊屬性Filter的value列中的省略好按鈕就可以打開這個編輯器。

  左邊用來輸入過濾器的名稱,右邊用來輸入文件擴展名。

  現在,我們輸入文本文件和C++文件的過濾器。這樣,在每次打開對話框時候,在文件類型下拉列表中將顯示過濾器的名稱。

  雙擊文打開按鈕,輸入這樣一段代碼:

  

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())//首先執行打開文件對話框函數,這時,打開文件對話框才顯示出來。
//如果執行成功,這個函數返回true,否則返回false
{
Memo1->Lines->Clear();//把Memo中的內容清掉
Caption=OpenDialog1->FileName; //獲得用戶選擇的文件的路徑名,並將它設置成窗體的標題。
//注意,因為是在Form1窗口(容器)中進行的操作,所以Caption前省了Form1,當然你可以加上
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);// 調用文本裝入函數從文件中裝入文本,並顯示在編輯框中
}
}
//---------------------------------------------------------------------------

  99)問:其它對話框的各有什麼重要屬性?

  答:保存對話框SaveDialog與打開對話框非常相似,至於OpenPictureDialog、SavePictureDialog就不用多說了。其它象字體對話框FontDialog的Font屬性;顏色對話框ColorDialog的Color屬性;查找對話框FindDialog的FindText。這裡就不用多說了,看一下就明白了。

  100)問:對話框組難道就只能用上面說的那些組件嗎?要是有,能介紹一下嗎?

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved