Delphi的對(duì)話框設(shè)計(jì)課件_第1頁
Delphi的對(duì)話框設(shè)計(jì)課件_第2頁
Delphi的對(duì)話框設(shè)計(jì)課件_第3頁
Delphi的對(duì)話框設(shè)計(jì)課件_第4頁
Delphi的對(duì)話框設(shè)計(jì)課件_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

對(duì)話框設(shè)計(jì)

幾乎所有的Windows應(yīng)用程序都借助于對(duì)話框和用戶進(jìn)行交流,對(duì)話框本質(zhì)是一種窗口,不但可以接受消息,還能移動(dòng)和關(guān)閉。Delphi應(yīng)用程序可使用三種對(duì)話框。

1、由Delphi自動(dòng)提供的對(duì)話框組件:

如打開文件對(duì)話框、文件保存對(duì)話框、字體對(duì)話框、顏色對(duì)話框、查找對(duì)話框和替換對(duì)話框等。

2、Delphi預(yù)定義的標(biāo)準(zhǔn)對(duì)話框,包括消息框和輸入框.可用函數(shù)和過程調(diào)用的形式來顯示這些對(duì)話框。3、用戶自己設(shè)計(jì)的對(duì)話框。Delphi的公共對(duì)話框組件都是從抽象的TCommonDialog繼承下來的,而TCommonDialog又是從TComponent繼承下來的。因此,這些對(duì)話框組件都是非可視的。

在設(shè)計(jì)期,把這些公共對(duì)話框組件加到Form上后,看到的是這些對(duì)話框組件的圖標(biāo)。只有調(diào)用這些對(duì)話框的Execute()方法,才能在運(yùn)行期看到真正的對(duì)話框。5.1“打開”對(duì)話框組件“打開”對(duì)話框,是用來打開文件的對(duì)話框,是用TOpenDialog組件實(shí)現(xiàn)的。常用屬性:DefaultExt屬性:用于指定一個(gè)默認(rèn)的擴(kuò)展名。FileName屬性:指定一個(gè)文件名。在打開對(duì)話框時(shí),這個(gè)文件名出現(xiàn)在對(duì)話框的“文件名”框中。Filter屬性:設(shè)置文件過濾器,讓對(duì)話框只列出特定類型的文件。表中Filername是對(duì)類型的文字描述,filer列出文件的實(shí)際類型,如:執(zhí)行文件:*.exe.

單擊Filter屬性右側(cè)的省略號(hào)按鈕,可打開FilterEditor對(duì)話框,從中定義Filter屬性。FilterIndex屬性:如果有多個(gè)過濾器,這個(gè)屬性用于指定一個(gè)作為默認(rèn)過濾器。(上圖有三個(gè)過濾器)InitialDir屬性:默認(rèn)情況下,對(duì)話框打開時(shí),文件列表中顯示的是當(dāng)前目錄的文件。可以設(shè)置這個(gè)屬性指定另外一個(gè)目錄。Title屬性:用于設(shè)置對(duì)話框的標(biāo)題。例:procedureTForm1.Button1Click(Sender:TObject);beginOpenDialog1.Filter:='文本文件|*.txt';OpenDialog1.FileName:='';ifOpenDialog1.Executethenmemo1.Lines.LoadFromFile(OpenDialog1.FileName);

end;

另外TOpenDialog組件有一組Options屬性,缺省時(shí)它們的取值均為False。

TOpenPictureDialog的直接上級(jí)是TOpenDialog,它的特性、方法和事件與TOpenDialog全相同。在一個(gè)Timage組件中加入圖片程序如下:procedureTForm1.Button2Click(Sender:TObject);beginOpenPictureDialog1.Filter:='圖片|*.jpg;*.bmp';OpenPictureDialog1.Options:=[ofOldStyleDialog];ifOpenPictureDialog1.Executethenbeginshowmessage(OpenPictureDialog1.FileName);image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);end;end;

它的外觀與一般的“打開”對(duì)話框很相似,只是增加了一個(gè)預(yù)覽區(qū)域。當(dāng)用戶選擇圖像文件時(shí),預(yù)覽區(qū)域就顯示用戶所選擇的圖像,并且顯示該圖像的大小。

