




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、简述面向对象技术中“类”与“对象”的概念。结合Delphi中使用的组件,举例说明什么是类、什么是对象。类是对象的抽象及描述,它是具有统一属性和方法的一类对象的统一描述体,是用来定义某类对象共有属性和方法的模板。而对象是类的实例。在Delphi环境中,组件板上的组件就是类的概念,例如按钮组件就是按钮类。而用户在窗体上创建的一个按钮就是对象的概念(按钮对象)。用户可以在窗体上用按钮类创建若干个按钮对象,它们都是按钮类的实例。2、在Delphi中,什么是对象的属性、方法和事件?一个对象是由属性、方法和事件所组成。属性表示对象中的数据,方法是对象能够执行的动作,事件是能够引起对象反应的条件。3、简述利用Delphi开发一个项目的基本步骤。l建立一个新的项目l建立窗体l在窗体上加入对象l检查和设定对象属性l编写对象的事件处理程序l编译、试运行,并进行代码调试保存项目文件,退出Delphi环境4、在一个单元中,全局变量和局部变量的含义是什么?说明在单元文件中如何定义这两种变量(可举例说明)。局部变量只能在定义它的程序块中使用,且其生命周期也只存在于从程序块开始执行到程序块执行结束。在一个事件处理程序中的变量说明部分,能够定义一个局部变量,供该事件处理程序内部使用。而全局变量可以在单元中的各程序块中使用(共享),且生命周期存在于整个单元代码的活动期中。在Implementation保留字后(但不要在程序块里)定义的变量就是全局变量。选择题1、下列哪些条目可作为Delphi的变量名,哪些不行,并说明原因。abc123abc123123abcfilea!合法的变量名是:abcabc123选择题7、如果想查看showmessage过程的帮助信息,请你说出两种获取帮助信息的方式。通过主菜单Help的Delphi Help命令调出帮助主页面,在“索引”页输入框中输入要查找的showmessage单词,即可找出相关的帮助信息。在代码中如果调用了showmessage过程,可将光标置于该单词中,然后按F1键,即可找出该过程的帮助信息。选择题2、一个项目由一组文件组成。其中一些主要文件的后缀有:.dpr.pas.dfm.dcu.dpr.pas.dfm等请说出这些文件的中文名称及用途。答:.dpr项目文件,存放项目的主程序.pas单元文件,存放源代码,如事件处理程序等。.dfm窗体文件,数据文件,记录窗体上的数据信息(如组件位置等).dcu目标文件,保存.pas编译后得到的结果。.dpr.pas.dfm是备份文件,便于用户恢复到较早的一个项目版本选择题3、用于摆放其他组件的组件可以称之为“容器组件”。除窗体组件外,请你再说出一个容器组件的名字。答:Panel或GroupBox选择题4、简述Edit组件下面几个事件的引发条件:OnChangeOnClickOnEnterOnExitOnKeyPress答:OnChange当编辑框中内容改变时引发该事件OnClick:当鼠标单击编辑框时引发该事件OnEnter:当光标进入编辑框时引发该事件OnExit:当光标离开编辑框时引发该事件OnKeyPress:当在编辑框中输入文本时,每次按键都会引发该事件编程题1、开发用户界面如下图所示的应用程序:功能说明:该界面是一个教师信息录入界面。用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组合框(ComboBox1)选择或直接输入所在系,利用列表框(ListBox1)指定职称。当输入完上述信息后,单击“确定”按钮,教师信息将显示在右边的Memo1编辑窗口中。提示:在组合框和列表框中可以预置少量测试数据。答案:通过RadioGroup1的Items属性设置两个单选按钮(“男”和“女”),并将属性Column设置为2(按钮摆两列)。通过ComboBox1的Items属性设置下拉选单中的系名。通过ListBox1的Items属性设置列表框中的职称列表。“确定”按钮的单击事件处理程序如下:procedure TForm1.Button1Click(Sender: TObject);beginmemo1.Lines.Add(edit1.Text);if radiogroup1.ItemIndex = 0 thenmemo1.Lines.Add(男)elsememo1.Lines.Add(女) ;memo1.Lines.Add(combobox1.Text);memo1.Lines.Add( listbox1.Itemslistbox1.itemindex );end;编程题2、开发一个简单的编辑器,设计界面如下图所示:该编辑器功能要求如下:l编辑窗口使用Memo组件实现,并为其设置垂直滚动条。l单击“打开文件”按钮,弹出打开文件对话框,用户指定要打开的文件后(限于纯本文件),文件内容加载到编辑窗口中。l单击“保存文件”按钮,弹出保存文件对话框,用户指定要保存的文件名后,编辑区的内容保存到指定文件中,然后清空编辑区。l单击“复制”按钮,编辑区中被选择的内容拷贝到剪贴板。l单击“剪切”按钮,编辑区中被选择的内容剪切到剪贴板。l单击“粘贴”按钮,剪贴板中的内容拷贝到编辑区当前光标处。答案:建立的组件有:memo1、opendialog1、savedialog1、button15编码如下:procedure TForm1.Button1Click(Sender: TObject);/打开文件beginif opendialog1.Execute thenmemo1.Lines.LoadFromFile(opendialog1.FileName) ;end;procedure TForm1.Button2Click(Sender: TObject); /保存文件beginif savedialog1.Execute thenbeginmemo1.Lines.SaveToFile(savedialog1.FileName) ;memo1.Clear end ;end;procedure TForm1.Button3Click(Sender: TObject); /复制beginmemo1.CopyToClipboard ;end;procedure TForm1.Button4Click(Sender: TObject); /剪切beginmemo1.CutToClipboard ;end;procedure TForm1.Button5Click(Sender: TObject); /粘贴beginmemo1.PasteFromClipboard ;end;编程题3、编写界面如下图所示的“系学生主从查询”应用程序。两个按钮可以控制系记录的浏览,而学生信息总是显示当前系的学生记录。提示:系学生数要动态计算。答案:procedure TForm1.Table1AfterScroll(DataSet: TDataSet);beginquery1.Close ;/根据当前系计算学生数query1.ParamByName(dno).Value :=table1dno ;query1.Open ;query2.Close ;/根据当前系显示学生记录query2.ParamByName(dno).Value :=table1dno ;query2.Open ;end;procedure TForm1.Button1Click(Sender: TObject); /上一记录begintable1.Prior ;end;procedure TForm1.Button2Click(Sender: TObject); /下一记录begintable1.Next ;end;Delphi试题51道 Delphi试题51道 1.dbExpress组件访问数据库是通过哪种方式与特定的数据库连接的?(C) A. BDE B.其他三项都不是 C.DbExpress自己的数据库连接DLL D.ODBC 2.在try语句中使用多个except语句可以处理多个不同的异常情况。(A) A.错误 B.正确 3.DWORD,UINT,HResult以及WinAPI函数中各种Handle等于Delphi6中的哪种数据类型?( A) A.LongWord B.UnsignedInt C.LongInt D.Word 4.窗体上放置有一个TPanel类的控件Panel1,并定义了Panel1的OnEnter事件,下面说法正确的是:(C) A.当鼠标移动到Panel1上面时产生Panel1OnEnter事件 B.其他三项都不对 C.当Panel1获得焦点时产生Panel1OnEnter事件 D.当鼠标在窗体上移动时产生Panel1OnEnter事件 5.下面关于数据集BookMark的说法那个是正确的?(A) A.BookMark类型的变量是一个对象指针,需要用BookMark Create来建立BookMark,用BookMark.free来释放 B.BookMark本质上是一条记录类型,无须建立和释放 C.Delphi中,一个数据集组件只能建立一个书签BookMark 6.所有类都有Name属性(A) A.错误 B.正确 7.一个Delphi窗体Form1中包含了一个Tbutton类的Button1控件,下面代码,将产生怎样的结果?(D) Tform1.button1Click(Sender); begin Self.Caption:=self; Self.Color:=ClBlue; EventX(Sender); end; Tform1.EventX(Sender:TObject); begin Sender.Tag:=10; end; A.窗体的标题为Self,颜色为蓝色,窗体的Tag属性等于10 B.Button1的标题为Self,颜色为蓝色,Tag属性等于10 C.Button1的标题为Self,颜色为蓝色,窗体的Tag属性等于10 D.窗体的标题为Self,颜色为蓝色,Button的Tag属性等于10 8.在多个应用程序访问同一个DLL时,下面关于DLL中使用全局变量的说法哪个是正确的?(C) A.每个应用程序都各自使用在他自己的进程空间内复制的一份该全局变量 B.全局变量在DLL中是不允许使用的 C.每个应用程序访问的是同一个全局变量,该全局变量的有引用计数。 9. 窗体上放置有一个TEdit类控件Edit1,当在Edit1中按下A键时触发的事件和事件顺序是:(OnKeyPress-OnKeyDown)可以自己试一下 10.下面方法中,哪个是正确的移动TDataSet的记录光标位置的方法?(A) A .(Sender As TDataSet).Moveby(10) B.(Sender As TDataSet).Moveto(10) C.(Sender As TDataSet).Move(10) D.(Sender As TDataSet).MoveToCursor(10) 11.关于记录与类的说法错误的是:(C) A.记录没有继承关系,而类有 B.不能自动对记录的域初始化 C.类可以使用with语句而记录不能 D.记录没有任何保密性,所有细节从外部都是可见的,或者说是公用的。 12.以下不合法的数组是:(A) A.arr:Array of Class B.arr:Array of TButton C.arr:Array of byte D.arr:Array of string 13.下列关于dfm文件的一些说明哪个是正确的?(C) A.dfm文件中包含了对应Pascal单元文件的编译后中间代码 B.dfm文件是文本文件,用于保存编译器需要用到的Pascal文件的符号表 C.dfm文件保存着一个窗体和窗体拥有的对象的Published属性 D.dfm文件是编译时产生的符号表,是为了使优化提高编译速度而产生的。 14.请判断下列代码在程序关闭时,正确的对象释放顺序(B) TMybutton=class(Tbutton) Protected Destructor Destroy;override; End; . destructor TMyButton.Destroy; Begin inherited; Application.MessageBox(PChar(Name),Destroy,mb_ok); end; var AButton,BButton:TMyButton; procedure TForm1.FormCreate(Sender:TObject); begin Abutton:=TmyButton.Create(Nil); With AButton do begin Parent:=form1; Top:=100; Left:=100; Visible:=True; Name:=ABtn; end; BButton:=TMyButton.Create(Application); With BButton do begin Parent:=Form1; Top:=100; Left:=200; Visible:=True; Name:=BBtn; end; procedure TForm1.FormDestroy(Sender:TObject); begin end; A.BButton.Destroy-Form1.Destroy-AButton.Destroy B.上述都不对,应该手工调用Abutton.free,否则会造成AButton没有释放的错误 C.Form1.Destroy-AButton.Destroy-BButton.Destroy D.AButton.Destroy-Form1.Destroy-BButton.Destroy 15.已知有说明var s:sting;下列程序段中的错误为: case s of book_A:processSelectionA; book_B:processSelectionB; book_C:processSelectionC; end; () A.用字符串作为Case值表元素 B.case表达式中有常数 C.case常量和case值表元素 D.case表达式位关系表达式这道题我不知道它要说什么Case String of 这个语法本身就是错误的! Case of 中间的条件只能是整型,集合,枚举类型 16.“工程选项对话框”中,当默认的checkbox位True时,会出现下面那种情况?(D) A.Delphi把所有的工程选项都重置为最初的默认值 B.“工程选项“值覆盖“环境选项”值 C.当前被选页上所有checkbox的属性都自动变成为True D.当前的工程选项作为新创建的工程的默认值 17XML的含义是什么?(B) A.Express Manage Language B.Extensible Markup Language 18.下面关于单元的初始化Initialization部分的说法哪一个是正确的?(B) A.如果调用了Initialization,必须调用Finalization B.该部分代码单元被其他单元或程序引用时就会自动运行 C.这部分代码与单元中的FormCreate事件的作用是相同的 D.初始化部分的代码只能在单元中有OLE和COM对象时才有效 19.以下关于Redcord(记录)的描述,不正确的是:(B) A.Object Pascal支持可变Record,它允许在记录种不同的数据共同覆盖相同的内存(这个概念与C/C+中的union概念一样) B.Record类型定义中列出了若干个域,每个域对应一个域名,通过域名访问 C.Record类型用于定义不同类型数据项的固定集合 D.record类型是类的一种补充 20.在每一个枚举类型中,默认编译的情况下,我们最多只能定义(D)个值。 A.64 B.512 C.128 D.255 21.用于建立菜单项的下划线快捷方式的字符是:(C) A. B.# C.& D. 22.下列关于Variant类型的说法哪个是不正确的?(A) A.variant类型的变量被动态赋值为一个特定的数据类型后,不能再赋值为一个其它的数据类型 B.variant类型变量是无类型变量 C.variant类型是以前Borland C+ 中固有的Variant类型的模仿 D.variant类型无需进行释放,回收内存 23.关于Application对象和属性的描述正确的是:(B) A.ExeName可读可写 B.Active表明应用程序是否激活,可以设置该值来激活程序 C.Title属性设置主程序窗口的标题 D.只有给予窗体的应用程序才有全局Application对象,控制台没有Application对象 24.下列哪种变量类型不能作为For循环中的循环变量?(D) A.字符 B.枚举 C.子界 D.实数 25.下面是一个用户自定义的消息,哪一种消息定义是正确的?(D) A.WM_MyMessage=User_Base+100 B.WM_MyMessage=CM_Base+100 C.WM_MyMessage=WM_Base+100 D.WM_MyMessage=WM_USER+100 26.请看代码,回答下面的问题。 Type TMammal=Class Procedure Walk; . end;end of TManmml procedure TMammal.Walk; begin ShowMessage(Result is Mammal Walk); end; TDog=Class(TMammal) Procedure Walk; end; procedure TDog.Walk; begin ShowMessage(Result is Dog Walk); end; var Mammal:TMammal; dog:TDog; begin Mammal:=TDog.Create; Mammal.Walk; Mammal.Free; end; 上面代码中,最后的输出结果是:(B) A.Result is Dog Walk B.Result ia Mannal Walk 27.注册一个自定义组件语句的用法是:(C) A.RegisterComponents(TMyComponent,Standard) B.Register(TMyComponent,Standard) C.RegisterComponents(Standard,TMyComponent) D.Register(Standard,TMyComponent) 28.dbExpress只提供单向游标,这意味着dbExpress类的数据及组建不允许做编辑、修改、删除这样的操作,是否正确?(B) A.是 B.否 29.窗体上放置有一个TEdit类的控件Edit1,并定义了Edit1的OnEnter事件,下面说法正确的是:(C) A.当鼠标在窗体上移动时产生Edit1OnEnter事件 B.其他三项都不对 C.当Edit1获得焦点时产生Edit10Enter事件 D.当鼠标移动到Edit1的上面时产生Edit1OnEnter事件 30.dbExpress是一个独立的数据库接口层,它可以工作于Windows和Linux平台下吗?(A) A.是 B.否 31所有可视化的VCL控件都是从哪一个基类派生而来的?(A) A TControl B TWidgetControl C TWinControl D TwindowControl 32.dbExpress是Borland多层数据库概念的延伸和发展,同TClientDataSet类组件一样,TSQLDataset同样提供了数据的本地缓冲机制,是否正确?(B) A.否 B.是 33.表达式Writeln(This is #39xxx#39string)的结果是:(B)。 A.This is xxx sstring B.this is xxx#39string C.This is xxxstring D.This is xxxstring 34.集合类型的数据大小是:(A) A.0.255 B.0.65535 C.0.63 D.0.31 35.关于CLX以下说法不正确的是:(A) A.CLX是在VCL的基础上开发的,而非重新开发的 B.CLX是伴随着LINUX问世的 C.CLX的含义就是跨平台类库 D.VCL的代码不可以直接移植到CLX 36.Windows的消息系统中的消息来源可分为:(B).硬件消息,应用程序消息.应用程序消息,硬件消息,Windows系统的窗口管理消息.用户自定意消息,Windows系统的窗口管理消息、.硬件消息,Windows系统的窗口管理消息 37.TPersistent类的用途是什么?(C).作为DLL接口的基类,因为DLL不能自动被加载.可以完成Windows控件的封装.是所有用来保存和加载Delphi对象流的类的基类.所有Delphi的类都从它派生而来 38.下面三个类型转换操作中,哪一句是不正确的?(A) Procedure Tform1.AbuttonClick(Sender:TObject); Begin end; A.(Sender is TButton).Caption:=Button B.TButton(Sender).Caption:=Button C.(Sender As TButton).Caption:=Button 39.在设计一个MDI应用程序时,假设主窗体的Name是MainForm,而子窗体的定义是Child:TChildForm,那么应该采取下面哪种方法来生成子窗体?(A).Child:=TChildForm.Create(Nil) .Child:=TChildForm.Create(TApplication) .Child:=TChildForm.Create(MainForm) .Child:=TChildForm.Create(TMainform) 40.有关Assigned的说法哪个是正确的?(C) A.其他三项都不对 B.Assigned的作用是判断一个对象是否为Nil,如果是Nil,返回True,如果不是Nil,返回False C.Assigned的参数可以是对象或者方法,或者是一个指针 D.Assigned的作用是判断Assign过程是否已经完成。 41、在修改数据前检查TQuery组件的状态,发现处于浏览(daBrowse)状态,该TQuery组件的 Active 属性的值已经为真,则调用该TQuery组件的Edit方法可以将其状态该为可修改。 42、在当前Form上添加一个TActionList组件(已添加),选择一个“TEditCopy”标准动作添加到TActionList组件中。 43、将默认路径下的BrowseFolder.pas组件安装在Delphi IDE的默认的package中。 44、调用TQuery组件的Prepare方法让BDE和远程的数据库服务器为查询分配资源并执行一些优化操作,称为执行查询前的准备工作。因为执行这个查询的准备工作会消耗一定的资源,所以在完成查询以后应该调用TQuery组件的 UnPrepare 方法来释放分配给查询的资源。 45、数据集TQurey要执行如下SQL语句:select * from mytable 请补充完成程序中横线所缺少的语句: var Query1:TQuery; begin with Query1 do begin Close; Clear; SQL.Add(select * from mytable); Open; end; end; 46、下面语句用来删除TMemo组件的第2行,请补充完整: Memo1.Lines.delete( 1 ); 47、调用函数 IntToStr 实现整型数字到文本字符串的转换。(只写出括号前的函数名称) 48、完成下列要求:(1)自定义一个过程类型TGetPropProc,该类型有一个参数Prop,类型为IProperty (2)定义一个类TPropertyEditor,该类有一个过程GetProperties,该过程有一个参数,参数类型为TgetPropProc,请写出有关代码。(3)在Uses中写出所使用的单元。备注:请从下面两种结构中选择一种,并添加具体的代码。(1)控制台结构 program Project1; $APPTYPE CONSOLE uses SysUtils; begin end. (2)单元结构 unit Unit1; interface uses DesignEditors,DesignIntf; type TGetPropProc=procedure(const Prop:Iproperty)of Object; TPropertyEditor=class(TBasePropertyEditor,Iproperty) Public Procedure GetProperties(Proc:TGetPropProc); end; implementation procedure TPropertyEditor.GetProperties(Proc:TGetPropProc); begin end; end. 49、在下面代码的基础上,声明一个函数常量,并将函数常量的指针指向函数Calc。备注:请在下面结构中添加具体的代码。 Program project1; $APFTYPE CONSOLE uses SysUtils; function Calc(x,y:integer):integer; begin Calc:=x+y; end; type Tfunction=function(x,y:integer):integer; const MyFunction:Tfunction=Calc; begin write(MyFunction(2,3); readln; end. 50、编写实现一个DLL。该DLL中有一个输出函数function ChangeColorWordToInt(ColorName : PChar):TColor;stdcall;可以将字符串按下表转换为对应的颜色,并返回该颜色值:Red-CLRed;Blue-CLBlue;Lime-CLLime;Other-CLBlack。一点提示:用StringToColor 和 ColorToString 51、编一个显示和隐藏任务栏的应用程序,它有两个按钮分别用来显示和隐藏任务栏。 var taskbarWnd:THandle; . begin taskbarWnd := FindWindow(shell_traywnd,nil); ShowWindow(taskbarWnd,sw_Hide); /隐藏 ShowWindow(taskbarWnd,sw_Restore); /显示 end; From: /bbs/dispbbs.asp?boardID=48&ID=4776&page=5 windows平
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论