Delphi

Delphi: RTTI and TObjectList<TObject>

此生再无相见时 提交于 2020-02-02 04:07:56
问题 Based on one answer to an earlier post, I'm investigating the possibility of the following design TChildClass = class(TObject) private FField1: string; FField2: string; end; TMyClass = class(TObject) private FField1: TChildClass; FField2: TObjectList<TChildClass>; end; Now, in the real world, TMyClass will have 10 different lists like this, so I would like to be able to address these lists using RTTI. However, I'm not interested in the other fields of this class, so I need to check if a

Delphi: RTTI and TObjectList<TObject>

笑着哭i 提交于 2020-02-02 04:06:47
问题 Based on one answer to an earlier post, I'm investigating the possibility of the following design TChildClass = class(TObject) private FField1: string; FField2: string; end; TMyClass = class(TObject) private FField1: TChildClass; FField2: TObjectList<TChildClass>; end; Now, in the real world, TMyClass will have 10 different lists like this, so I would like to be able to address these lists using RTTI. However, I'm not interested in the other fields of this class, so I need to check if a

Delphi GDI 图形设备接口Graphics Device Interface

耗尽温柔 提交于 2020-02-01 22:24:22
GDI (图形设备接口(Graphics Device Interface)) GDI是图形设备接口的英文缩写,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形和图像输出。GDI的出现使程序员无需要关心硬件设备及设备正常驱动,就可以将应用程序的输出转化为硬件设备上的输出和构成,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。 在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。 特点: 1. 不允许程序直接访问物理显示硬件,通过称为“设备环境”的抽象接口间接访问显示硬件; 2. 程序需要与显示硬件(显示器、打印机等) 进行通讯时,必须首先获得与特定窗口相关联的设备环境; 3. 用户无需关心具体的物理设备类型; 4. Windows参考设备环境的数据结构完成数据的输出。 GDI函数大致可分类为: 设备上下文函数(如GetDC、CreateDC、DeleteDC)、 画线函数(如LineTo、Polyline、Arc)、 填充画图函数(如Ellipse、FillRect、Pie)、 画图属性函数(如SetBkColor、SetBkMode、SetTextColor)、 文本、字体函数(如TextOut、GetFontData)、 位图函数

Delphi and enum

好久不见. 提交于 2020-02-01 20:51:34
问题 Does Delphi have an analog of enum in C? 回答1: Yes, Delphi has the following enumerated type construction: type TDigits = (dgOne, dgTwo, dgThree <etc>); Also, like in C, each symbol of an enumerated type may have a specified value, like this: type TDigits = (dgOne = 1, dgTwo, dgThree <etc>); 回答2: Yes. Check out the first portion of Delphi Basics: Enumerations, SubRanges, and Sets. 回答3: Have a look at Enumerations, SubRanges and Sets 来源: https://stackoverflow.com/questions/2379239/delphi-and

Delphi and enum

北城余情 提交于 2020-02-01 20:51:24
问题 Does Delphi have an analog of enum in C? 回答1: Yes, Delphi has the following enumerated type construction: type TDigits = (dgOne, dgTwo, dgThree <etc>); Also, like in C, each symbol of an enumerated type may have a specified value, like this: type TDigits = (dgOne = 1, dgTwo, dgThree <etc>); 回答2: Yes. Check out the first portion of Delphi Basics: Enumerations, SubRanges, and Sets. 回答3: Have a look at Enumerations, SubRanges and Sets 来源: https://stackoverflow.com/questions/2379239/delphi-and

Delphi使用资源文件全攻略

夙愿已清 提交于 2020-02-01 11:00:14
本文为原创,如需转载,请注明作者和出处,谢谢! 在通常情况下使用delphi设计程序,都是将字符串、图像等资源直接使用delphi提供的vcl控件加到*.dfm中,这样做会合修改这些资源时带来 不便,如果资源被多次引用,这些资源在程序启动时都被加载到内存中,非常耗费系统资源。因此,这就需要一种新的引用资源的文件:资源文件。资源文件就是将 一些资源,如字符串、图像等信息进行编译,然后在程序中引用编译后的资源文件,最后和源程序一起编译生成可执行文件。由于在资源文件中的资源是在需要时加 载,因此,比较节省系统资源,而且,如果要做国际化版本的系统,只需要将资源文件一换,重新编译即可。下面就详细介绍delphi中资源文件的建立和使 用。 一、建立资源文件 资源文件的源文件是普通的文本文件,扩展名是*.rc。将资源文件的内容写入文件后,调用brcc32.exe将其编译后生成*.res文件。brcc32.exe在delphi的bin目录中。 二、字符串资源 字符串资源实际上是将一个字符串和一个数字索引对应,在装载字符串资源时,需要提供这个字符串资源所对应的数字索引。字符串资源文件以stringtable开头,使用一对begin和and将资源定义括起来。 字符串资源的格式是:数字索引,"资源字符串"。 string.rc文件内容 stringtable begin 1001, "新建" 1002,

Delphi学习使用资源文件,嵌入和提取任何类型的文件

