随笔分类 - Delphi-Controls开发
摘要:这是一个在窗体标题栏添加自定义按钮的组件(TTitleBarButton)开发实例,标题栏按钮组件TTitleBarButton以TComponent为直接继承对象,它是一个可以在窗体标题栏上显示按钮的组件,像最大化、最小化和关闭按钮等。 1、首先确定组件的属性。 属性是组件的重要组成部分,它相当于
阅读全文
摘要:现看下面这两个方法,把一个TComponent做成String,再就是把String转成TComponent function ComponentToStringProc(Component: TComponent): string; var BinStream:TMemoryStream; Str
阅读全文
摘要:没办法,改源代码: 找到:Forms单元中scrollbox的父类: TScrollingWinControl = class(TCustomControl) 改: { TScrollingWinControl } // //begin TOnAfterScroll=procedure(Scroll
阅读全文
摘要:unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ImgList, ExtCtrls; type TForm2 = class(
阅读全文
摘要:The component below works perfectly, except for the following problem: 1) Saves the component below in a file "trancomp.pas".Then, install this compon
阅读全文
摘要:这个控件直接继承自TWinControl,因此不是改写Paint;函数,而是直接改写PaintWindow虚函数,它在VCL框架里被直接调用,直接就把自己画好了(不用走给控件Perform(WM_Paint)的路线了),很有意思。 ----------------------------------
阅读全文
摘要:unit ImagePanel;interfaceuses Windows, ExtCtrls, Graphics, Classes, Controls; // SysUtilstype TImagePanel = class(TCustomPanel) private { Privat...
阅读全文
摘要:VMT 在创建一个类的实例之后,编译器在该对象的内存空间的首4个字节安插一个指针,该指针指向的地址称为VMT(Virtual Method Table,虚方法表),这个表中放了该类的所有虚方法的入口地址。 在Object Pascal中,所有类实例都会有这么一个指向VMT的指针。如果没有在类中声明虚
阅读全文
摘要:封装 封装目的:把可变部分与稳定部分分离开来。将稳定部分暴露给其它块,而将可变部分隐藏起来,以便随时让它改变。 Object Pascal中,实现了两个级别的封装:类级和单元级 类级别的封装:published与public差不多,区别在于published的成员可以被Delphi开发环境的Obje
阅读全文
摘要:Delphi对象所占内存空间大小 对象所占的内存空间大小取决于这个对象中的数据成员,加上一个4字节的VMT,成员函数不占空间。注意:编译器对于无法合并的小于32位空间的数据域填充到32位大小,以加快存取速度。所以两个16位的word会被合并成一个integer。但一个单独16位的word会被扩展成一
阅读全文
摘要:Delphi里定义一个类:type TMyClass = classend; 使用方法:var MyObj: TMyClass;begin MyObj:=TMyClass.Create(); // 构造函数 MyObj.Free(); // 调用析构函数end; Delphi的简单类型,如Integ
阅读全文