1、1、简述面向对象技术中“类”与“对象”的概念。结合 Delphi 中使用的组件,举例说明什么是类、什么是对象。类是对象的抽象及描述,它是具有统一属性和方法的一类对象的统一描述体,是用来定义某类对象共有属性和方法的模板。而对象是类的实例。在 Delphi 环境中,组件板上的组件就是类的概念,例如按钮组件就是按钮类。而用户在窗体上创建的一个按钮就是对象的概念(按钮对象) 。用户可以在窗体上用按钮类创建若干个按钮对象,它们都是按钮类的实例。2、在 Delphi 中,什么是对象的属性、方法和事件?一个对象是由属性、方法和事件所组成。属性表示对象中的数据,方法是对象能够执行的动作,事件是能够引起对象反应
2、的条件。3、简述利用 Delphi 开发一个项目的基本步骤。 建立一个新的项目 建立窗体 在窗体上加入对象 检查和设定对象属性 编写对象的事件处理程序 编译、试运行,并进行代码调试保存项目文件,退出 Delphi 环境4、在一个单元中,全局变量和局部变量的含义是什么?说明在单元文件中如何定义这两种变量(可举例说明) 。局部变量只能在定义它的程序块中使用,且其生命周期也只存在于从程序块开始执行到程序块执行结束。在一个事件处理程序中的变量说明部分,能够定义一个局部变量,供该事件处理程序内部使用。而全局变量可以在单元中的各程序块中使用(共享) ,且生命周期存在于整个单元代码的活动期中。在 Imple
3、mentation 保留字后(但不要在程序块里)定义的变量就是全局变量。选择题 1、下列哪些条目可作为 Delphi 的变量名,哪些不行,并说明原因。abc 123 abc123 123abc file a!合法的变量名是:abc abc123选择题 7、如果想查看 showmessage 过程的帮助信息,请你说出两种获取帮助信息的方式。 通过主菜单 Help 的 Delphi Help 命令调出帮助主页面,在“索引”页输入框中输入要查找的 showmessage 单词,即可找出相关的帮助信息。 在代码中如果调用了 showmessage 过程,可将光标置于该单词中,然后按 F1 键,即可找出
4、该过程的帮助信息。选择题 2、一个项目由一组文件组成。其中一些主要文件的后缀有:.dpr .pas .dfm .dcu .dpr .pas .dfm 等请说出这些文件的中文名称及用途。答:.dpr 项目文件,存放项目的主程序 .pas 单元文件,存放源代码,如事件处理程序等。.dfm 窗体文件,数据文件,记录窗体上的数据信息(如组件位置等).dcu 目标文件,保存.pas 编译后得到的结果。.dpr .pas .dfm 是备份文件,便于用户恢复到较早的一个项目版本选择题 3、用于摆放其他组件的组件可以称之为“容器组件” 。除窗体组件外,请你再说出一个容器组件的名字。答:Panel 或 Grou
5、pBox选择题 4、简述 Edit 组件下面几个事件的引发条件:OnChange OnClick OnEnter OnExit OnKeyPress答:OnChange 当编辑框中内容改变时引发该事件OnClick :当鼠标单击编辑框时引发该事件OnEnter :当光标进入编辑框时引发该事件OnExit :当光标离开编辑框时引发该事件OnKeyPress :当在编辑框中输入文本时,每次按键都会引发该事件编程题 1、开发用户界面如下图所示的应用程序:功能说明:该界面是一个教师信息录入界面。用户在编辑框(Edit1)中输入姓名,利用单选按钮(RadioGroup1)指定性别,利用组合框(Combo
6、Box1 )选择或直接输入所在系,利用列表框(ListBox1 )指定职称。当输入完上述信息后,单击“确定”按钮,教师信息将显示在右边的 Memo1 编辑窗口中。提示:在组合框和列表框中可以预置少量测试数据。答案:通过 RadioGroup1 的 Items 属性设置两个单选按钮(“男”和“女” ) ,并将属性Column 设置为 2(按钮摆两列) 。通过 ComboBox1 的 Items 属性设置下拉选单中的系名。通过 ListBox1 的 Items 属性设置列表框中的职称列表。“确定”按钮的单击事件处理程序如下:procedure TForm1.Button1Click(Sender:
7、 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、开发一个简单的编辑器,设计界面如下图所示:该编辑器功能要求如下: 编辑窗口使用 Memo 组件实现,并为其设置垂直滚动条。 单击“打开文件”按钮,弹出打开文件对话框,用户指定要
8、打开的文件后(限于纯本文件) ,文件内容加载到编辑窗口中。 单击“保存文件”按钮,弹出保存文件对话框,用户指定要保存的文件名后,编辑区的内容保存到指定文件中,然后清空编辑区。 单击“复制”按钮,编辑区中被选择的内容拷贝到剪贴板。 单击“剪切”按钮,编辑区中被选择的内容剪切到剪贴板。 单击“粘贴”按钮,剪贴板中的内容拷贝到编辑区当前光标处。答案:建立的组件有:memo1、opendialog1、savedialog1、button15编码如下:procedure TForm1.Button1Click(Sender: TObject); /打开文件beginif opendialog1.Exec
9、ute 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
10、;procedure TForm1.Button4Click(Sender: TObject); /剪切beginmemo1.CutToClipboard ;end;procedure TForm1.Button5Click(Sender: TObject); /粘贴beginmemo1.PasteFromClipboard ;end;编程题 3、编写界面如下图所示的“系学生 主从查询”应用程序。两个按钮可以控制系记录的浏览,而学生信息总是显示当前系的学生记录。提示:系学生数要动态计算。答案:procedure TForm1.Table1AfterScroll(DataSet: TDataSe
11、t); 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)
12、; /下一记录begintable1.Next ;end;一. 选择题(共 40 道) 1. 用户开发程序时需要经常在窗体和编辑器窗口之间来回切换,可使用快捷键(A) 。 A、 F12 和 F11 B、 F12 和 F13 C、 F12 和 Ctrl+F12 D、 F12 和 Alt+F12 E、F12 和 Shift+F12 2. 某函数如下: Function check(n,k:Integer):Integer; Var m:Integer; Begin Repeat m:=n mod 10; n:=n div 10; K:=k-1 Until k=0; Check:=m End; 若调
13、用语句 y:=check(3725,3),运行后 y 值为:(A) A、 7 B、 5 C、 2 D、 0 3. 以下那个组件不可以由用户输入编辑文本(D ) A、 TEdit B、 TcomboBox C、 TMaskEdit D、 Tlabel E、 TStringGrid 4. 一个对象类可以继承和直接使用它的父类的所有成员,除了:(E) A、 public 域 B、 private 域 C、 protected 域和 private 域 D、 protected 域和方法 E、 private 域和方法 5. Delph 没有用到的文件类型有(A ) 。 A、.frm B、.pas C
14、、.dfm D、.dpr E、.res 6. Shape 组件位于(B )组件板上。 A、 standard B、 additional C、 data controls D、 system E、samples 7. Query 组件没有 Table 组件那样的(B ) 属性。 A、 DataSource B、 TableName C、 Filtered D、 Database E、 UpdateObject 8. 下面关于属性的论述正确的是(C) 。 A、 属性能实现 write 方法 B、 属性能实现 read 方法 C、 属性可以只读或只写 D、 属性可以公开或非公开 E、属性不能直接存
15、取 9. 调试程序时,需要执行执行点所在的源代码行,并停留在下一个源代码行。可通过(C )菜单项进行。 A、 Run B、 Step Over C、 Trace Into D、 Trace To Next Source Line E、Run to Cursor 10. 设 a 是布尔变量,其它是整型变量,下面正确的赋值语句是(C ) A、 x=y div 7 B、 x:=y:=z+1 C、 a:=x=y mod z D、 x+y:=z E、x+y=a 11. 表达式 round(4.2) mod trunc(2.8)的值是(A ) A、 0 B、 1 C、 2 D、 3 E、 4 12. 下列
16、常量定义合法的是(A ) A、 CONST width=7; B、 CONST case=7; C、 CONST 1A=7.9; D、 CONST century=year div 100; E、 CONST 5= D、 DIV E、 - 14. 已知 a、b、c、d 是同类型的简单变量,而且已有互不相同的值,执行下列语句: b:=a; a:=c; d:=a; d:=b; 后,其值相等的变量是(A) A、 a,c B、 a,d C、 c,b D、 b,a E、 无法确定 15. 已知有说明 Var x:real;下列程序段中的错误为:( B ) case x0 then f:=f(n-2) e
17、lse f:=f(n+3) end; 则调用 f(5)的值是 ( A) A、 0 B、 1 C、 -1 D、 -2 E、 2 20. 下列类型中合法的是(A ) A、 TYPE a=1010; B、 TYPE b=105; C、 TYPE c=0SQRT(10); D、 TYPE d=10.020.0; E、 TYPE e=random(9)1 21. 下列类型的变量中,不能用 write 语言直接输出的变量是( ) A、 布尔型变量 B、 枚举型变量 C、 整型变量 D、 字符型变量 E、 长整型变量 22. 假定 y 是集合变量,变量 x 的类型与 y 的基类型相同,则下列表达式错误的是(
18、 ) A、 x in y B、 y-x C、 x+ *y D、 yak then k:=I; writeln(ak); 执行后输出的是(B ) A、 数组中的平均值 B、 数组中的最大值 C、 数组中的最小值 D、 数组中的总和 E、 无法确定 26. 已知 Var f:file of integer;则 f 所代表的文件是( D ) A、 ASCII 码文件 B、 二进制文件 C、 文本文件 D、 存放整数的文本文件 E、 HTML 文件 27. 在 VCL 中(A )是 TDBListBox 的父类 A、 TCustomListBox B、 TListBox C、 TDBDataset D
19、、 TDatabase E、TDBEdit 28. 为让控件显示弹出式提示框文字,需用到控件的(B)属性 A、 Handle B、 Hint C、 ShowHint D、 Showing E、Visible 29. 发生在鼠标左键单击控件时的事件是(C) A、 OnMouseDown B、 OnMouseUp C、 OnClick D、 OnDbClick E、OnEnter 30. 下列值中不是 FormStyle 属性的可能值的是(B ) A、 fsNormal B、 fsMIDChild C、 fsMIDForm D、 fsStayOnTop E、fsDeskTop 31. ( )是 D
20、elphi 包含的文件管理子例程 A、 Append 和 insert B、 Append 和 MkDir C、 FileClose 和 insert D、 MkDir 和 insert E、GetDir 和 insert 32. ( )是与 DDE 有关的组件 A、DdeServerConv/DdeClientConv/DdeServerItem/DdeClientItem B、DdeServer/DdeClient C、DdeConv/DdeItem D、DdeConv/DdeServerItem E、DdeServer/DdeClient/DdeServerItem/DdeClientI
21、tem 33. 使用 Delphi 多线程的优点是( A) A、程序运行速度加快 B、不需要考虑同步访问共享资源与内存 C、程序编写更简单 D、可以在后台运行线程 E、不会是 Windows 出错 34. 有多种方法可以在 OLE 文档接收器中放置对象,但不包括( A) A、使用特定的菜单命令嵌入对象 B、从剪贴板粘贴对象,来建立新嵌入对象 C、从剪贴板粘贴链接对象,来建立新嵌入对象 D、由服务器生成的文件中建立新对象。 E、通过 ODBC 接口,传递对象 35. 用于异常处理的关键字不包括(A ) A、try B、except C、finally D、raise E、error 36. 以下
22、说法不正确的是( ) A、VCL 组件是 Delphi 最有效和最有用的组件 B、COM 是 OLE 和 ActiveX 的基础 C、COM 对象可用于任何 Windows 编程环境 D、VCL 组件是 COM 对象 E、典型的 COM 对象包含在扩展名为.DLL 或.OCX 的文件中 37. TcomboBox 组件 Style 属性缺省值为(A ) A、csDropDown B、csSimple C、csDropDownList D、csOwnerDrawVariable E、csOwnerDrawFixed 38. 对象库“New Item”的“New”标签页能创建的对象有( ) A、P
23、ackage、DLLs、Component 、Web Server Application B、Package、COM Object、Component、Web Server Application C、Package、DLLs、Component、About Box D、Package、DLLs、Component 、DB Web Application Wizard E、Package 、DLLs、Component、MID Application 39. Delphi 中取值范围 0 到 255 的数据类型是(B ) A、ShortInt B、Byte C、SmallInt D、Real
24、 E、Word 40. 以下关于事件的说法不正确的是( ) A、不一定要响应某个组件所定义的所有事件 B、多个组件可以共享同一个事件处理程序 C、根据需要可以响应任何组件的事件 D、单击 Object Inspector 中的事件处理程序名,Code Editor 将自动进入该事件的代码段。 E、事件的 Sender 参数是用来决定哪个组件产生了此事件 二. 是非题(共 20 道) 1. 从主菜单上选择 Project|Syntax Check 菜单选项,Delphi 将编译从上次编译后有改动的任何单元,并报出遇到的错误。 (是 ) 2. Delphi 的 VCL 对象有些是指针,从堆栈中分配
25、空间,有些则不是。 ( ) 3. 粘贴时,如果作为容器的组件已被选择,剪贴板中的组件会当作容器组件的子组件来粘贴( ) 4. 在由 Delphi 管理的窗体类声明段中加进任何代码都会引起程序出错。 ( ) 5. Delphi 可以在一个报表中使用一个以上的明细区( ) 6. Delphi 可以象其它开发工具一样使用传统的资源,比如菜单可以作为资源加载,以利于实现多国语言环境。( ) 7. 创建组件时可以定义属性的缺省值,但字符串属性不能有缺省值。( ) 8. 声明一个常量后,在程序中则不可以改变这个常量的值。( ) 9. 构造子必须通过类的一个有效实例来激活。( ) 10. 在设计阶段 Obj
26、ect Inspector 显示被选组件的所有属性。( ) 11. 在 Delphi IDE 中,按住 Shift 键,同时单击 Components Palette 上的组件图标,可以在窗体内放置多个同类组件。 ( ) 12. 为减少编程中的错误,用户可以使用 Delphi 提供的系统函数 IsValidIdent检验字符串是否合法。 ( ) 13. 用户如果不在一个完整的事件响应过程添加任何代码,当保存或编译该项目时,该过程将被自动清除。 () 14. 使用 Runtime Packages 技术可以将原先独立的可执行文件分解为动态链接库加上小的可执行文件,这样作的好处是所占磁盘空间比一个
27、独立的可执行文件小。( ) 15. Delphi 和 VB 一样不能产生真正的可执行代码(本机代码) ,但是 Delphi开发的程序比 VB 的运行速度快。( ) 16. 大多数组件的属性可以在运行时改变,而且,有些只能在运行时刻改变。() 17. 对于用户的 Delphi 工程中创建的窗体及其组件的属性都保存在一个独立的描述文件,即扩展名为 DSK 的文件中。( ) 18. Search 菜单的 Find Error 命令是用来寻找运行时的错误,而不是寻找编译错误。 () 19. Enabled 属性不适用于非可视组件。 ( ) 20. Delphi 采用基于对象的引用模式,即类的每一个变量
28、不保存对象的值,而保存一个引用或一个指针来说明对象存储的内存位置。 ( )作为一个世界级的大型软件公司,Borland 的面试题也是与众不同的 ,经过我们众多面试者的收集,现在将我们遇到过的题列出,希望 对想去 Borland 工作的人有点帮助。首先说一句,这些题都很难,不要用一般的眼光去看待,也许超常 一些的回答会更有吸引力,实际面试时这些题是随机抽取的,技术 类和实践类共计 10 题,每类 5 题,其他类的不一定是试题,有可能 Borland 的工作人员会请你喝咖啡,然后在曰常的对话是无意的问到 ,这类问题最为麻烦,答不好就完蛋。Borland 公司对人才的需求不 仅仅是 Delphi,如
29、果你精通 JBuilder 或 C+Builder,Borland 一样欢 迎技术类 1.链表和数组间的区别是什么? (Delphi 中数组就是链表)2.列举出你知道的种排序算法 。3.你在什么情况下会手动的为程序分配内存? 4.什么是 RTTI?(Runtime Type Information,运行期类型信息) 5.线程和进程间的区别是什么? 6.malloc 和 new 的区别是什么?(此题有极大的陷阱,delphi 中的 new 过程只是针对 OLE 对象的,常规的对象不能够使用 new。而 malloc 可以对任意的对象分配内存,这里需要用到 sizeof 函数。 ) 和 com+
30、间的区别是什么? 8.OLE 和 ActiveX 的区别是什么? 9.你将如何用 Delphi 实现 Corba?(用 delphi 自带的 Corba 工具对程序进行转换即可) 10.delphi 的编译核心是什么?(80x86 汇编 + Object Pascal) 11.如何跨越 windows 平台直接操作 CPU?(使用 asm 关键字写入汇编代码即可) 12.delphi 如何编写 CGI 程序?(使用 WebBroker,WebSnap, WebService 均可实现) 13.delphi 与 VB 的区别是什么? 14.delphi 与 C+的区别是什么? 15.delphi
31、 与 Java 的区别是什么? 16.你将如何做到软件与网络的结合? 17.如何在 Linux 下安装 delphi(与 Windows 下安装方法相同) 18.如果在一个 TPageControl 中要生成多个相同的 TTabSheet,你将如何做以减小代码冗余?(将 TTabSheet 连同其中控件及方法一起抽象成类) 19.delphi 中有内置 API 函数吗?(有陷阱,delphi 中没有内置 API 函数,delphi 实现的 API 功能完全由代码实现) 20.如何用 delphi 编写 C+的插件? 21.如何用 delphi 编写 Java 的插件? 22.列举出 delph
32、i 能够操作的数据库(这题答所有的数据库就行了, 不然你一辈子也列举不完,delphi 的系统中自带的数据库驱动就有几百套) 23.delphi 中如何实现静态方法? 24.你将如何把一个类封装到记录(Record)中?(看起来很难,其实很简单,先声明一个类,然后声明 record,在 record 的成员中设定类成员即可) 25.你将如何实现控件的动态事件绑定? 26.你将如何用 delphi 编写出 ASP 网站?(使用 IntraWeb 组件和 AW 转换器即可,或者直接用 ExpressWeb 进行开发) 27.请讲出的层次(这题最变态,从 TObject 开始背吧) 28.如果有你编
33、写不了的功能,你会怎么处理? 29.GNome 下的 delphi 有什么特殊的功能?(如果你没用过 GNome,想进 Borland 就很难,Borland 规定的操作系统就是GNome)30.你将如何把一个自定义类型的数据从服务端传递到客户端?(别被迷惑,其实只需串行化就行了) 31.你将如何用 delphi 动态的创建一个 Paradox 表? 32.你将如何解决 windows 系统下出现的未调用 CoInitialize 错误? 33.如何用批处理文件编译 delphi 程序?(用 DCC32.EXE 在命令行下进行编译) 34.你会在什么时候使用 published 访问区分符?实
34、践类 1.用数组实现栈,并且当栈空间满时,栈空间增加一倍。 2.输入年月曰格式 yyyymmdd,判断是否是周末。 3.遍历一棵树,不能用递归 4.读取一个 XML 文档,将其中的字段输入到数据库中 5.编写一个程序读取计算机上的 SQL Server 数据内容(给你编程的计算机没有安装 SQL Server,也不允许安装,同时,也没有任何的可用服务器与这台计算机相关联。这道题看起来非常难,实际上你操作了就知道,解决方法甚至比通过服务器连接更简单) 6.编写一个程序,向指定号码的手机发送一条短信(给你编程的计算机已开通 GPRS 服务,发送的号码是考官的手机号) 7.编写一个程序,读取指定文件
35、夹内的所有文件(那个文件夹里有近万个文件,必须用多线程的方法进行设计,不然程序一运行就会卡死) 8.编写一个程序,为本机获取一个二级域名(这个很难,不知道怎么做,估计需要知道域名协议的有关内容) 9.编写一个程序,这个程序能够判断一个可执行文件是用什么语言编写的(涉及到资源流的概念,同时需要熟悉各编程语言的特性代码) 10.编写一个服务器,这个服务器能让互联网上的用户访问到,并且能够显示一个网页。 11.编写一个能够同时在 windows 和 Linux 下运行的记事本程序12.编写一个能够在局域网内相互发送文件的程序(使用内存流即可轻松解决此问题) 13.编写一个程序,输入生曰后输出从生曰到
36、现在已经过了几天 14.编写一个程序,该程序的窗体没有边框,但是可以通过按下键盘的方向键来移动。 15.用 Delphi 实现 Java 中的 EJB 操作(别说你没有学过 Java,delphi 的特性就是多语言支持,这个一定要掌握的) 16.编程一个过程,这个过程可以将任意的程序发送快捷方式到任意位置(使用 OLE 技术制作即可) 17.制作一个软件,它可以访问,添加,修改或删除 Paradox 数据内的数据,但是这个软件不允许写任何的代码 18.编写一个程序,这个程序能够启动记事本,并且等待它运行结束(用进程勾子制作即可) 19.编写一个 16 进制数转为 10 进制数的函数,但是只允许
37、写一行代码其他类 1.你喜欢喝咖啡吗? 2.你抽烟吗?(Borland 公司内禁止抽烟,该怎么回答应该知道吧) 3.你有女朋友吗? 4.你谈过几次恋爱?(从恋爱的次数能看出一个人的稳定性,越少越好) 5.你无聊的时候会想到要做什么?(千万不要回答写程序,这样只会让别人以为你是呆子,除了写程序什么也不会) 6.你怎么会想到要成为一个程序员? 7.如果公司暂时无法为你安排岗位,你愿意先在公司做勤杂吗?(这题问的很有水平,千万不要因为急于想进 Borland 而回答“愿意” 。你应该拒绝,因为程序员本来就不是做杂活的) 8.你以前有没有学过其他的编程语言? 9.你对微软或是 Sun 公司的评价怎样?
38、 (不要说太偏激的活,特别不要谈到龚断之类的东西,因为 borland 自己也龚断得厉害)10.如果让你做项目经理,你会如何分配手下员工的工作?(最好的回答是“不知道” ,因为你现在不是项目经理,没有必要谈那么多理想的东西,Borland 不喜欢那些事情没做就先夸夸其谈的文来自百度知道第一部分 Delphi 知识1. 如果一个元件希望放到 IDE 的元件面板上,它必须从 _类派生,如果一个元件能作为其它元件的容器,它必须从_类派生,如果一个元件在运行时可见,它必须从_类派生(A)TGraphicControl (B)TWinControl (C)TComponent (D)TPersisten
39、t (E)TControl2、写出 TEdit、TLabel 、TTimer 的主要继承路径,答题格式 TXXX-TXXX-3、1) 为防止界面窗体“僵死” ,可调用如下代码A、Application.DoEventB、Application.DoEventsC、Application.IdleD、Application.ProcessMessages2) 解释为什么?4、有如下类定义,请问类 THouse 的 InstanceSize 是_TPoint = packed recordX: Longint;Y: Longint;end;THouse = classprivateFOwner:
40、string;FPosition: TPoint;FBounds: array02 of Integer;FLessees: TStrings;publicprocedure Paint;property Owner: string read FOwner;end;A、24 B、28 C、32 D、405、常用的控件 ListBox、ComboBox 等都有 BeginUpdate 和 EndUpdate 方法,请问他们的主要作用是什么?6、写 SQL 语句如果有一个部门人员表 BaseInfo,字段为 ID,PID ,Name(姓名) ,PID 表示上下级关系:(1)分组查询:统计每个 PI
41、D 的记录数 ID 记录数(2)请做一个查询,得到以下结果( 按姓名排序)ID 姓名 下属姓名(3)在 TSQL 中使用事务需要用那些 SQL 关键字?7、解释一下 Windows 的消息机制和经典 Windows 应用程序的运作流程8、解释 Delphi 中“事件”的实现原理,如果你要为控件扩展一个自定义事件,你该怎么做?9、为什么在 TList 中 Add 操作要比 Insert 操作快?10、某次调试中发现某树形控件响应很迟缓,经调试发现是如下语句,TreeView.Items.Clear 执行缓慢,请分析可能的原因是什么?第二部分 Delphi 编程【编程】 给定一个文本文件(英文文章
42、) ,统计其中各单词的频次。网友提供答案:1. C,B,E2.TObject-Tpersistent-TCompernent-TWinControl-TCustomEdit,TObject-Tpersistent-TCompernent-TGraphicControl-TCustomLable,TObject-Tpersistent-TCompernent3.D4.C在 DELPHI 中调用存储过程和使用内嵌 SQL 哪种方式更好,为什么?各有好处,要根据需要而言。存储过程优点:相对而言,由于其在服务器端执行,只返回结果集,网络流量较低,速度会快一点,而且,更好的做到了界面与业务逻辑(存储过程)的分离,由于 C/S 模式在维护升级方面的特点,如果后期业务逻辑发生变化,只需要修改存储过程就可以了(前提是原存储过程接口定义的好) ,而不需要升级所有客户端。缺点:在一些跨 DBMS 的系统中,需要将存储过程迁移到另外的 DBMS(如从SQL Server 转到 Sybase) ,这是需要一定的工作量的。而如果采用内嵌 SQL,一般情况下是使用标准 SQL,对许多流行的 DBMS 都是通用的(如果不使用该 DBMS 特有的系统函数的话) ,就不存在这个问题。内嵌 SQL优点:编写容易,控制灵活。缺点:上面存储过程中有描述。