




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗四 Delphi組件應用綜合實驗指導實驗目的 掌握公共對話框組件的屬性、事件及應用方法。 掌握應用程序界面設計方法。 掌握基本組件的綜合應用。 掌握常用函數的應用。實驗內容 設計一個文本編輯器實驗要求 參照windows記事本程序,編寫類似的程序。要求應用公共對話框、菜單組件、工具欄組件、備注框組件,完成菜單設計,工具欄設計,實現文件打開、保存、關閉、文字編輯(修改、查找、替換),文字格式設置等功能,保證主菜單、彈出式菜單、工具欄同步。 此編輯器主要由一個主菜單,一個工具欄,和一個快捷菜單組成,主要功能如下:主菜單:文件(新建,保存,另存為,打開,打印,退出),編輯(剪切,復制,黏貼,刪除
2、,查找,替換),更改(字體,背景),關于(是對此程序的制造者說明)。工具欄:保存,新建,打開,打印,字體,粗體,斜體,下劃線。此工具欄是讓用戶更方便地使用按鍵。快捷菜單:復制,剪切,黏貼。可以自行設計其他功能,完善文本編輯器。1、 代碼實現unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ComCtrls, ImgList, ToolWin, ExtDlgs;type TForm1 = clas
3、s(TForm) MainMenu1: TMainMenu; E1: TMenuItem; O1: TMenuItem; V1: TMenuItem; N3: TMenuItem; C1: TMenuItem; P2: TMenuItem; F2: TMenuItem; R1: TMenuItem; W1: TMenuItem; N4: TMenuItem; N5: TMenuItem; N1: TMenuItem; N2: TMenuItem; O2: TMenuItem; S1: TMenuItem; A1: TMenuItem; U1: TMenuItem; P1: TMenuItem;
4、 X1: TMenuItem; N6: TMenuItem; N7: TMenuItem; PopupMenu1: TPopupMenu; Edit1: TEdit; ToolBar1: TToolBar; ImageList1: TImageList; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TTo
5、olButton; ToolButton8: TToolButton; ToolButton9: TToolButton; ToolButton10: TToolButton; ToolButton11: TToolButton; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; N13: TMenuItem; N14: TMenuItem; N15: TMenuItem; N16: TMenuItem; N17: TMenuItem; N18: TMenuItem; N19: TMenu
6、Item; N20: TMenuItem; FontDialog1: TFontDialog; ColorDialog1: TColorDialog; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; PrintDialog1: TPrintDialog; FindDialog1: TFindDialog; ReplaceDialog1: TReplaceDialog; PageSetupDialog1: TPageSetupDialog; Memo1: TMemo; D1: TMenuItem; L1: TMenuItem; w2: TM
7、enuItem; procedure ToolButton8Click(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure ToolButton10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N16Click(Sender: TObject); procedu
8、re N17Click(Sender: TObject); procedure N18Click(Sender: TObject); procedure N19Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure C1Click(Sender: TObject); procedure P2Click(Sender: TObject); procedure Memo1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y:
9、Integer); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure ToolButton11Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure P1Click(Sender: TObject); procedure
10、 A1Click(Sender: TObject); procedure N20Click(Sender: TObject); procedure X1Click(Sender: TObject); procedure U1Click(Sender: TObject); procedure R1Click(Sender: TObject); procedure F2Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); pr
11、ocedure O2Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure S1Click(Sender: TObject); procedure N14Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure D1Click(Sender: TObject); procedure L1Click(Sender: TObject); / procedure
12、N21Click(Sender: TObject); procedure FindDialog1Find(Sender: TObject); procedure ReplaceDialog1Replace(Sender: TObject); procedure ReplaceDialog1Find(Sender: TObject); private Private declarations public Public declarations end;var Form1: TForm1; filename:string;implementation$R *.dfm procedure TFor
13、m1.Memo1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); /鼠標選中文本,剪切,復制,等按鈕才生效beginif memo1.SelLength0 thenbegin n3.Enabled:=true; C1.Enabled:=true; n8.Enabled:=true; n9.Enabled:=true; D1.Enabled:=true; L1.Enabled:=true; end else begin n3.Enabled:=false; C1.Enabled:=
14、false; n8.Enabled:=false; n9.Enabled:=false; D1.Enabled:=false; L1.Enabled:=false; end; end;procedure TForm1.N2Click(Sender: TObject); /新建(主菜單)begin if (memo1.Lines.Text) then begin if MessageDlg(記事本中還有文本內容未保存,是否保存?,mtWarning,mbyes,mbno,0)=mrok then ToolButton1.Click ; end; memo1.clear;end;procedure
15、 TForm1.O2Click(Sender: TObject); /打開(主菜單)begin if OpenDialog1.Execute then memo1.lines.LoadfromFile(OpenDialog1.Filename);/把在打開文件對話框中選中的文件裝載到 文本框中end;procedure TForm1.S1Click(Sender: TObject); /保存(主菜單)begin if filename= thenbeginif savedialog1.Execute thenbeginmemo1.Lines.SaveToFile(savedialog1.Fil
16、eName);filename:=savedialog1.filename;endendelse memo1.Lines.SaveToFile(savedialog1.FileName); / 把文件保存到已打開的文本中end;procedure TForm1.A1Click(Sender: TObject); / 另存為(主菜單)begin if savedialog1.Execute thenbeginmemo1.Lines.SaveToFile(savedialog1.FileName);filename:=savedialog1.filename; end;end;procedure
17、TForm1.U1Click(Sender: TObject); /頁面設置(主菜單)?begin PagesetupDialog1.Execute;end;procedure TForm1.P1Click(Sender: TObject); /打印(主菜單)begin PrintDialog1.Execute;end;procedure TForm1.X1Click(Sender: TObject); /退出begin close;end;procedure TForm1.N3Click(Sender: TObject); /剪切 (主菜單)beginmemo1.CutToClipboard
18、;n3.Enabled:=false;C1.Enabled:=false;n8.Enabled:=false;n9.Enabled:=false;end;procedure TForm1.C1Click(Sender: TObject); /復制 (主菜單)begin memo1.CutToClipboard; n3.Enabled:=false; C1.Enabled:=false; n8.Enabled:=false; n9.Enabled:=false;end;procedure TForm1.P2Click(Sender: TObject); /粘貼 (主菜單)beginmemo1.P
19、asteFromClipboard;end;procedure TForm1.F2Click(Sender: TObject); /查找(主菜單)? ?begin /FindDialog1.Execute; /FindDialog1.Position:=Point(memo1.Left+memo1.Top,memo1.Width);/memo1.Lines.Text:=FindDialog.FindText;end; procedure TForm1.R1Click(Sender: TObject); /替換(主菜單)? ?begin ReplaceDialog1.Execute;end; p
20、rocedure TForm1.N11Click(Sender: TObject); /字體-粗體(主菜單)begin if memo1.font.Style*fsbold= then begin memo1.font.Style:=memo1.Font.Style+fsbold; n11.checked:=true; ToolButton8.Down:=true; end else begin memo1.font.Style:=memo1.Font.Style-fsbold; n11.checked:=false; ToolButton8.Down:=false; end;end;proc
21、edure TForm1.N12Click(Sender: TObject); /字體-斜體(主菜單)begin if memo1.font.Style*fsitalic= then begin:=memo1.Font.Style+fsitalic; n12.checked:=true; ToolButton9.Down:=true; end else begin memo1.font.Style:=memo1.Font.Style-fsitalic; n12.checked:=false; ToolButton9.Down:=false; end;end;procedure TForm1.N
22、15Click(Sender: TObject); /背景色-銀色(主菜單)begin memo1.color:=clsilver;end;procedure TForm1.N16Click(Sender: TObject); /背景色-灰色(主菜單)beginmemo1.color:=clgray;end;procedure TForm1.N17Click(Sender: TObject); /背景色-黑色(主菜單)begin memo1.color:=clblack;end;procedure TForm1.N18Click(Sender: TObject); /背景色-紅色(主菜單)be
23、gin memo1.color:=clred;end;procedure TForm1.N19Click(Sender: TObject); /背景色-白色(主菜單)begin memo1.color:=clwhite;end;procedure TForm1.N20Click(Sender: TObject); /字體顏色 (主菜單)begin with ColorDialog1 do if execute then memo1.Font.Color:=ColorDialog1.Color;end;procedure TForm1.ToolButton1Click(Sender: TObje
24、ct); /保存(工具欄)beginS1.Click;end;procedure TForm1.ToolButton2Click(Sender: TObject); / 新建文件(工具欄)begin if (memo1.Lines.Text) then begin if MessageDlg(記事本中還有文本內容未保存,是否保存?,mtWarning,mbyes,mbno,0)=mrok then ToolButton1.Click ; end; memo1.clear;end;procedure TForm1.ToolButton3Click(Sender: TObject); /打開(工具
25、欄)begin if OpenDialog1.Execute=true thenfromFile(OpenDialog1.Filename);/把在 打開文件對話框中選中的文件裝載到 文本框中end;procedure TForm1.ToolButton5Click(Sender: TObject); /打印(工具欄)begin PrintDialog1.Execute;end; procedure TForm1.ToolButton11Click(Sender: TObject);/字體(工具欄)begin FontDialog1.font:=memo1.Font; with FontDia
26、log1 do if execute then memo1.Font:=FontDialog1.Font;end;procedure TForm1.ToolButton8Click(Sender: TObject); /粗體 (工具欄)begin if memo1.font.Style*fsbold= then begin memo1.font.Style:=memo1.Font.Style+fsbold; n11.checked:=true; ToolButton8.Down:=true; end else begin memo1.font.Style:=memo1.Font.Style-f
27、sbold; n11.checked:=false; ToolButton8.Down:=false; end;end;procedure TForm1.ToolButton9Click(Sender: TObject); /斜體 (工具欄)begin if memo1.font.Style*fsitalic= then begin memo1.font.Style:=memo1.Font.Style+fsitalic; n12.checked:=true; ToolButton9.Down:=true; end else begin memo1.font.Style:=memo1.Font.
28、Style-fsitalic; n12.checked:=false; ToolButton9.Down:=false; end;end;procedure TForm1.ToolButton10Click(Sender: TObject); /下劃線 (工具欄)begin if memo1.font.Style*fsunderline= then begin memo1.font.Style:=memo1.Font.Style+fsunderline; ToolButton10.Down:=true; end else begin memo1.font.Style:=memo1.Font.S
29、tyle-fsunderline; ToolButton10.Down:=false; end;end;procedure TForm1.N8Click(Sender: TObject); /復制(彈出式菜單)begin memo1.CutToClipboard;n3.Enabled:=false;C1.Enabled:=false;n8.Enabled:=false;n9.Enabled:=false;end;procedure TForm1.N9Click(Sender: TObject); /剪切(彈出式菜單)beginmemo1.CutToClipboard;n3.Enabled:=f
30、alse;C1.Enabled:=false;n8.Enabled:=false;n9.Enabled:=false;end;procedure TForm1.N10Click(Sender: TObject); /粘貼(彈出式菜單)begin memo1.PasteFromClipboard;end;procedure TForm1.N13Click(Sender: TObject); /查找(彈出式菜單)?begin FindDialog1.Execute; memo1.SelStart:=0;end;procedure TForm1.N14Click(Sender: TObject);
31、/替換(彈出式菜單) ?begin ReplaceDialog1.Execute; memo1.SelStart:=0;end; procedure TForm1.N5Click(Sender: TObject);begin showmessage(歡迎使用本程序!+#13編者姓名:盧慧琳);end;procedure TForm1.D1Click(Sender: TObject);beginmemo1.SelText:=;end;procedure TForm1.L1Click(Sender: TObject);begin memo1.SelText:=;end;procedure TFor
32、m1.FindDialog1Find(Sender: TObject); /查找Varselpos,startpos,toend:integer;t:string;beginstartpos:=memo1.SelStart+memo1.SelLength+1;toend:=Length(memo1.lines.Text)-startpos+1;t:=copy(memo1.Lines.Text,startpos,toend);selpos:=pos(finddialog1.FindText,t);if selpos0 thenbeginselpos:=selpos+startpos-1;memo
33、1.setfocus;memo1.SelStart:=selpos-1;memo1.SelLength:=Length(FindDialog1.FindText);endelse showmessage(不能找到+finddialog1.findtext);end; procedure TForm1.N21Click(Sender: TObject); /查找下一個begin if finddialog1.FindText= then finddialog1.Execute else finddialog1Find(sender);end; procedure TForm1.ReplaceDi
34、alog1Replace(Sender: TObject);var selpos:integer;begin selpos:=Pos(ReplaceDialog1.FindText ,Memo1.Lines.Text ); if selpos0 then begin Memo1.SelStart :=selpos-1; Memo1.SelLength :=Length(ReplaceDialog1.FindText ); Memo1.SelText :=ReplaceDialog1.ReplaceText ; end else showmessage(不能找到+ReplaceDialog1.F
35、indText);end;procedure TForm1.ReplaceDialog1Find(Sender: TObject);beginForm1.FindDialog1Find(Sender);end;end.unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, ComCtrls, ImgList, ToolWin, ExtDlgs;type TForm1 = class(TForm) Ma
36、inMenu1: TMainMenu; E1: TMenuItem; O1: TMenuItem; V1: TMenuItem; N3: TMenuItem; C1: TMenuItem; P2: TMenuItem; F2: TMenuItem; R1: TMenuItem; W1: TMenuItem; N4: TMenuItem; N5: TMenuItem; N1: TMenuItem; N2: TMenuItem; O2: TMenuItem; S1: TMenuItem; A1: TMenuItem; U1: TMenuItem; P1: TMenuItem; X1: TMenuI
37、tem; N6: TMenuItem; N7: TMenuItem; PopupMenu1: TPopupMenu; Edit1: TEdit; ToolBar1: TToolBar; ImageList1: TImageList; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; ToolButton6: TToolButton; ToolButton7: TToolButton; T
38、oolButton8: TToolButton; ToolButton9: TToolButton; ToolButton10: TToolButton; ToolButton11: TToolButton; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; N12: TMenuItem; N13: TMenuItem; N14: TMenuItem; N15: TMenuItem; N16: TMenuItem; N17: TMenuItem; N18: TMenuItem; N19: TMenuItem; N20:
39、TMenuItem; FontDialog1: TFontDialog; ColorDialog1: TColorDialog; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; PrintDialog1: TPrintDialog; FindDialog1: TFindDialog; ReplaceDialog1: TReplaceDialog; PageSetupDialog1: TPageSetupDialog; Memo1: TMemo; D1: TMenuItem; L1: TMenuItem; w2: TMenuItem; pr
40、ocedure ToolButton8Click(Sender: TObject); procedure ToolButton9Click(Sender: TObject); procedure ToolButton10Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N16Click(Sender: TObject); procedure N17Click
41、(Sender: TObject); procedure N18Click(Sender: TObject); procedure N19Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure C1Click(Sender: TObject); procedure P2Click(Sender: TObject); procedure Memo1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); p
42、rocedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure ToolButton11Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton5Click(Sender: TObject); procedure P1Click(Sender: TObject); procedure A1Click(Se
43、nder: TObject); procedure N20Click(Sender: TObject); procedure X1Click(Sender: TObject); procedure U1Click(Sender: TObject); procedure R1Click(Sender: TObject); procedure F2Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure O2C
44、lick(Sender: TObject); procedure N2Click(Sender: TObject); procedure S1Click(Sender: TObject); procedure N14Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure D1Click(Sender: TObject); procedure L1Click(Sender: TObject); / procedure N21Click(Se
45、nder: TObject); procedure FindDialog1Find(Sender: TObject); procedure ReplaceDialog1Replace(Sender: TObject); procedure ReplaceDialog1Find(Sender: TObject); private Private declarations public Public declarations end;var Form1: TForm1; filename:string;implementation$R *.dfm procedure TForm1.Memo1Mou
46、seUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); /鼠標選中文本,剪切,復制,等按鈕才生效beginif memo1.SelLength0 thenbegin n3.Enabled:=true; C1.Enabled:=true; n8.Enabled:=true; n9.Enabled:=true; D1.Enabled:=true; L1.Enabled:=true; end else begin n3.Enabled:=false; C1.Enabled:=false; n8.E
47、nabled:=false; n9.Enabled:=false; D1.Enabled:=false; L1.Enabled:=false; end; end;procedure TForm1.N2Click(Sender: TObject); /新建(主菜單)begin if (memo1.Lines.Text) then begin if MessageDlg(記事本中還有文本內容未保存,是否保存?,mtWarning,mbyes,mbno,0)=mrok then ToolButton1.Click ; end; memo1.clear;end;procedure TForm1.O2C
48、lick(Sender: TObject); /打開(主菜單)begin if OpenDialog1.Execute then memo1.lines.LoadfromFile(OpenDialog1.Filename);/把在打開文件對話框中選中的文件裝載到 文本框中end;procedure TForm1.S1Click(Sender: TObject); /保存(主菜單)begin if filename= thenbeginif savedialog1.Execute thenbeginmemo1.Lines.SaveToFile(savedialog1.FileName);file
49、name:=savedialog1.filename;endendelse memo1.Lines.SaveToFile(savedialog1.FileName); / 把文件保存到已打開的文本中end;procedure TForm1.A1Click(Sender: TObject); / 另存為(主菜單)begin if savedialog1.Execute thenbeginmemo1.Lines.SaveToFile(savedialog1.FileName);filename:=savedialog1.filename; end;end;procedure TForm1.U1Cl
50、ick(Sender: TObject); /頁面設置(主菜單)begin PagesetupDialog1.Execute;end;procedure TForm1.P1Click(Sender: TObject); /打印(主菜單)begin PrintDialog1.Execute;end;procedure TForm1.X1Click(Sender: TObject); /退出begin close;end;procedure TForm1.N3Click(Sender: TObject); /剪切 (主菜單)beginmemo1.CutToClipboard;n3.Enabled:=false;C1.Enabled:=false;n8.Enabled:=false;n9.Enabled:=false;end;procedure TForm1.C1Click(Sender: TObject); /復制 (主菜單)begin memo1.CutToClipboard; n3.Enabled:=false; C1.Enabled:=false; n8.Enabled:=false; n9.Enabled:=false;end;procedure TForm1.P
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微信支付服務合同協議
- 商業充電樁購買合同協議
- 2025租房合同律師示范文本
- 民兵訓練餐飲保障合同協議
- 品勝代理合同協議
- 2025建設用地長期租賃合同
- 2025關于如何確定合同履行期限
- 和裝修公司合同協議
- 《調養·淺認識》課件
- 商品進貨購銷合同協議
- 期中檢測卷2023-2024學年人教版數學八年級下冊
- 譯林版七年級下冊英語單詞默寫表
- 2024年北京城市排水集團有限責任公司招聘筆試參考題庫含答案解析
- 湘教版高中地理必修二區域發展戰略教學課件
- 《建筑工程概算》課件
- 年產16萬噸赤蘚糖醇項目建議書
- 基層綜合治理法律培訓課件
- 三軸攪拌樁驗收要求
- 2024年云南交投集團招聘筆試參考題庫含答案解析
- 高大支架坍塌事故原因分析及預防措施
- 跨境數據傳輸與安全保護
評論
0/150
提交評論