感情迁移 提交于 2020-02-01 10:59:35
创建资源文件 首先创建一个.Rc的纯文本文件。格式如下: 资源标识符 + 关键字 + 资源文件名 ① 资源标识符:程序中调用资源时的特殊标号; ② 关键字:标识资源文件类型; MIDIFILE midi '文件名 ' Wave: 资源文件是声音文件; RCDATA: JPEG文件; AVI: AVI动画; ICON: 图标文件; BITMAP: 位图文件; CURSOR: 光标文件; 资源文件名:资源文件名; ③ 资源文件名:编译的资源文件,比如动画、位图、光标等; ④ 如:MyWav WAVE "FileName.Wav " 使用Borland资源编译器(BRCC32.EXE)转化.Rc文件成.Res文件。在DOS命令行下输入下列命令: Brcc32 FileName.Rc // Brcc32.Exe在Delphi5Bin文件下。 3.在工程中引用资源文件 为了存取我们的资源文件,必须告诉Delphi链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述功能。这条指令必须紧跟在窗口指令后,如下形式: {$R *.DFM} //Delphi自带编译指令 {$R FileName.Res} //新加入的编译资源文件的指令。 不要删除{$R *.DFM}指令,因为这行代码告诉Delphi链接下面的资源到窗口的资源中。 4.调用资源文件 (1)存取资源文件中的位图

delphi资源文件制作及使用详解

安稳与你 提交于 2020-02-01 10:58:35
摘自:http://www.ej38.com/showinfo/delphi-131567.html 一、引子: 现在的Windows应用程序几乎都使用图标、图片、光标、声音等,我们称它们为资源(Resource)。最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用。资源是程序的一部分,程序要正常运行就离不了资源文件。但是它是不可执行代码。 为了更好地管理资源,Delphi中提供了一种.RES类型的资源文件。它可以把我们程序中所需要的资源整合到一个资源文件(.RES)下来。在编译应用程序时直接编译进了可执行程序里,成为应用程序的整合体。 这样做的好处是:1。由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快。2。多种资源可以放在一个文件中,减少了图标、图片、光标、声音等文件数量。不用怕用户在使用过程中的不小心而损坏了资源文件致使程序无法正常运行。 缺点是:因为资源文件的加入从而加大了编译出的可执行程序的字节数,当资源文件较大时会使应用程序变得看起来雍肿。 使用资源文件的优点很显著,其缺点也很突出。所以在实际应用中就要根据情况权衡利弊、灵活使用,这已不在本文的讨论之列。下面仅就Delphi系统编程中对于资源文件的使用方法做一个大致的总结。 二、创建资源文件: 注意事项:创建的资源文件名不要和工程名相同

Delphi 资源文件( .res)

浪尽此生 提交于 2020-02-01 10:57:59
一. 现在的Windows应用程序几乎都使用图标、图片、光标、声音等,我们称它们为资源(Resource)。最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用。资源是程序的一部分,程序要正常运行就离不了资源文件。但是它是不可执行代码。 为了更好地管理资源,Delphi中提供了一种.RES类型的资源文件。它可以把我们程序中所需要的资源整合到一个资源文件(.RES)下来。在编译应用程序时直接编译进了可执行程序里,成为应用程序的整合体。 这样做的好处是: 1。由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快。 2。多种资源可以放在一个文件中,减少了图标、图片、光标、声音等文件数量。不用怕用户在使用过程中的不小心而损坏了资源文件致使程序无法正常运行。缺点是:因为资源文件的加入从而加大了编译出的可执行程序的字节数,当资源文件较大时会使应用程序变得看起来雍肿。 使用资源文件的优点很显著,其缺点也很突出。所以在实际应用中就要根据情况权衡利弊、灵活使用,这已不在本文的讨论之列。下面仅就Delphi系统编程中对于资源文件的使用方法做一个大致的总结。 二、创建资源文件: 注意事项:创建的资源文件名不要和工程名相同,因为Delphi创建工程时会自动创建一个和工程名相同的资源文件。并且最好将资源文件保存到和工程文件同一个文件夹中。 1.首先创建一个

Delphi工具之Image Editor

爷,独闯天下 提交于 2020-02-01 10:57:04
Delphi Image Editor是一个工具,可用它来创建并编辑位图(.bmp)、图标(.ico)和光标(.cur),还可以用它创建资源工程,将多个位图、图标和光标包含到单个资源文件(.RES)中,再将该资源文件加到Delphi工程中供需要时使用。如下图,是正在编辑中的Image Editor。 Note 所有的Windows图像都是位图,无论它们是真正的Windows位图文件(.bmp),还是图标或光标。在我们的讲解中,将所有图像都称为位图。Image Editor只能处理Windows位图文件,它不支持其他文件格式,如PCX,TIFF,JPEG和GIF。 可从开始菜单中选择Image Editor菜单项启动Image Editor,也可以从Delphi的主菜单的【Tools | Image Editor】菜单项打开(如下图)。Image Editor是一个单独的程序,不必在Delphi IDE中运行它。 Image Editor的各个部分介绍 上图中将所有的工具箱中的工具名称列出,请熟悉它们。 Marquee选区工具和Lasso套索工具的作用一样的,前者用于选定矩形区域,后者用于任意形状的选择。 当一个区域被选定后,用户可剪切或复制该区域内的图像。用Marquee和Lasso工具选定区域,将鼠标光标移动到该区域内(鼠标光标变成如下图的手型光标),拖动鼠标