單擊對(duì)話框上的[放大鏡]按鈕,可以放大顯示圖像。可以預(yù)覽的圖像格式有BMP、ICO、WMF和EMF,如果是其他格式的圖像,預(yù)覽區(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“保存”對(duì)話框組件“保存”對(duì)話框組件的屬性以及界面和“打開”對(duì)話框幾乎一樣。與[打開]對(duì)話框一樣,[保存]對(duì)話框也有一個(gè)帶圖像預(yù)覽的“保存”對(duì)話框,是用TSavePictureDialog元件實(shí)現(xiàn)的。

在保存圖像文件時(shí),可以在對(duì)話框中預(yù)覽圖像。

TSavsPictureDialog的直接上級(jí)是TOpenPictureDialog。

它的特性、方法和事件與TOpenPictureDialog組件完全相同。它的外觀與一般的“另存為”對(duì)話框很相似,只是增加了一個(gè)預(yù)覽區(qū)域。

圖象的用法和格式同TOpenPictureDialog。例:procedureTForm1.Button2Click(Sender:TObject);beginwithSaveDialog1doifExecutethenbeginMemo1.Lines.SaveToFile(FileName);Memo1.Modified:=False;//上面語句表示存儲(chǔ)框的內(nèi)容無改變

end;end;6.3“字體”對(duì)話框組件

大多數(shù)文本編輯軟件都提供用戶使用“字體”對(duì)話框,用于設(shè)置選定文本的字體、字號(hào)、字形、字色等。

為了方便用戶,Delphi預(yù)定義了FontDialog組件。

常用屬性和事件:Device屬性:用于設(shè)置從哪兒檢索可用的字體。(可選項(xiàng)有fdScreen/屏幕、fdPrinter/打印機(jī)、fdBoth/兩者)。

OnApply事件:當(dāng)OnApply事件被定義后,[字體]對(duì)話框會(huì)出現(xiàn)[應(yīng)用]按鈕,當(dāng)用戶按下[應(yīng)用]按鈕時(shí)將觸發(fā)這個(gè)事件。

TFontDialog組件有一組Options屬性,缺省時(shí)它們的取值均為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“顏色”對(duì)話框組件[顏色]對(duì)話框用于設(shè)置選定對(duì)象的前景色和背景色,是用TColorDialog組件實(shí)現(xiàn)的。例:procedureTForm1.Button4Click(Sender:TObject);beginwithColorDialog1dobeginColor:=Memo1.Color;ifExecutethenMemo1.Color:=Color;end;end;5.5“打印”對(duì)話框組件“打印”對(duì)話框是用TPrintDialog組件實(shí)現(xiàn)的。

它能讓用戶選擇使用哪臺(tái)打印機(jī)、設(shè)置打印機(jī)的屬性、選擇頁的范圍、設(shè)置打印份數(shù)等?!按蛴 苯M件的常用屬性有:Collate:若該屬性為True,對(duì)話框中的“分頁”復(fù)選框就被選中。Copies:設(shè)置打印的份數(shù)。FromPage、ToPage:設(shè)置打印范圍的起始頁碼和結(jié)束頁碼。PrintToFile:打印作業(yè)被輸出到一個(gè)文件而不是到打印機(jī)上。例:procedureTForm1.Button5Click(Sender:TObject);beginwithPrintDialog1dobeginOptions:=[poPrintToFile];PrintToFile:=True;ifExecutethenbeginifPrintTofilethenbeginSaveDialog1.Title:='打印到文件:';

ifSaveDialog1.ExecutethenMemo1.Lines.SaveToFile(SaveDialog1.FileName);endend;end;end;5.6“打印設(shè)置”和“頁面設(shè)置”對(duì)話框

“打印設(shè)置”對(duì)話框是用TPrinterSetupDialog組件實(shí)現(xiàn)的?!绊撁嬖O(shè)置”對(duì)話框是用TPageSetupDialog組件實(shí)現(xiàn)的。例:procedureTForm1.Button6Click(Sender:TObject);beginwithPrinterSetupDialog1dobeginExecute;end;end;procedureTForm1.Button9Click(Sender:TObject);beginwithPageSetupDialog1dobeginExecute;end;end;5.7“查找”對(duì)話框組件[查找]對(duì)話框用于查找指定字符串。

在[查找]對(duì)話框中有一個(gè)[找下一個(gè)]按鈕,單擊該按鈕就可以開始對(duì)指定字符串的查找。這是通過調(diào)用FindDialog組件的OnFind事件的響應(yīng)過程來實(shí)現(xiàn)的。

例:為FindDialog1添加OnFind事件,事件響應(yīng)過程為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“替換”對(duì)話框組件

為ReplaceDialog1添加OnFind事件,事件響應(yīng)過程為ReplaceDialog1Find。查找單個(gè)內(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事件,事件響應(yīng)過程為RePlaceDialog1Replace:procedureTForm1.ReplaceDialog1Replace(Sender:TObject);beginifMemo1.SelText<>''then

Memo1.SelText:=ReplaceDialog1.ReplaceText;end;

最后為Button8([替換]按鈕)添加onClick事件。procedureTForm1.Button8Click(Sender:TObject);beginwithReplaceDialog1dobeginExecute;end;end;5.9標(biāo)準(zhǔn)對(duì)話框

消息框和輸入框是Delphi預(yù)定義的又一系列對(duì)話框,用于顯示各種信息。以及接收簡(jiǎn)單的用戶輸入,稱為標(biāo)準(zhǔn)對(duì)話框。這些對(duì)話框無須使用對(duì)話框組件,簡(jiǎn)單地調(diào)用函數(shù)或過程就能實(shí)現(xiàn)。5.9.1消息框

所謂消息框,指的是顯示提示信息的一些簡(jiǎn)單對(duì)話框。這些對(duì)話框無須用戶任何輸入,只需簡(jiǎn)單地確認(rèn)或取消即可。

消息框的顯示無須使用對(duì)話框組件,Delphi用兩個(gè)函數(shù)、兩個(gè)過程用來顯示消息框: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ù):決定消息框使用哪個(gè)幫助屏幕。

例: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表明消息框左上角的坐標(biāo)。3.ShowMessage過程:

procedureShowMessage(ConstMsg:String)。

用于顯示一個(gè)帶有[OK]按鈕的消息框,其中Msg為顯示內(nèi)容。4.ShowMessagePos過程:

procedureShowMessagePos(ConstMsg:String;X,Y:Integer)。

與ShowMessage過程作用相同,區(qū)別在于ShowMessagePos過程可用X、Y表明消息框左上角的坐標(biāo)。5.9.2輸入框

所謂輸入框,指的是帶有一個(gè)編輯框、用于輸入簡(jiǎn)單字符串信息的一些簡(jiǎn)單對(duì)話框。

輸入框的顯示同樣無須使用對(duì)話框組件,Delphi提供了兩個(gè)函數(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論