




免费预览已结束,剩余115页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Delphi程序设计 实验指导书适用对象:工商管理学院信息管理系本科班 实验一:第一个Delphi应用程序一、实验目的:通过编写一个简单的Delphi应用程序,使学生熟悉Delphi 7的集成开发环境,理解Delphi应用程序的基本框架。二、实验内容:编写一个简单的应用程序,如图1-1所示。程序运行后单击“点击我”按纽,将会在窗口出现一行文字,显示“这是我的第一个Delphi 程序”字样;单击“退出”按钮将会退出程序。图1-1 程序的运行结果三、背景知识DelPhi实际上是Object Pascal语言的一种版本,它与传统的Pascal语言有天壤之别。一个DelPhi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。默认的应用程序是一个空白的窗体(Form),它可以运行,结果得到一个空白的窗口,这个窗口具有Windows窗口的全部性质,即可以被放大缩小、移动、最大最小化等,但你却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。Delphi已经为你做好了一切基础工作程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。你所需要做的,只是在程序中加入完成所需功能的代码而已。在了解了Delphi 7的基本原理之后,用户就可以进行应用程序的开发了。Delphi应用程序开发的基本步骤为:(1)建立窗体;(2)在窗体上添加控件;(3)检查和设定对象属性;(4)编写响应事件处理程序:(5)保存文件;(6)编译运行。四、实验步骤1启动系统(1)单击Wndows系统的开始菜单,选择“程序”Borland Delphi 7Delphi 7,就可以启动Delphi应用程序,启动后的Delphi窗口如图l-2所示。(2)此时程序自动生成了一个窗体,名称为Forml,如果用户不小心关掉了窗体窗口,可以用File菜单下的 New Application命令创建一个新的应用文件。图1-2 Delphi 7的运行窗口此时Delphi自动生成的代码如下:unit Until;/单元文件名interface /接口关键字,用它来标识文件所调用的单元文件uses /使用的公共单元 Windows,Messages,SysUtils,Variants,Classes,Graphics;Controls,Forms, Dialogs;Type /定义程序所使用的控件以及控件所对应的事件 TFormlclass(TForm) Private /定义私有变量和私有过程 Private declarations public /定义公共变量和公共过程 Public declarations end;var /定义程序使用的公共变量 Form1: TForm1;Implementation /程序代码实现部分$R *.dfmend.这些自动生成的代码主要是定义一些程序的基本信息。其中第一行指明单元的名称为Untilpas,也就是单元将以Untilpas名称保存到存储器上。Interface主要是程序的接口部分,uses定义了程序要使用的系统单元,比如 Wndows、Messages等单元,这些单元将在后面有所介绍。Type部分主要用来声明程序所使用的公共变量以及系统控件等。这些将在第二篇详细介绍。最后Implementation部分是程序的具体实现内容,是需要程序员来编写代码的部分。2创建程序界面(1)在控件面板Standard选项中选择Button控作。 (2)选中之后,在窗体设计窗口中单击鼠标左键,Button控件就出现在窗体上。用同样的方法再向窗体中添加一个Button控件和一个Label控件,最后窗体中的控件布置如图l-3所示。图1-3 窗体中的控件 3设定控件属性 现在摆在用户眼前的已经是一个应用程序界面的雏形了。但是用户也许并不满意这个界面,所有的按钮上面都是默认的Button1、Button2,这对于一个应用程序的界面来说并不合适,而且也没有提供键盘快捷方式。如何改变这种情况?我们可以在对象监视器中对这个界面中控件的属性进行更改。 (1)移动控件到合适的位置。具体的方法是:用鼠标单击要移动的控件,使其变为选中状态(控件四周有8个小黑矩形),然后用鼠标拖动控件就可以移动了。最后备控件的位置如图l-4所示。 图1-4 移动后的控件布置(2)选中 Buttonl,在对象监视器的Propertes选项卡中将会出现和Buttonl控件相关的属性。单击Caption属性后面的编辑框,如图l-5所示。此时编辑框中的文字变为全选状态,向其中输入文字可以改变按钮的显示名称,这里改为“点击我”。图1-5 设置Button1控件的属性(3)用同样的方法设定其他两个控件的属性如下:object Label1:TLabel /Label控件 Left=112 /控件左侧距窗口边界的像素 TOP=10 /控件上方距窗口边界的像素 Width=3 /宽度 Height=13 /高度 end object Button2:TButton Left=224 /控件左侧距窗口边界的像素 TOP=19 /控件上方距窗日边界的像素 Width=75 /宽度 Height=25 /高度 Caption=退出/按钮显示的文字 end4编写程序代码(1)选中Buttonl控件,选择属性窗口的Events选项卡,双击OnClick事件右侧的输入域1-6,进入代码编辑窗口,同时出现程序框架。或者在窗体窗口上双击Button1控件,也会出现代码编辑窗口,如图l-7所示。 图1-6 选择响应事件 图1-7 代码编辑窗口(2)在图l-7中输入如下代码: Label1.Caption:=这是我的第一个Delphi程序 ; 这段程序表示设定Label1控件的Caption属性为字符串“这是我的第一个Delphi程序”,当用户单击“点击我”按钮时,Label控件中就会出现这段文字。 (3)用同样的方法设定退出按钮的OnClick事件响应如下: procedure Tforml.Button2Click(Sender:TObject);/退出程序 begin Close; end;五、程序清单程序完整源代码如下所示:unit Until;interfaceuses Windows,Nessages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls;type Tform1=class(TForm) Labed:TLabel; Button1:TButton; Button2:TButton; procedure Button1Click(Sender:TObject); procedure Button2CliCk(Sender:TObject);private Private declarations PubliC Public declarations end; var Forml:TForml; implementation $R *.dfm Procedure Tform1.Button1Click(Sender:TObject); begin Label1Caption:=这是我的第一个Delphi程序; end; procedure Tform1.Button2Click(Sender:TObject); begin Close; end; end实验二:调用Delphi方法,对一个Memo组件的文本进行剪切、拷贝、粘贴和清除等操作。一、实验目的以Memo组件的方法调用为例,理解Delphi面向对象编程方法。二、实验内容编写一个程序,实现对一个Memo组件的文本进行剪切、拷贝、粘贴和清除等操作。程序运行界面如下:图2-1 Momo组件方法调用三、知识背景过程与函数是程序的模块化部分。Delphi的函数是一个被包起来的代码组合,用以完成特定的工作。在对象中说明的过程和函数一般称为方法(method),如果在事件处理过程中要使用Delphi的方法,只需在程序代码中调用方法的名称即可。因此,对于Memo1组件,要实现对文本进行剪切、拷贝、粘贴和清除等操作,只需分别调用改组件的CutToClipboard方法、CopyToClipboard方法、PasteFromClipboard方法和方法即可完成。直接调用Delphi组件的方法来实现程序的功能,简化编程,这是面向对象编程的主要优点之一。学习Delphi要从组件的属性、方法及事件下功夫。四、实验步骤1启动Delphi。2创建程序界面(1)从控件面板Standard页面中选择Memo控件,向Form1窗体添加组件Memo1。 (2)从控件面板Standard页面中选择Button控件,向Form1窗体添加4个标准按纽Button1、Button2、Button3和Button4,并将这些控件移动到适当位置,如图2-1所示。3设置控件属性分别将上述4个按钮的Caption属性按图2-1的提示加以设置修改。4编写程序代码分别编写上述4个组件的OnClick事件代码,代码如下:procedure TForm1.Button1Click(Sender: TObject);begin memo1.CutToClipboard;end;procedure TForm1.Button2Click(Sender: TObject);begin memo1.CopyToClipboard;end;procedure TForm1.Button3Click(Sender: TObject);begin memo1.PasteFromClipboard;end;procedure TForm1.Button4Click(Sender: TObject);begin memo1.Clear;end;5运行所编的程序(按F9键)实验三:文件内容在Delphi控件中的显示一、实验目的熟练掌握用Delphi控件显示文件内容的方法。二、实验内容编写一个程序,实现将一个文本文件的内容调入Memo组件显示。程序运行界面如下:图2-2: 用Delphi组件显示文本文件的内容要求程序运行时按“调入文件”按钮,即可打开Windows文件对话框,将文本文件的内容调入Memo1控件显示。按“退出”按钮即可退出Delphi。三、知识背景本实验涉及Windows文件对话框(OpenDialog控件)、Memo控件、标准按钮(Button按钮)和位图按钮(BitBtn按钮)的属性及事件的使用方法。四、实验步骤1启动Delphi。2创建程序界面(1)从控件面板Standard页面中分别选择Memo控件、OpenDialog控件及Button控件添加到Form1窗体。 (2)从控件面板Additional页面中选择BitBtn控件,向Form1窗体添加1个BitBtn按钮,并将这些按钮移动到适当位置,如图2-1所示。3设置控件属性分别修改上述2个按钮的Caption属性。4编写程序代码编写上述按钮Button1的OnClick事件代码及Form1的FormCreate事件,代码如下:procedure TForm1.Button1Click(Sender: TObject);begin if opendialog1.Execute then memo1.Lines.LoadFromFile(opendialog1.FileName);end;procedure TForm1.FormCreate(Sender: TObject);begin memo1.Clear;end;5运行所编的程序(按F9键)实验四:自定义异常一、实验目的 通过一个完整示例来理解掌握在程序中定制和使用自定义异常的方法。 二、实验内容自定义异常EInValidPassWord和EInValidInput分别用于表示输入的口令非法和数字非法,把它们定义为EInValidation的子类。程序设计界面如图2-3所示。图2-3 自定义异常示例的设计界面两个标签(Label1,Label2)表示对应编辑框的功能。编辑框PassWord和Input Number用于输入口令和数字。程序启动时Label2,Input Number不可见。当在PassWord中输入正确的口令时,Label2,Input Number出现在屏幕上。此时Lanel1,PassWord隐藏。在往PassWord编辑框中输入Delphi之后,界面如图2-4所示:图2-4 自动隐藏PassWord标签三、知识背景异常处理机制是为了处理应用程序在运行过程中可能出现的运行错误而引入的一种技术,它在Delphi 7中得到充分体现和有效支持。Delphi的异常处理机制是建立在保护块(Protected Blocks)的概念上。所谓保护块是用保留字try和end封装的一段代码。它的作用是当应用程序发生错误时自动创建一个相应的异常类(Exception)。程序可以捕获并处理这个异常类,以确保程序的正常结束、资源的释放及数据不受破坏。如果程序不进行处理,则系统会自动提供一个消息框。Exception类在Delphi的SysUtils单元中定义,它是Delphi异常处理机制的核心和主要特色。Delphi提供的所有异常类都是Exception类的子类。用户也可从Exception派生一个自定义的异常类。Delphi为我们提供了一个很庞大的异常类体系,从大的方面可分为运行时间库异常、对象异常及组件异常3类。同时Delphi也允许用户根据程序需要,自己定义异常。四、实验步骤1启动Delphi。2创建程序界面依据运行界面要求创建如图2-3所示的运行界面。3设置控件属性除了修改有关控件的Caption属性外,设计使,令Label2,Input Number的Visible属性为False。通过设置PassWord的PassWordChar可以确定输入口令时回显在屏幕上的字符。4编写程序代码自定义异常EInValidPassWord和EInValidInput分别用于表示输入的口令非法和数字非法,它们都是自定义异常EInValidation的子类。而EinValidation直接从Exception异常类派生。下面是三个异常类的定义typeEInValidation=class(Exception) public ErrorCode:integer; constructor create(Const Msg:String; ErrorNum:integer);end;EInValidPassWord=class(EInValidation)public Constructor create;end;EInvalidInput=class(EInValidation)public Constructor Create(ErrorNum:Integer);end;下面是三个自定义异常类构造函数的实现代码。constructor EInValidation.create(Const Msg:String;ErrorNum:Integer);begin inherited Create(Msg); ErrorCode:=ErrorNum;end;constructor EInValidPassWord.create; begin inherited create(Invalid Password Entered,0); end;constructor EInValidInput.Create(ErrorNum:Integer);var msg:string;begin case ErrorNum of 1: Msg:=Can Not Convert String to Number; 2: Msg:=Number is out of Range; else Msg:=Input is Invalid; end; inherited create(Msg,ErrorNum);end;对于EInvalidInput,ErrorCode=1表示输入的不是纯数字序列,而ErrorCode=2表示输入数值越界。口令检查是用户在PassWord中输入口令并按下回车键后开始的。实现代码如下:procedure TForm1.PassWordKeyPress(Sender: TObject; var Key: Char);const CurrentPassWord=Delphi;begin if Key=#13 then begin try if PassWord.TextCurrentPassWord then raise EInvalidPassWord.create; Label2.Visible:=true; InputEdit.Visible:=true; InputEdit.SetFocus; PassWord.Visible:=False; Label1.Visible:=False; except On EInValidPassword do begin PassWord.Text:=; raise; end; end; Key:=#0; end; end;这里假设输入一个错误的字符串,程序会给出错误信息,单击确定按钮,就可以重新输入,如图2-5所示图2-4 出错信息同学们也可在InputEdit的OnKeyPress事件处理过程编写输入数字的合法性检查代码:5运行所编的程序(按F9键)实验五:标签和编辑框的使用一、实验目的1、 掌握标签的Caption属性及OnClick事件的应用;2、 掌握编辑框属性的定义方法3、理解窗体的OnCreate事件的作用二、实验内容及要求程序运行界面如图3-1所示。要求点击Label1则在信息对话框中显示“标签1”,而点击Label2则在信息对话框中显示“标签2”。程序运行时,Edit2框的默认显示为“参考信息2”,而通过定义格式输入框MaskEdit1,实现输入具有2位小数点的小数。图3-1 标签与编辑框的使用三、知识背景1、标签组件(Label组件)(1)常用属性:Name、Caption、Visible、Enabled、Font、Color、Cursor、Transparent、Layout等。补充介绍以下属性:Cursor属性用于设置鼠标的形状,如果编写了OnClick事件代码,则常将Cursor属性的值设置为:crHandPoint。Transparent属性:决定标签的背景是否透明。(例3-2)。Layout属性:用于改变字符串在标签中的位置,是在顶、中间或底部。(2)常用事件:OnClick事件。2 编辑框(Edit组件)主要属性:Name、Text、MaxLength、CharCase、ReadOnly、PassWordChar、Font、Color、Enabled、Visible、ImeName等。补充介绍以下属性: Text属性:定义编辑框中显示的内容。Maxlength属性:限制用户输入字符的数量。 CharCase属性:定义编辑框中字符的大小写。 ReadOnly属性:决定编辑框是否只读。 PassWordChar属性:可将用户输入的字符在编辑框中显示成指定的字符,如“*”号等,亦即将编辑框设置为密码输入框。ImeName属性:确定编辑框的汉字输入法。编辑框可以通过调用SetFocus方法获得焦点。3 掩码编辑框(MaskEdit)掩码编辑框用于格式输入。除了具有与普通编辑框相类似的属性外,还具有EditMask属性(过滤文本格式):对文本框中显示的文本进行格式设定。各种掩码的含义可查阅教材及有关参考资料。四、实验步骤1启动Delphi。2创建程序界面依据运行界面要求创建如图3-1所示的运行界面。3设置控件属性按界面要求修改3个标签控件的Caption属性。将MaskEdit 1控件的EditMask属性设置为“#.#;1;”4编写程序代码有关控件的事件代码如下:procedure TForm1.Label1Click(Sender: TObject);begin showmessage(标签1);end;procedure TForm1.Label2Click(Sender: TObject);begin showmessage(标签2);end;procedure TForm1.FormCreate(Sender: TObject);begin Edit2.Text:=参考信息2;end;5运行所编的程序(按F9键)实验六 Memo和RichEdit控件的应用 一、实验目的1熟悉Memo和RichEdit控件的属性及方法2掌握向Memo和RichEdit控件添加数据的方法二、实验内容及要求程序运行界面如图3-2所示。要求编程实现由程序控制向多行文本框添加和编辑数据,以及从标准文本文件向多行文本框添加数据和对所选文本改变字体。图3-2 Memo和RichEdit控件的使用要求各按钮的作用如下:(1)AddString按钮(Button1):向RichEdit1多行文本框编辑框添加字符串“RichEdit1”;(2)Open 按钮(Button2):打开文件对话框;(3)Font按钮(Button3):用于改变选中文本的字体(4)Cut(Button5)、Copy(Button6)、Paste(Button7)、Clear(Button4)按钮分别用于对多行文本框编辑框的选中内容加以剪切、拷贝、粘贴和清除。三、知识背景Memo和RichEdit控件可接收多行文本输入。其中TRichEdit控件象个小型写字板,它支持更广泛的文字格式。除了编辑组件共有的一些属性外,补充介绍以下属性: ScrollBars属性:可设置文本输入框的滚行条。 Alignment属性:决定文本在框中的对齐显示格式。 Align属性:调整文本框在Form1窗口的对齐方式。 alNone(无对齐指定);alBottom(底部对齐);alClient(全窗口显示)Lines属性:访问的文本被存储在一个字符串列表对象中,可通过对话框向它添加文本,也可以用程序对这一属性进行操作。四、实验步骤1启动Delphi。2创建程序界面依据运行界面要求创建如图3-2所示的运行界面。其中RichEdit控件可从组件面板的Win32页面获得。此外还要从Dialogs页面添加文件对话框OpenDialog1。3设置控件属性按界面要求修改7个按钮的Caption属性。4编写程序代码有关控件的事件代码如下:/向RichEdit1控件添加一行字符串的程序代码procedure TForm1.Button1Click(Sender: TObject);begin RichEdit1.Lines.Add(RichEdit1); end;/将文本文件内容调入Memo1控件的程序代码procedure TForm1.Button2Click(Sender: TObject);begin if Opendialog1.Execute then Memo1.Lines.LoadFromFile(Opendialog1.FileName);/ end;/将RichEdit1控件的被选部分变字体的程序代码procedure TForm1.Button3Click(Sender: TObject);begin if RichEdit1.SelLength0 then begin if FontDialog1.Execute then RichEdit1.SelAttributes.Assign(FontDialog1.Font); end;end;/ 将RichEdit1的内容剪切procedure TForm1.Button5Click(Sender: TObject);begin RichEdit1.CutToClipboard;end;/ 将RichEdit1的拷贝到剪贴板procedure TForm1.Button6Click(Sender: TObject);begin RichEdit1.CopyToClipboard;end;/ 将到剪贴板的内容粘贴到RichEdit1 procedure TForm1.Button7Click(Sender: TObject);begin RichEdit1.PasteFromClipboard;end;/ 将RichEdit1的内容清除procedure TForm1.Button4Click(Sender: TObject);begin RichEdit1.Clear;end;/ 将Memo1的显示置为空白procedure TForm1.FormCreate(Sender: TObject);begin memo1.Text:=;end;5运行所编的程序(按F9键)实验七:利用RadioGroup组件来改变Memo1组件文本的颜色和字体一、实验目的1熟练掌握RadioGroup组件的使用方法2掌握改变Memo组件文本颜色和字体的方法二、实验内容及要求程序运行界面如图3-3所示。窗体中有1个Memo1组件和2个RadioGroup组件,其中RadioGroup1组件用于修改Memo1组件文本的颜色,RadioGroup2组件用于修改Memo1组件文本的字体。图3-3利用RadioGroup组件改变Memo1组件文本的颜色和字体要求:(1)默认颜色为红色;(2)默认字体为宋体;(3)可通过上述2个RadioGroup组件来改变Memo1组件文本的颜色和字体三、知识背景单选按钮的常用属性:Name、Caption、Checked、Font、Enabled等。Checked属性:决定单选按钮是否被选择。有时一个界面需要同时设置多组单选按钮,为了使不同组之间互不干扰,需要用到单选按钮组(RadioGroup)。本例通过定义一个colors数组来存储颜色,Fonts数组来存储字体。利用访问RadioGroup1组件Control方法数组的Checked属性值,来给Memo1组件文本的颜色属性赋值;利用访问RadioGroup2组件Control方法数组的Checked属性值,来给Memo1组件文本的字体属性赋值。四、实验步骤1启动Delphi。2创建程序界面依据运行界面要求创建如图3-3所示的运行界面。其中RadioGroup组件可从组件面板的Standard页面获得。3设置控件属性按界面要求修改修改Memo1组件的Lines属性值,以及RadioGroup1组件与RadioGroup2组件的Items属性值。4编写程序代码有关控件的事件代码如下:procedure TForm1.RadioGroup1Click(Sender: TObject);var i:integer; colors:array0.1 of TColor;begin colors0:=clRed; colors1:=clBlue; for i:=0 to 1 do if (RadioGroup1.Controlsi as TRadioButton).Checked then Memo1.Font.Color:=colorsi;end;procedure TForm1.RadioGroup2Click(Sender: TObject);var i:integer; fonts:array0.1 of string;begin fonts0:=宋体; fonts1:=楷体_GB2312; for i:=0 to 1 do if (RadioGroup2.Controlsi as TRadioButton).Checked then Memo1.Font.Name:=fontsi;end;/默认颜色与字体设置的程序代码procedure TForm1.FormCreate(Sender: TObject);begin (RadioGroup1.Controls0 as TRadioButton).Checked:=true; (RadioGroup2.Controls0 as TRadioButton).Checked:=true;end;5运行所编的程序(按F9键)实验八:列表框(ListBox)的使用一、实验目的熟练掌握列表框(ListBox)的属性,方法及事件的应用。二、实验内容及要求试编写一个程序,能够在列表框ListBox1内查找、添加和删除12生肖。程序运行界面如图3-4所示。窗体中有1个ListBox1组件,1个Edit1组件和4个Button组件,其中ListBox1组件用于显示12生肖,4个按钮分别用于查找、添加和删除12生肖及退出。编辑框Edit1用于输入待查找的生肖。图3-4 列表框(ListBox)的使用三、知识背景ListBox和ComboBox可用于容纳多个选项,它们都放置在组件模板的Standard标签页上。列表框(ListBox)列表框组件以滚动列表的形式显示一列或多列文本项供用户选择。(1)主要属性:Canvas、Column、ExtendedSelect、MultiSelect、ItemIndex、Items、Style、Selected、Sorted等9个。Canvas属性:用于在列表框项目上绘制图形(参考书上P73页)。Column属性:制定多列列表框的列数,设置为0时为垂直滚动列表框,设置为非0时将使列表框水平分栏显示。ExtendedSelect和MultiSelect属性:MultiSelect属性设置为True将允许用户同时选择多个项目,如果ExtendedSelect属性为True,则可结合Ctrl和Shift键来选择多个项目,否则只能用鼠标键选择。Items属性:指定显示在列表框中的字符串。Style属性:指定列表框的风格是标准文本列表框还是可以显示图像的自绘列表框。默认情况下Style属性为lbStandard(标准文本列表框)。Selected属性:用于判断列表框中的一个选项是否被选中。Sorted属性:用于确定列表框中的项目是否自动排序。(2)主要方法:Add、Insert、Delete、Clear Add方法:把字符串加到列表尾部,字符串作为参数传递; Insert方法:把字符串插入列表中,传递插入位置和字符串。 Delete方法:删除指定的字符串。如果不知道字符串位置,可使用Indexof方法。Clear方法:删除字符串列表中所有的字符串。ItemIndex方法:给出选中项目在列表框中的序号,如果选中了多个项目,则该方法将给出当前焦点所在项目的序号。四、实验步骤1启动Delphi。2创建程序界面依据运行界面要求创建如图3-4所示的运行界面。其中ListBox1组件可从组件面板的Standard页面获得。3设置控件属性按界面要求修改修改4个按钮的Caption属性值,以及ListBox1组件的Items属性值。4编写程序代码有关控件的事件代码如下:procedure TForm1.ListBox1Click(Sender: TObject);var i:integer;begin if (sender is TListBox) then begin express:=; for i:=0 to Listbox1.Count-1 do if ListBox1.Selectedi then express:=express+ListBox1.Itemsi; Label6.Caption:=express+are selected; end;end;procedure TForm1.Button3Click(Sender: TObject);var i:integer;begin if ListBox1.SelCount0 then begin i:=0; repeat if ListBox1.Selectedi then begin ListBox1.Items.Delete(i); i:=i-1; end; i:=i+1; until i=ListBox1.Items.Count;end;label6.Caption:=express+are deleted;end;procedure TForm1.Button2Click(Sender: TObject);begin if length(Edit1.Text)0 then begin if ListBox1.Items.IndexOf(Edit1.Text)0 then begin ListBox1.Items.Insert(0,Edit1.Text); /ListBox1.Items.Insert(listbox1.ItemIndex+1,Edit1.Text); ListBox1.ItemIndex:=0; Label6.Caption:=Edit1.Text; end; end;end;procedure TForm1.Button4Click(Sender: TObject);begin close;end;procedure TForm1.Button1Click(Sender: TObject);var index:integer;begin index:=listbox1.Items.IndexOf(Edit1.Text); if index0 then MessageDlg(cannot find+Edit1.Text,mtinformation,mbok,0) else label6.Caption:=Edit1.Text+is in line+intToStr(index+1);end;5运行所编的程序(按F9键)实验九:设计Delphi文档处理程序主菜单一、实验目的熟练掌握Delphi菜单设计及简单多文档处理的方法。理解多文档MDI界面的概念及设计规范。二、实验内容及要求试编设计一个Delphi主菜单程序,能够应用MDI界面对简单多文档进行必要的处理。程序设计要求包括主菜单的设计,父窗口的建立,在程序中动态创建子窗口,子窗口的排列方式等。菜单项如图3-5所示。 要求能够同时打开多个子窗口,处理多个子窗口的文档图3-5 设计Delphi文档处理程序主菜单三、知识背景如果将新创建项目的主窗体Form1的FormStyle属性设置为:fsMDIForm,则该窗体被设置为多文档窗口的父窗口。多文档界面(MDI)是Windows中文档处理应用程序的一种规范。该规范允许用户在应用程序的一个实例中同时使用多个文档的用户界面。如同Windows在桌面窗口中维护多个应用程序窗口一样。MDI应用程序可在它的客户区中维护多个文档窗口。例如,Microsoft Word就是这样一种多文档界面。如果将新创建的Form2窗口的FormStyle属性设置为:fsMDIChild,则该窗口即被定义为子窗口。Windows应用程序一般将菜单分为2级:第1级是水平菜单栏,第2级是水平菜单栏所包含的选项,称为菜单项。菜单结构可以灵活地组织,既可将菜单放在菜单栏中,也可在下拉菜单的菜单项中放置第2级下拉式菜单。按菜单项的功能可将菜单项分为3种类型:命令;状态设置:对系统(包括菜单本身)的状态进行设置和说明,通常用钩号或复选框来说明是否处于有效状态;对话框菜单项:用于激活对话框,本身不执行具体操作,由用户通过对话框来完成相应任务。在Delphi的组件库中,常用的有主菜单MainMenu(下拉式菜单)和PopupMenu(弹出式菜单)两种。使用MainMenu Designer建立菜单 方法和步骤如下: (1)向Form1窗体添加一个TMainMenu组件。 (2)在Object Inspector窗口打开MainMenu1菜单项设置Items属性,将弹出建立菜单项的界面。所建立的每一个菜单项都有自己的属性及事件。 (3)在菜单项的Caption属性填入菜单项的标题。如填入“-”可制作菜单分割线,为菜单项分组;将&字符置于Caption中的某字符之前,则可将&之后的字符定义为该菜单项的热键。(4)可通过设置ShortCut属性为菜单项创建快捷键,用于最常用的操作,在不打开菜单的情况下,直接按相应的快捷键就可执行对应操作。(5)单击鼠标右键,将弹出一个快捷菜单,其中的Insert和delete选项分别用于菜单项的插入与删除。四、实验步骤1启动Delphi。2调整Form1窗体尺寸,并设置Name、Caption和FormStyle等属性,将FormStyle属性设置为:fsMDIForm,即定义为父窗口。3.向窗体添加一个TMainMenu组件,并创建菜单项,设置菜单项的属性。4向该项目添加一个新窗体,并调整好尺寸,并设置Name、Caption和FormStyle等属性,将FormStyle属性设置为:fsMDIChild,即定义为子窗口。5向子窗口添加一个TMainMenu组件和一个TPopupMenu组件,并创建菜单项,设置菜单项的属性。6向子窗口添加TSaveDialog、TFontDialog、TPrintSetupDialog和TPrintDialog四个组件,以实现文档的保存、字体设置和打印等功能。对于SaveDialog1组件,还要设置它的Filter属性,点击该属性可进入Filter Editor窗口进行设置:7编写程序代码有关事件代码如下:unit Exam4_1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ComCtrls;type TFrameForm = class(TForm) MainMenu1: TMainMenu; File1: TMenuItem; Window1: TMenuItem; New1: TMenuItem; Open1: TMe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老旧供水管网检测与修复技术升级方案
- 2025秋季学期国开电大法律事务专科《刑法学(2)》期末纸质考试简答题题库珍藏版
- 胎儿异常护理周立蓉28课件
- 桥梁材料性能检测方案
- 纬编布生产线项目人力资源管理方案
- 水电站运行管理课件
- 水电煤气安全知识培训课件
- 水电施工知识课件
- 二零二五年电子显示屏广告租赁合同
- 二零二五年门窗安装与绿色环保认证合作协议
- 海事管理培训课件
- 《曾国藩传》读书分享课件
- 十五五林业发展规划(完整版)
- 厂区安保巡逻管理制度
- T/CECS 10209-2022给水用高环刚钢骨架增强聚乙烯复合管材
- 项目包装合作协议书
- 安徽省合肥一中2025届高三5月回归教材读本
- 2024年江西省投资集团有限公司总部招聘考试真题
- 2025年04月广东省特种设备检测研究院东莞检测院招考笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 老年人生命教育
- 院感相关法律法规知识培训
评论
0/150
提交评论