




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
對話框設計
幾乎所有的Windows應用程序都借助于對話框和用戶進行交流,對話框本質是一種窗口,不但可以接受消息,還能移動和關閉。Delphi應用程序可使用三種對話框。
1、由Delphi自動提供的對話框組件:
如打開文件對話框、文件保存對話框、字體對話框、顏色對話框、查找對話框和替換對話框等。
2、Delphi預定義的標準對話框,包括消息框和輸入框.可用函數和過程調用的形式來顯示這些對話框。3、用戶自己設計的對話框。Delphi的公共對話框組件都是從抽象的TCommonDialog繼承下來的,而TCommonDialog又是從TComponent繼承下來的。因此,這些對話框組件都是非可視的。
在設計期,把這些公共對話框組件加到Form上后,看到的是這些對話框組件的圖標。只有調用這些對話框的Execute()方法,才能在運行期看到真正的對話框。5.1“打開”對話框組件“打開”對話框,是用來打開文件的對話框,是用TOpenDialog組件實現的。常用屬性:DefaultExt屬性:用于指定一個默認的擴展名。FileName屬性:指定一個文件名。在打開對話框時,這個文件名出現在對話框的“文件名”框中。Filter屬性:設置文件過濾器,讓對話框只列出特定類型的文件。表中Filername是對類型的文字描述,filer列出文件的實際類型,如:執行文件:*.exe.
單擊Filter屬性右側的省略號按鈕,可打開FilterEditor對話框,從中定義Filter屬性。FilterIndex屬性:如果有多個過濾器,這個屬性用于指定一個作為默認過濾器。(上圖有三個過濾器)InitialDir屬性:默認情況下,對話框打開時,文件列表中顯示的是當前目錄的文件??梢栽O置這個屬性指定另外一個目錄。Title屬性:用于設置對話框的標題。例:procedureTForm1.Button1Click(Sender:TObject);beginOpenDialog1.Filter:='文本文件|*.txt';OpenDialog1.FileName:='';ifOpenDialog1.Executethenmemo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
另外TOpenDialog組件有一組Options屬性,缺省時它們的取值均為False。
TOpenPictureDialog的直接上級是TOpenDialog,它的特性、方法和事件與TOpenDialog全相同。在一個Timage組件中加入圖片程序如下:procedureTForm1.Button2Click(Sender:TObject);beginOpenPictureDialog1.Filter:='圖片|*.jpg;*.bmp';OpenPictureDialog1.Options:=[ofOldStyleDialog];ifOpenPictureDialog1.Executethenbeginshowmessage(OpenPictureDialog1.FileName);image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);end;end;
它的外觀與一般的“打開”對話框很相似,只是增加了一個預覽區域。當用戶選擇圖像文件時,預覽區域就顯示用戶所選擇的圖像,并且顯示該圖像的大小。
單擊對話框上的[放大鏡]按鈕,可以放大顯示圖像??梢灶A覽的圖像格式有BMP、ICO、WMF和EMF,如果是其他格式的圖像,預覽區域將顯示“(None)”。(若要選擇所有類型圖片,可在過濾器中輸入“*.*”)例:procedureTForm1.Button1Click(Sender:TObject);beginwithOpenDialog1dobeginFilter:='文本文件(*.txt)|*.txt';DefaultExt:='txt';FileName:='';ifExecutethenifofExtensionDifferentinOptionsthenMessageDlg('這不是文本文件!',mtError,[mbOK],0)ElseMemo1.Lines.LoadFromFile(FileName);end;end;5.2“保存”對話框組件“保存”對話框組件的屬性以及界面和“打開”對話框幾乎一樣。與[打開]對話框一樣,[保存]對話框也有一個帶圖像預覽的“保存”對話框,是用TSavePictureDialog元件實現的。
在保存圖像文件時,可以在對話框中預覽圖像。
TSavsPictureDialog的直接上級是TOpenPictureDialog。
它的特性、方法和事件與TOpenPictureDialog組件完全相同。它的外觀與一般的“另存為”對話框很相似,只是增加了一個預覽區域。
圖象的用法和格式同TOpenPictureDialog。例:procedureTForm1.Button2Click(Sender:TObject);beginwithSaveDialog1doifExecutethenbeginMemo1.Lines.SaveToFile(FileName);Memo1.Modified:=False;//上面語句表示存儲框的內容無改變
end;end;6.3“字體”對話框組件
大多數文本編輯軟件都提供用戶使用“字體”對話框,用于設置選定文本的字體、字號、字形、字色等。
為了方便用戶,Delphi預定義了FontDialog組件。
常用屬性和事件:Device屬性:用于設置從哪兒檢索可用的字體。(可選項有fdScreen/屏幕、fdPrinter/打印機、fdBoth/兩者)。
OnApply事件:當OnApply事件被定義后,[字體]對話框會出現[應用]按鈕,當用戶按下[應用]按鈕時將觸發這個事件。
TFontDialog組件有一組Options屬性,缺省時它們的取值均為False。例:procedureTForm1.FontDialog1Apply(Sender:TObject;Wnd:HWND);beginMemo1.Font:=FontDialog1.Font;end;procedureTForm1.Button3Click(Sender:TObject);beginwithFontDialog1dobeginFont:=Memo1.Font;ifExecutethenMemo1.Font:=Font;end;end;5.4“顏色”對話框組件[顏色]對話框用于設置選定對象的前景色和背景色,是用TColorDialog組件實現的。例:procedureTForm1.Button4Click(Sender:TObject);beginwithColorDialog1dobeginColor:=Memo1.Color;ifExecutethenMemo1.Color:=Color;end;end;5.5“打印”對話框組件“打印”對話框是用TPrintDialog組件實現的。
它能讓用戶選擇使用哪臺打印機、設置打印機的屬性、選擇頁的范圍、設置打印份數等?!按蛴 苯M件的常用屬性有:Collate:若該屬性為True,對話框中的“分頁”復選框就被選中。Copies:設置打印的份數。FromPage、ToPage:設置打印范圍的起始頁碼和結束頁碼。PrintToFile:打印作業被輸出到一個文件而不是到打印機上。例:procedureTForm1.Button5Click(Sender:TObject);beginwithPrintDialog1dobeginOptions:=[poPrintToFile];PrintToFile:=True;ifExecutethenbeginifPrintTofilethenbeginSaveDialog1.Title:='打印到文件:';
ifSaveDialog1.ExecutethenMemo1.Lines.SaveToFile(SaveDialog1.FileName);endend;end;end;5.6“打印設置”和“頁面設置”對話框
“打印設置”對話框是用TPrinterSetupDialog組件實現的。“頁面設置”對話框是用TPageSetupDialog組件實現的。例:procedureTForm1.Button6Click(Sender:TObject);beginwithPrinterSetupDialog1dobeginExecute;end;end;procedureTForm1.Button9Click(Sender:TObject);beginwithPageSetupDialog1dobeginExecute;end;end;5.7“查找”對話框組件[查找]對話框用于查找指定字符串。
在[查找]對話框中有一個[找下一個]按鈕,單擊該按鈕就可以開始對指定字符串的查找。這是通過調用FindDialog組件的OnFind事件的響應過程來實現的。
例:為FindDialog1添加OnFind事件,事件響應過程為FindDialog1Find。procedureTForm1.FindDialog1Find(Sender:TObject);varFoundPos,InitPos:integer;beginInitPos:=Memo1.SelStart+Memo1.SelLength;FoundPos:=Pos(FindDialog1.FindText,Copy(Memo1.Text,InitPos+1,Length(Memo1.Text)-InitPos));ifFoundPos>0thenbeginMemo1.SetFocus;Memo1.SelStart:=InitPos+FoundPos-1;Memo1.SelLength:=Length(FindDialog1.FindText);endelsebeginMessagedlg('沒有找到要查找的文本!',mtInformation,[mbOK],0);end;end;procedureTForm1.Button7Click(Sender:TObject);beginwithFindDialog1dobeginExecute;end;end;5.8“替換”對話框組件
為ReplaceDialog1添加OnFind事件,事件響應過程為ReplaceDialog1Find。查找單個內容并替換程序procedureTForm1.ReplaceDialog1Find(Sender:TObject);varFoundPos,InitPos:integer;beginInitPos:=Memo1.SelStart+Memo1.SelLength;FoundPos:=Pos(ReplaceDialog1.FindText,Copy(Memo1.Text,InitPos+1,Length(Memo1.Text)-InitPos));ifFoundPos>0thenbeginMemo1.SetFocus;Memo1.SelStart:=InitPos+FoundPos-1;Memo1.SelLength:=Length(ReplaceDialog1.FindText);endelsebeginMessagedlg('沒有找到要查找的文本!',mtInformation,[mbOK],0);end;end;
再為ReplaceDialog1添加OnReplace事件,事件響應過程為RePlaceDialog1Replace:procedureTForm1.ReplaceDialog1Replace(Sender:TObject);beginifMemo1.SelText<>''then
Memo1.SelText:=ReplaceDialog1.ReplaceText;end;
最后為Button8([替換]按鈕)添加onClick事件。procedureTForm1.Button8Click(Sender:TObject);beginwithReplaceDialog1dobeginExecute;end;end;5.9標準對話框
消息框和輸入框是Delphi預定義的又一系列對話框,用于顯示各種信息。以及接收簡單的用戶輸入,稱為標準對話框。這些對話框無須使用對話框組件,簡單地調用函數或過程就能實現。5.9.1消息框
所謂消息框,指的是顯示提示信息的一些簡單對話框。這些對話框無須用戶任何輸入,只需簡單地確認或取消即可。
消息框的顯示無須使用對話框組件,Delphi用兩個函數、兩個過程用來顯示消息框:1.MessageDlg函數:用于在屏幕中央顯示提示信息。functionMessageDlg(ConstMsg:String;
Atype:TmsgDlgType;
AButtons:TMsgDlgButtons;
HelpCtx:Longint):Word;
其中:·Msg參數:顯示內容?!Type參數:決定消息框的類型,有mtInformation、mtError、mtWarning、mtConfirmation幾種類型。
AButtons參數:決定消息框中顯示的位圖按鈕,可由一系列子參數組成,每一參數代表一位圖按鈕,如mbYes、mbNo、mbOK、mbCancel等?!elpCrt參數:決定消息框使用哪個幫助屏幕。
例:procedureTForm1.Button9Click(Sender:TObject);beginifMessageDlg('WelcometomyDelphiapplication.Exitnow?',mtConfirmation,[mbYes,mbNo],0)=mrYesthenbeginMessageDlg('ExitingtheDelphiapplication.',mtConfirmation,[mbOk,mbno,mbyes],0);Close;end;end;2.MessageDlgPos函數:functionMessageDlgPos(ConstMsg:String;
AType:TmsgDlgType;
Abuttons:TmsgDlgButton;
HelpCtx:longint;
X,Y:Integer):Word;
與MessageDlg函數作用相同,區別在于MessageDlgPos函數可用X、Y表明消息框左上角的坐標。3.ShowMessage過程:
procedureShowMessage(ConstMsg:String)。
用于顯示一個帶有[OK]按鈕的消息框,其中Msg為顯示內容。4.ShowMessagePos過程:
procedureShowMessagePos(ConstMsg:String;X,Y:Integer)。
與ShowMessage過程作用相同,區別在于ShowMessagePos過程可用X、Y表明消息框左上角的坐標。5.9.2輸入框
所謂輸入框,指的是帶有一個編輯框、用于輸入簡單字符串信息的一些簡單對話框。
輸入框的顯示同樣無須使用對話框組件,Delphi提供了兩個函數用于顯示輸入框。1.InputBox函數:functionInputBox(ConstACaption:String;
Aprompt,Adefault:String):String;例:procedureTForm1.Button1Click(Sender:TObject);varInputString:string;beginInputString:=InputBox('InputBox','Prompt','Default
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年生涯規劃與發展教育考試試卷及答案
- 2025年時事政治與國際關系考試試卷及答案
- 2025年旅游管理師考試試卷及答案
- 2025年量子物理學考試試卷及答案
- 2025年安全工程師職業資格考試試題及答案
- 2025年甘肅省中考化學試題卷(含答案)
- 特殊藥品勾兌管理制度
- 特殊設備使用管理制度
- 獵頭客戶合同管理制度
- 2025中國郵政集團有限公司黑龍江省分公司招聘筆試模擬試題及參考答案詳解一套
- (2025)國家公務員考試時事政治必考試題庫與答案
- 2025影視拍攝場地布置合同協議書
- 2017司考題目及答案
- 2025年D-對羥基苯甘氨酸項目市場調查研究報告
- 國泰君安補簽風險協議書
- 防排煙系統設計畢業答辯
- 2025年人工智能應用技術職業資格考試試卷及答案
- 2025年一級建造師《市政實務》考點精粹
- 融資專員測試題及答案
- 河北秦皇島事業單位招聘中小學教師類D類考試模擬題帶答案2024年
- T-ZZB 2218-2021 燃氣用具脈沖點火器
評論
0/150
提交評論