Delphi
文章平均质量分 61
小蚂蚁_CrkRes
Where there is a will, there is a way
展开
-
delphi控制EXCEL
定义变量 Excelid:variant; 1、创建OLE对象 try Excelid:=CreateOleObject( 'Excel.Application' ); except on Exception do raise exception.Create('无法创建Xls文件,请确认是否安装EXCEL') e原创 2016-08-23 09:11:07 · 1070 阅读 · 0 评论 -
BSMorphButton控件
BSMorphButton控件 效果图单元文件:unit BSMorphButton;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs , extctrls;const Maxize = (1294967280原创 2016-09-19 14:46:35 · 514 阅读 · 0 评论 -
在Delphi中编辑res文件
先用记事本编写一个rc的文件。如内容为:_Comms RCData Comms.jpgComms.jpg为图片名称,然后在这个rc文件和图片拷贝到delphi安装路径的bin文件夹里面,选中这两个文件,拉到“brc32.exe”文件上面,就会生产一个res格式的文件出来。文件名称为跟rc文件的名称一样。1.创建资源文件 首先创建一个.Rc的纯文本文件。格式如下:转载 2016-09-19 15:11:24 · 3868 阅读 · 0 评论 -
EzRgnBtn 控件的四种显示状态:mouse down,mouse up,hot,enable
EzRgnBtn 控件的四种显示状态:mouse down,mouse up,hot,enable使用事例:unit EzRgnBtn;interfaceuses Windows, Forms, Messages, SysUtils, Classes, Graphics, Controls, Dialogs, ExtCtrls;type原创 2016-09-22 14:51:15 · 783 阅读 · 0 评论 -
栈和堆
1 栈栈是由操作系统在创建线程的时候,系统自动创建,栈是由顶像下分配的, DELPHI 中默认的栈大小是 1M ,这个可以通过 Project->Options->Linker->Max Stack size 来改变其大小。栈是线程执行代码的地方,操作系统根据系统调度算法来加载执行的代码,另外栈还存放函数的参数值,局部变量。栈的存取是按 4 字节偏移,不会根据需要动态增长,因此超出范围转载 2016-09-28 16:25:11 · 339 阅读 · 0 评论 -
Delphi中堆栈区别
1 栈栈是由操作系统在创建线程的时候,系统自动创建,栈是由顶像下分配的, DELPHI 中默认的栈大小是 1M ,这个可以通过 Project->Options->Linker->Max Stack size 来改变其大小。栈是线程执行代码的地方,操作系统根据系统调度算法来加载执行的代码,另外栈还存放函数的参数值,局部变量。栈的存取是按 4 字节偏移,不会根据需要动态增长,原创 2016-10-17 14:49:25 · 1865 阅读 · 1 评论 -
Delphi 中Perform使用WM_SYSCOMMAND
函数有三个原型,只列举一个:Perform(Msg: Cardinal; WParam: WPARAM; LParam: LPARAM): LRESULT; overload;其中Msg用WM_SYSCOMMANDWParam用SC_SIZE OR 9LParam用0就可以实现已生成组件的拖动。procedure TForm1.Button1Mo原创 2016-10-18 15:33:32 · 4452 阅读 · 0 评论 -
Delphi的Hint入门指导
Delphi中使用提示是如此简单,只需将欲使用Hint的控件作如下设置: ShowHint := True; Hint := ‘提示信息’; 不必写一行代码,相当方便。 但有时我们又想自己定制提示的效果,使其看起来更美观更具个人特色,没关系,Delphi完全有办法让你写出自己喜欢的Hint效果。 Delphi的Hint功能实现归类在Applicat原创 2016-10-18 16:56:03 · 1885 阅读 · 0 评论 -
Delphi中易混淆的概念 Owner, Parent, Self, Sender, Clientheight, Height
一、Owner和Parent的区别: Parent属性是指构件的包容器,构件只能在此范围内显示和移动。举例子如下: (1)在Form1的窗体上,放一个Panel1,并将Panel1拉大, (2)在Panel1上放一Button1; (3)在Form1上放一Button2。 现在如果移动Panel1,则Button1随着Panel1移动,这是因为Bu原创 2016-11-02 11:20:59 · 960 阅读 · 0 评论 -
Delphi 编写IC控件
编写控件的基本步骤1.确定一个祖先类2.创建一个组件单元3.在新控件中添加属性、方法和事件事件定义方法如下:type privateFOnClick:TNotifyEvent ;//( 声明事件变量以保存过程指针)publishedproperty OnClick:TNotifyEvent read FOnClick write FOnC原创 2016-09-19 13:40:01 · 661 阅读 · 0 评论 -
Delphi 名站以及高手Blog
http://cnblogs.com/del (万一兄的,这个不用解释了)http://www.cnblogs.com/del/archive/2010/04/25/1720750.html 万一的博客总目录(2007.11.12 - 2010.4.25)http://cnblogs.com/dxsoft (不得闲,很多原创,但现在不怎么更新了)http://blog.c转载 2016-09-06 09:37:00 · 1376 阅读 · 0 评论 -
delphi 控件大全
delphi 控件查询:http://www.torry.net/ http://www.jrsoftware.orgTb97 最有名的工具条(ToolBar)控件库,仿Office97,如TDoCk97,TToolBar97,TEdit97,TToolWindow97等.http://www.fltvu.com/jiaocheng/chenxu1/delphi/v转载 2016-09-06 09:25:21 · 1365 阅读 · 0 评论 -
Delphi皮肤之 - 图片按钮
效果如图,支持普通、移上去、按下、弹起、禁用5种状态。unit BmpBtn; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TButtonLayout = (blGlyphLeft, blG原创 2016-08-23 09:16:22 · 3215 阅读 · 0 评论 -
深入QuickReport一
报表是数据库应用程序的基本组成部分之一,完整的数据库应用程序总要提供报表功能。与传统的数据库应用程序设计工具相比,C++ Builder中提供了QuickReport组件,使C++ Builder的数据库功能得到了极大的丰富。QuickReport是挪威Qusoft AS公司专门为C++ Builder设计的用于报表的一组控件,在C++ Builder上我们使用的QuickReport与专业版转载 2016-08-23 10:26:24 · 3709 阅读 · 0 评论 -
深入QuickReport(二)
第二部分:深入QuickReprot例程 在应用中学习,在实践中进步,这是我学习QuickReport的最大感受,通过上面的介绍,我想你对QuickReport也有了一定的了解,那么下一步我们将通过例程逐步深入QuickReportJ 例一:TQuickRep、TQRLabel、TQRDBText组件的应用 实践是最好的老师,我们先通过一个例子来看一下QR的快捷与转载 2016-08-23 10:27:11 · 2443 阅读 · 0 评论 -
深入QuickReport(三)
第三部分:报表中的其他问题 通过前两部分的学习,我想你对QuickRep已经有了一定的掌握,在这部分我们对报表设计中的其他一些问题做一下简单介绍,也许这些你并不常用,但同样这些内容对于我们学习QuickRep还是有很大益处的。此部分内容都以例程的形式讲解,为了保持文章的完整性,例子的编号接上部分。 例五、报表的连接及保存 通过上面的例子,你也许会动手做了几个报表,转载 2016-08-23 10:28:12 · 2465 阅读 · 0 评论 -
用TTcpClient和TTcpServer进行文件的传输
发送数据时有Sendln,SendBuf,SendStream。接收数据时有Receiveln,ReceiveBuf,当时我很奇怪为什么没有ReceiveStream。因为很自然的想到是对应关系的。但当时我不知道,发数据时是一小段一小段地发的看看SendStream代码:[delphi] view plain copyfunction转载 2016-08-23 10:31:30 · 964 阅读 · 0 评论 -
Delphi 得到程序配置路径
class function TConfig.GXIniFolder: string; const GXEPath = '\GXExplorer'; ShellFolderKey = '\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders原创 2016-08-23 12:51:04 · 945 阅读 · 0 评论 -
Delphi 组件开发实现类 编辑框
效果如下图:实现代码:unit Edit1;interfaceuses SysUtils, Windows,Classes, Controls, StdCtrls,Graphics,Messages;type TEdit1 = class(TEdit) private FAlignment: TAlignment;原创 2016-09-05 14:47:50 · 1334 阅读 · 0 评论 -
Delphi 的消息机制
===============================================================================⊙ 一个 GUI Application 的执行过程:消息循环的建立⊙ TWinControl.Create、注册窗口过程和创建窗口⊙ 补充知识:TWndMethod 概述⊙ VCL 的消息处理从 TWinControl.Ma转载 2016-09-05 15:36:59 · 3023 阅读 · 0 评论 -
获得系统特殊路径函数SHGetSpecialFolderLocation
CSIDL_BITBUCKET 回收站CSIDL_CONTROLS 控制面板CSIDL_DESKTOP Windows桌面desktop;CSIDL_DESKTOPDIRECTORY desktop的目录;CSIDL_DRIVES原创 2017-02-06 13:54:39 · 1376 阅读 · 0 评论 -
Delphi的对象注销方法Destroy和free
当您使用完对象后,您应该及时撤销它,以便把这个对象占用的内存释放出来。您可以通过调用一个注销方法来撤销您的对象,它会释放分配给这个对象的内存。 Delphi的注销方法有两个:Destroy和Free。Delphi建议使用Free,因为它比Destroy更为安全,同时调用Free会生成效率更高的代码。 您可以用下列的语句释放用完的Employee对象原创 2017-03-02 09:29:52 · 907 阅读 · 0 评论 -
Delphi中TList类应用
在DELPHI中指针最常见的就是和类TLIST结合起来使用。下面是一个很简单的例子,希望对这个例子的分析能让大家对使用TLIST类有一个简单的认识。代码的功能是使用指针和Tlist来生成一个牌串,并将牌串保存在t_CardInfo中。 procedure TForm1.Button1Click(Sender: TObject);const //黑桃,红桃,方块,草花 CardTy原创 2017-03-03 10:16:43 · 708 阅读 · 0 评论 -
Delphi执行SQL提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”错误
用AdoQuery从脚本文件读入内容,执行时提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”之类的错误,本以为是SQL语句有问题,用查询分析器执行时没有发现错误,一切OK。但一到Delphi中执行就提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”。用Google对关键字进行检索,发现有提示,说是由于TADOQuery对象把":"后的字符当作变量来使用,导致数据识别错误。只要转载 2017-09-04 16:18:26 · 2620 阅读 · 0 评论 -
TFileStream用法
// 写入中文procedure TForm1.btn1Click(Sender: TObject);var Stream : TFileStream; fn : string; fname : string; Size : Integer; Buffer : TBytes; Encoding : TEncoding;begin fn :=转载 2017-08-23 21:09:23 · 2901 阅读 · 1 评论 -
nativeXml使用方法
使用 CreateName 建立可直接指定根节点的名称varXmlDoc: TnativeXml;Node:TxmlNode;BeginXmlDoc := TNativeXml.CreateName('Data'); //创建根节点的语法 XmlDoc.XmlFormat := xfReadable;添加节点有以下几种方法:Nod转载 2017-09-18 13:57:47 · 1482 阅读 · 0 评论 -
NativeXml:读取
var xml: TNativeXml; const xmlStr = '' + '' + '张三' + '李四' + '王五' + ''; procedure TForm1.FormCreate(Sender: TObject); begin xml转载 2017-09-20 11:28:08 · 1271 阅读 · 0 评论 -
用Delphi修改系统环境变量
第一个是复制Oracle客户端文件。第二个是写注册表。第三个是注册环境变量。用Delphi怎么修改系统的环境变量呢,上网找了一下,写了下面的程序,怕以后忘记了,贴上来。[delphi] view plain copyunit Unit1; interface uses Windows, Messa转载 2017-09-29 17:29:46 · 2603 阅读 · 1 评论 -
Delphi面向对象编程的20条规则
前言大多数Delphi程序员都像使用Visual Basic 那样使用他们手头上开发工具,而丝毫没有意识到Delphi的强大功能,更谈不上使用这些功能了。(写到这里,编辑惶恐的举起了手,怎么可能呢?)Delphi和Visual Basic不同,Delphi完全建立在面向对象结构上,这不仅影响到VCL的结构,而且影响到使用Delphi开发的每一个程序。在本文中,我不想涉及到面向对象编程(OO原创 2017-10-11 16:38:55 · 332 阅读 · 0 评论 -
Delphi 中经常使用的正则表达式
在 Delphi 中使用正则表达式, 目前 PerlRegEx 应该是首选, 准备彻底而细致地研究它. 官方网站: http://www.regular-e xpressions.info/delphi.html 直接下载: http://www.regular-e xpressions.info/download/TPerlRegEx.zip 二、安装方法: 1、先把解压的 TPerlRegEx...转载 2018-03-26 10:32:18 · 582 阅读 · 0 评论 -
Delphi -- RGB与HSV转换
const _fc0: Single = 0.0; _fc1: Single = 1.0; _fc6: Single = 6.0; _fc60: Single = 60.0; _fc255: Single = 255.0; _fc360: Single = 360.0; procedure ColorToHSV(var H, S,...转载 2018-06-20 08:57:39 · 751 阅读 · 0 评论 -
Delphi调用SQL分页存储过程实例
//-----下面是一个支持任意表的 SQL SERVER2000分页存储过程//----分页存储过程开始创建-----------------------------------------------------------------------------------------------------------IF EXISTS (SELECT name FROM syso转载 2017-09-04 09:32:06 · 461 阅读 · 0 评论 -
全局原子实现共享数据
unit atom;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;function SendInterAppMessage(sClass,sCaption:string;wMsgNum,wCmd:Wo原创 2017-07-06 13:50:14 · 485 阅读 · 0 评论 -
DLL内存映像共享数据
unit UnitDll;interfaceuses Windows;const BUFFER_SIZE = 16 * 1024;const HOOK_MEM_FILENAME = 'MEM_FILE';const HOOK_MUTEX_NAME = 'MUTEX_NAME';typeTShared = recordKeys: array[0原创 2017-07-06 10:15:04 · 411 阅读 · 0 评论 -
Delphi 延迟函数
//延迟函数:方法一procedure delay(msecs:integer);var Tick: DWord; Event: THandle;begin Event := CreateEvent(nil, False, False, nil); try Tick := GetTickCount + D原创 2017-03-21 21:21:39 · 1283 阅读 · 0 评论 -
Delphi中的内存分配
Windows 是多任务的操作系统, 一个任务就是一个应用(应用程序)、一个应用占一个进程; 在一个进程里面, 又可以运行多个线程(所以就有了很多"多线程编程"的话题).对 Win32 来讲, 系统给每个进程 4GB 的地址空间:低端 2GB($00000000 - $7FFFFFFF) 给用户支配;高端 2GB($80000000 - $FFFFFFFF) 留给系统使用.转载 2017-03-24 13:03:43 · 2048 阅读 · 0 评论 -
Delphi中的容器类
Delphi中的容器类TList 类TList 类实际上就是一个可以存储指针的容器类,提供了一系列的方法和属性来添加,删除,重排,定位,存取和排序容器中的类,它是基于数组的机制来实现的容器,比较类似于C++中的Vector和Java中的ArrayList,TList 经常用来保存一组对象列表,基于数组实现的机制使得用下标存取容器中的对象非常快,但是随着容器中的对象的增多,插入和删除对象原创 2017-03-16 14:47:37 · 604 阅读 · 0 评论 -
delphi 下枚举可用串口
class function TSysMethod.GetSysComList: TStringList;var KeyHandle: HKEY; ErrCode, Index: Integer; ValueName, Data: string; ValueLen, DataLen, ValueType: DWORD; TmpPorts: TStringList;原创 2017-04-12 16:18:18 · 1453 阅读 · 0 评论 -
Delphi 用INI实现多语言界面的切换
对于INI文件的操作,我不多说了,仅仅就如何实现语言界面的切换做一个简单的说明:首先,必须把所有的INI语言文件的结构统一,这样,我们只要传入INI的文件名,就可以通用了,例如我们可以做一个过程SetLanguage(const FileName:string);,这样只要用SetLanguage('CN.INI')就可以了,第二个需要注意的地方,你应该可以让用户选择语言界面的文件,因此程序启原创 2017-05-11 15:32:41 · 2065 阅读 · 0 评论 -
Delphi中Format的字符串格式化使用说明
一、Format函数的用法Format是一个很常用,却又似乎很烦的方法,本人试图对这个方法的帮助进行一些翻译,让它有一个完整的概貌,以供大家查询之用:首先看它的声明:function Format(const Format: string; const Args: array of const): string; overload;事实上Format方法有两个种形式,另外一种是转载 2017-05-16 14:43:32 · 489 阅读 · 0 评论