




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
對話框設(shè)計
幾乎所有的Windows應用程序都借助于對話框和用戶進行交流,對話框本質(zhì)是一種窗口,不但可以接受消息,還能移動和關(guān)閉。Delphi應用程序可使用三種對話框。
1、由Delphi自動提供的對話框組件:
如打開文件對話框、文件保存對話框、字體對話框、顏色對話框、查找對話框和替換對話框等。
2、Delphi預定義的標準對話框,包括消息框和輸入框.可用函數(shù)和過程調(diào)用的形式來顯示這些對話框。3、用戶自己設(shè)計的對話框。Delphi的公共對話框組件都是從抽象的TCommonDialog繼承下來的,而TCommonDialog又是從TComponent繼承下來的。因此,這些對話框組件都是非可視的。
在設(shè)計期,把這些公共對話框組件加到Form上后,看到的是這些對話框組件的圖標。只有調(diào)用這些對話框的Execute()方法,才能在運行期看到真正的對話框。5.1“打開”對話框組件“打開”對話框,是用來打開文件的對話框,是用TOpenDialog組件實現(xiàn)的。常用屬性:DefaultExt屬性:用于指定一個默認的擴展名。FileName屬性:指定一個文件名。在打開對話框時,這個文件名出現(xiàn)在對話框的“文件名”框中。Filter屬性:設(shè)置文件過濾器,讓對話框只列出特定類型的文件。表中Filername是對類型的文字描述,filer列出文件的實際類型,如:執(zhí)行文件:*.exe.
單擊Filter屬性右側(cè)的省略號按鈕,可打開FilterEditor對話框,從中定義Filter屬性。FilterIndex屬性:如果有多個過濾器,這個屬性用于指定一個作為默認過濾器。(上圖有三個過濾器)InitialDir屬性:默認情況下,對話框打開時,文件列表中顯示的是當前目錄的文件??梢栽O(shè)置這個屬性指定另外一個目錄。Title屬性:用于設(shè)置對話框的標題。例: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;
它的外觀與一般的“打開”對話框很相似,只是增加了一個預覽區(qū)域。當用戶選擇圖像文件時,預覽區(qū)域就顯示用戶所選擇的圖像,并且顯示該圖像的大小。
單擊對話框上的[放大鏡]按鈕,可以放大顯示圖像??梢灶A覽的圖像格式有BMP、ICO、WMF和EMF,如果是其他格式的圖像,預覽區(qū)域?qū)@示“(None)”。(若要選擇所有類型圖片,可在過濾器中輸入“*.*”)例:procedureTForm1.Button1Click(Sender:TObject);beginwithOpenDialog1dobeginFilter:='文本文件(*.txt)|*.txt';DefaultExt:='txt';FileName:='';ifExecutethenifofExtensionDifferentinOptionsthenMessageDlg('這不是文本文件!',mtError,[mbOK],0)ElseMemo1.Lines.LoadFromFile(FileName);end;end;5.2“保存”對話框組件“保存”對話框組件的屬性以及界面和“打開”對話框幾乎一樣。與[打開]對話框一樣,[保存]對話框也有一個帶圖像預覽的“保存”對話框,是用TSavePictureDialog元件實現(xiàn)的。
在保存圖像文件時,可以在對話框中預覽圖像。
TSavsPictureDialog的直接上級是TOpenPictureDialog。
它的特性、方法和事件與TOpenPictureDialog組件完全相同。它的外觀與一般的“另存為”對話框很相似,只是增加了一個預覽區(qū)域。
圖象的用法和格式同TOpenPictureDialog。例:procedureTForm1.Button2Click(Sender:TObject);beginwithSaveDialog1doifExecutethenbeginMemo1.Lines.SaveToFile(FileName);Memo1.Modified:=False;//上面語句表示存儲框的內(nèi)容無改變
end;end;6.3“字體”對話框組件
大多數(shù)文本編輯軟件都提供用戶使用“字體”對話框,用于設(shè)置選定文本的字體、字號、字形、字色等。
為了方便用戶,Delphi預定義了FontDialog組件。
常用屬性和事件:Device屬性:用于設(shè)置從哪兒檢索可用的字體。(可選項有fdScreen/屏幕、fdPrinter/打印機、fdBoth/兩者)。
OnApply事件:當OnApply事件被定義后,[字體]對話框會出現(xiàn)[應用]按鈕,當用戶按下[應用]按鈕時將觸發(fā)這個事件。
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“顏色”對話框組件[顏色]對話框用于設(shè)置選定對象的前景色和背景色,是用TColorDialog組件實現(xiàn)的。例:procedureTForm1.Button4Click(Sender:TObject);beginwithColorDialog1dobeginColor:=Memo1.Color;ifExecutethenMemo1.Color:=Color;end;end;5.5“打印”對話框組件“打印”對話框是用TPrintDialog組件實現(xiàn)的。
它能讓用戶選擇使用哪臺打印機、設(shè)置打印機的屬性、選擇頁的范圍、設(shè)置打印份數(shù)等。“打印”組件的常用屬性有:Collate:若該屬性為True,對話框中的“分頁”復選框就被選中。Copies:設(shè)置打印的份數(shù)。FromPage、ToPage:設(shè)置打印范圍的起始頁碼和結(jié)束頁碼。PrintToFile:打印作業(yè)被輸出到一個文件而不是到打印機上。例:procedureTForm1.Button5Click(Sender:TObject);beginwithPrintDialog1dobeginOptions:=[poPrintToFile];PrintToFile:=True;ifExecutethenbeginifPrintTofilethenbeginSaveDialog1.Title:='打印到文件:';
ifSaveDialog1.ExecutethenMemo1.Lines.SaveToFile(SaveDialog1.FileName);endend;end;end;5.6“打印設(shè)置”和“頁面設(shè)置”對話框
“打印設(shè)置”對話框是用TPrinterSetupDialog組件實現(xiàn)的。“頁面設(shè)置”對話框是用TPageSetupDialog組件實現(xiàn)的。例:procedureTForm1.Button6Click(Sender:TObject);beginwithPrinterSetupDialog1dobeginExecute;end;end;procedureTForm1.Button9Click(Sender:TObject);beginwithPageSetupDialog1dobeginExecute;end;end;5.7“查找”對話框組件[查找]對話框用于查找指定字符串。
在[查找]對話框中有一個[找下一個]按鈕,單擊該按鈕就可以開始對指定字符串的查找。這是通過調(diào)用FindDialog組件的OnFind事件的響應過程來實現(xiàn)的。
例:為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。查找單個內(nèi)容并替換程序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預定義的又一系列對話框,用于顯示各種信息。以及接收簡單的用戶輸入,稱為標準對話框。這些對話框無須使用對話框組件,簡單地調(diào)用函數(shù)或過程就能實現(xiàn)。5.9.1消息框
所謂消息框,指的是顯示提示信息的一些簡單對話框。這些對話框無須用戶任何輸入,只需簡單地確認或取消即可。
消息框的顯示無須使用對話框組件,Delphi用兩個函數(shù)、兩個過程用來顯示消息框:1.MessageDlg函數(shù):用于在屏幕中央顯示提示信息。functionMessageDlg(ConstMsg:String;
Atype:TmsgDlgType;
AButtons:TMsgDlgButtons;
HelpCtx:Longint):Word;
其中:·Msg參數(shù):顯示內(nèi)容?!Type參數(shù):決定消息框的類型,有mtInformation、mtError、mtWarning、mtConfirmation幾種類型。
AButtons參數(shù):決定消息框中顯示的位圖按鈕,可由一系列子參數(shù)組成,每一參數(shù)代表一位圖按鈕,如mbYes、mbNo、mbOK、mbCancel等?!elpCrt參數(shù):決定消息框使用哪個幫助屏幕。
例:procedureTForm1.Button9Click(Sender:TObject);beginifMessageDlg('WelcometomyDelphiapplication.Exitnow?',mtConfirmation,[mbYes,mbNo],0)=mrYesthenbeginMessageDlg('ExitingtheDelphiapplication.',mtConfirmation,[mbOk,mbno,mbyes],0);Close;end;end;2.MessageDlgPos函數(shù):functionMessageDlgPos(ConstMsg:String;
AType:TmsgDlgType;
Abuttons:TmsgDlgButton;
HelpCtx:longint;
X,Y:Integer):Word;
與MessageDlg函數(shù)作用相同,區(qū)別在于MessageDlgPos函數(shù)可用X、Y表明消息框左上角的坐標。3.ShowMessage過程:
procedureShowMessage(ConstMsg:String)。
用于顯示一個帶有[OK]按鈕的消息框,其中Msg為顯示內(nèi)容。4.ShowMessagePos過程:
procedureShowMessagePos(ConstMsg:String;X,Y:Integer)。
與ShowMessage過程作用相同,區(qū)別在于ShowMessagePos過程可用X、Y表明消息框左上角的坐標。5.9.2輸入框
所謂輸入框,指的是帶有一個編輯框、用于輸入簡單字符串信息的一些簡單對話框。
輸入框的顯示同樣無須使用對話框組件,Delphi提供了兩個函數(shù)用于顯示輸入框。1.InputBox函數(shù):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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中心校2025年教育工作匯報材料
- 2025年終工作感悟總結(jié)報告10篇
- 2024年天津市寧河區(qū)中醫(yī)醫(yī)院招聘考試真題
- 2024年玉林市陸川縣招聘特崗教師筆試真題
- 2024年青海省從村黨組織書記中考錄鄉(xiāng)鎮(zhèn)公務(wù)員筆試真題
- 2024-2025學年石家莊工商職業(yè)學院單招《職業(yè)適應性測試》考前沖刺練習附答案詳解【完整版】
- 數(shù)字出版專業(yè)教學標準(高等職業(yè)教育專科)2025修訂
- 小學微課培訓教學設(shè)計
- 大班健康動一動教案
- 粘土貓咪美術(shù)課件
- 2024-2025 學年八年級英語下學期期末模擬卷 (常州專用)解析卷
- 航空發(fā)動機關(guān)鍵部件項目運營管理手冊(范文)
- 2025年中國社區(qū)O2O商業(yè)模式市場分析報告
- 高考語文專題復習 -語用新題型得名方式、構(gòu)詞方式辨析
- 預防強對流天氣安全教育
- 高低壓變配電工程方案投標文件(技術(shù)方案)
- 浙江省人教版小學一年級語文單元試卷
- 淋巴水腫??谱o士培訓匯報
- 2025年ASQ質(zhì)量經(jīng)理(CMQ.OE)認證考試練習題庫(350題)
- 2025五級應急救援員職業(yè)技能精練考試題庫及答案(濃縮400題)
- 城軌列控基礎(chǔ)設(shè)備列車測速裝置課件
評論
0/150
提交評論