Delphi学习笔记.docx_第1页
Delphi学习笔记.docx_第2页
Delphi学习笔记.docx_第3页
Delphi学习笔记.docx_第4页
Delphi学习笔记.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 问题记录1) 界面程序运行后一闪,未出现界面原因:是界面对象未加入到程序应用中修改:在.dpr文件中,添加Application.CreateForm(TForm1, Form1);2) F2039 Could not create output file Project1.exe原因可能是:一、Project1.exe已经在运行;二、输出目录设置错误3) “8” is not a valid component name.原因:组件名赋值错误,不能以数字开头修改:查找了好久,没发现组件的名称属性有问题,后来调试发现,在代码中给一个组件的Name赋值时赋的是”8”4) Unsatisfied forward or external declaration过程或函数没有定义,或者定义错误5) Duplicates not allowed对于TDictionary不允许重复的键,但允许值重复6) Only one of a set of overloaded methods can be published在published里不能有重名的函数,只是在published里7) Cannot override a non-virtual method有时是把overload误写成override了8) 程序结束时,提示错误Invalid pointer operation在FormDestroy中释放了无效指针9) 双击某个事件时出现” cannot find implementation of method xxx”原因:该事件函数已经存在但是错误的,因为只有声明没有实现2. 快捷键F12:Design与Code之间切换Ctrl + Shift + T:待办清单Ctrl + Shift + C:快速函数实现Ctrl + Shift + 09:设定或取消标签3. 英语margin:边缘anchor:锚glyph:浮雕virtual:虚拟 visual:可视的4. Delphi使用技巧1) 同步修改:选中一段,点双杠图标2) 格式化:右键-Format Source3) 未声明变量添加声明:右键-Refactor-Declare Variable4) History功能:查找版本之间的区别5) Project-View Source:显示主程序文件6) 工程名不能与单元名或模块名重名7) Cancel指Esc键8) Default指回车键9) TOpenDialog、TSaveDialog组件是非可视组件,在设计期,看到的是组件的图标,只有调用对话框的Execute方法,才能在运行期看到真正的对话框10) 设置组件随窗口大小的改变而改变:设置Anchors属性11) MessageDlg不是控件12) TStringGrid控件拖动改变宽度:Options-goColSizing的属性为True13) if语句如果不用begin和end,则if语句会包含该作用域后面的所有14) 设置程序输出路径:第一步第二步5. Delphi优势1) 生成的.exe文件是独立的,不需要dll2) Delphi采用3层数据管理模式:数据层、对象层、应用程序层6. 语法1) Pascal CObject Pascal C+ (未可视化)2) $APPTYPE CONSOLE是一个编译器指令,它告诉编译器的意思是这个程序是一个控制台程序3) 十六进制以$开头4) 控制字符以#开头5) implementation后紧跟的var(在过程和函数外部),也是全局变量,只是不能被其他单元引用6) if语句:与C不同的只是多了个then关键字if A then Bif A then B else C7) 复合语句使用:beginend;一般的end后面都有分号,但是else前面的end没有分号8) 类如果不指明父类,则默认的父类为TObject在定义构造函数时,不用function,使用construct,函数名通常是Create构造器不能自动调用,必须手动调用:FooObject := TFooObject.Create;Self相当于C+中的this9) procedure of objectdelphi中经常见到以下两种定义:TypeTMouseProc = procedure (X,Y:integer);TMouseEvent = procedure (X,Y:integer) of Object;两者样子差不多,但实际意义却不一样:TMouseProc只是单一的函数指针类型;TMouseEvent是对象的函数指针,也就是对象/类的函数/方法。区别在于类方法存在一个隐藏参数self,也就是说两者形参不一样,所以不能相互转换。7. 知识点1) 获取TDictionary的key和value:for key in Dictionary.Keys do Dictionary.Itemskey;2) 定义class只有end没有begin3) 类型别名之类的定义尽量放到文件前部4) .pas文件最后的end有.5) property的read和write类的变量一般定义在private或者protected里面,这样外部是访问不到这些变量的。当有需要将某个或者某些变量暴露出来给外界访问,就在public区或者published区定义一个property,property后面跟着的read表示外界引用这个property的时候,从什么地方返回值,write表示外界给这个property赋值的时候,把这个值放到什么地方去。read和write后面的应该都是private或者protected里面的6) 定义的新类如果默认继承TObject,则class后的括号也不要7) Delphi的提示信息是hint8) 除了值类型,其它类型都是引用类型,某种意义上说,你可以把它当做一种指针,所以对于引用类型,不要用指针9) 局部对象如果由全局对象赋值,不要对局部对象Free;另外,对象之间的赋值一定要小心,尽量不这样做,因为这样做后,Free或Clear都很危险10) 程序段想中间退出的话,使用Exit11) 继承类默认有个Create,如果有新的Create,且没有overload,则覆盖原有的Create,如果有overload,则原有的Create保留12) 重写父类的虚函数,如果加上overload是重载,如果啥都没有,会有告警,如果加上reintroduce则能消除告警13) 选中位置的背景色是clHighlight14) DrawCell里的参数Rect并不是该Cell的区域15) string的Split可以使用多个分隔符,很好用16) TEdit不允许编辑设置:ReadOnly设为True17) 嵌套函数和过程,不能被外部调用,而且逻辑清楚,方便回收18) 加异常处理要注意,有的地方触发异常,只是可能没有添加引用,所以不能执行19) 路径分隔符使用20) PChar转string:strPas;string转PChar:PChar21) Format相当于sprintf22) 类的属性无限定符情况下,如果类没有被$M+修饰,默认是public,相反则是published,如果继承被$M+修饰的类,则该类的属性无限定符情况下默认也是published23) Owner:很多控件的构造函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论