摘要: 写了一个测试代码, 创建一个窗体拉上一个按钮控件,复制以下的代码unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTForm1=class(TForm)Button1:TButton;procedureButton1Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;C1=class//(TPersistent) pr 阅读全文
posted @ 2008-12-10 10:08 靓点博客 阅读(330) 评论(0) 推荐(0) 编辑
摘要: TObject简要说明Delphi的对象机制浅探有个意思的学习CreateDelphi 的消息机制浅探VCL窗口函数注册机制研究手记,兼与MFC比较 阅读全文
posted @ 2008-12-08 12:02 靓点博客 阅读(114) 评论(0) 推荐(0) 编辑
摘要: TObject = class //创建 constructor Create; //释放 procedure Free; //初始化实列 class function InitInstance(Instance: Pointer): TObject; //清除实列 procedure CleanupInstance; //获得类的类型 function ClassType: TClass; //获得了的名称 class function ClassName: ShortString; //判断类的名称 class function ClassNameIs(cons... 阅读全文
posted @ 2008-12-08 11:39 靓点博客 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 一、owner和parent的区别: parent属性是指构件的包容器,构件只能在此范围内显示和移动。举例子如下: (1)在form1的窗体上,放一个panel1,并将panel1拉大, (2)在panel1上放一button1; (3)在form1上放一button2。 现在如果移动panel1,则button1随着panel1移动,这是因为button1的parent是panel1。现在将button2移到panel1上,再次移动panel1,button2并不跟着移动,这是因为button2的parent是form1。除在窗体设计中,应注意构件的parent是谁外,在动态创建构... 阅读全文
posted @ 2008-10-31 08:29 靓点博客 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 有时随着项目改变开发语言也要换,今天用C#,明天可能就用DELPHI,在此把DELPHI文件结构备忘一下unitUnit1;interface{接口部分开始}uses{引用单元列表,这是可选的,如果包含必须紧跟interface关键字}{接口部分声明常量/类型/变量/过程和函数,这些声明对引用单元就像自己的声明一样}{在接口部分声明的过程和函数,就像使用了forward关键字}{接口部分结束}implementation{实现部分}uses{如果包含uses字句,必须紧跟关键字implementation}{在这里实现interface中定义的过程和函数,可以任意顺序的定义和调用.}{在这里可 阅读全文
posted @ 2008-10-31 00:34 靓点博客 阅读(390) 评论(0) 推荐(0) 编辑
摘要: 控件关联的实现控件的关联在Delphi中也是很常见的,我们可以设定一个控件的某个属性指向另一个控件。比如我们在窗体上放上Tedit,TpopupMenu两个控件,然后设定Tedit的PopupMenu属性为TpopupMenu控件,运行后在Tedit点击右键就会弹出刚才设定的那个TpopupMenu菜单,也就是说Tedit,TpopupMenu联手完成了任务。再比如TDBEdit控件的DataSource属性就可以指向一个TdataSource控件,这样就可以在TDBEdit控件中显示TdataSource输出的某个字段的值了。 下面我们将写一个简单的实现控件关联的控件。这个控件派生于Tedi 阅读全文
posted @ 2008-10-28 15:09 靓点博客 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 复合控件复合控件是Delphi控件中非常重要的一种控件,复合控件就是将两个或两个以上的控件重新组合成一个新的控件。例如TspinEdit、TlabeledEdit、TDBNavigator等就是复合控件,TDBNavigator其实就是在一个Panel放上若干个Button而已。制作一个复合控件时,我们一般从TwinControl派生控件。我们这次做的控件是拥有一个Edit编辑框和一个Button按钮的复合控件,在用户在编辑框中输入文字的过程中,Button将随时显示编辑框中文字的长度。我们把控件的源码先展示给大家。unit EditButton;interfaceuses SysUtils, 阅读全文
posted @ 2008-10-28 13:48 靓点博客 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 我们这个控件将演示控件的自定义事件的书写。这个控件有一个类型为string的SensitiveText属性,当用户在输入框中输入的文字为InvalidText时就会触发OnSensitiveText事件。按照惯例,我先把源码展示给大家:unit TextSenseEdit;interfaceusesSysUtils, Classes, Controls, StdCtrls;typeTSensitiveTextEvent = procedure(AText: string) of object;//方法指针TTextSenseEdit = class(TEdit)privateFSensitiv 阅读全文
posted @ 2008-10-28 11:36 靓点博客 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 有人说过“不会开发控件的Delphi程序员不是真正的程序员”。Delphi正是由于高度的可扩展性和大量的第三方控件的支持才能吸引无数程序员挑剔的目光。即使是由于工作需要使用其他开发工具的开发者也常常怀念和Delphi度过的日日夜夜。接触Delphi已经一年多了,从当初对着Delphi组件面板上上百个控件不知所措,到现在已经可以根据需要开发一些有一定难度的控件,其中走过的路是十分艰辛的,所以特此写下这篇文章,将自己的经验留给后来者,也算是献给“同门师弟”的一份厚礼吧! 需要说明的一点是:在写这篇文章之前我假设读者已经对面向对象的基本知识有一定的了解,所以对于文章中面向对象相关的概念将不再展开讲. 阅读全文
posted @ 2008-10-28 10:00 靓点博客 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 近日在delphi中向ACCESS插入数据库老是提示‘Exception class EOleException with message 'INSERT INTO 语句的语法错误。’非常怪,在ACCESS中的SQL视图中确可以运行,未有语法问题,在试来试去总算发现在插入的安段中加上中括号就可以解决,之前的都不会估计是此次表内的某个安段成为ACCESS或ADO之类的关键字影响吧!在此记录备忘一下 阅读全文
posted @ 2008-09-23 17:35 靓点博客 阅读(320) 评论(0) 推荐(0) 编辑