delphi
文章平均质量分 64
_克急克怒_
源于用户,高于用户,形成标准,指导用户,服务行业!
找一份工作,做一份事业;研究一门技术,做出一款产品;辅助一个公司,成就一家企业。
展开
-
Delphi 内存 叽歪
Delphi 常见的内存问题原创 2023-05-11 16:21:48 · 1185 阅读 · 0 评论 -
Delphi自适应分辨率
Delphi自带控件默认不支持自适应分辨率;在基类中如此修改则可以支持自适应;转载 2023-02-01 11:03:30 · 671 阅读 · 0 评论 -
Delphi Controls (控件)和Components (组件)的异同
Delphi Controls (控件)和Components (组件)的异同原创 2022-11-12 17:52:30 · 898 阅读 · 0 评论 -
TScrollBox控件之页面滚动
利用TScrollBox控件在OnMouseWheel事件中滑轮滚动事件。方法一:模拟人工操作:优点:对于程序员容易理解,容易想到;缺点:重影很明显;方法二:调用Windows发送消息方法:优点:重影有所缓解,原因在于SendMessage机制:如果消息连续重复则执行一次,并且是轮旋机制处理;缺点:刷新速度级别对于某些特殊要求下不能满足;方法三:Delphi 控件的Perform方法:优点:能看到源代码,直到汇编语言执行内容;缺点:同上在执行发送消息之后需要调用控件的重新绘制命令,方法有二原创 2021-02-24 15:56:04 · 889 阅读 · 0 评论 -
Delphi 调用批处理
procedure TForm1.Button1Click(Sender: TObject);var fileName, Path: string;begin fileName := 'D:\ServerTest.bat'; Path := ExtractFilePath(fileName); SetCurrentDir(Path); ShellExecute(Handle...转载 2020-02-26 09:06:40 · 661 阅读 · 0 评论 -
Delphi检查网络连通性
用delphi检查网络连接状态 检测计算机是否联网比较简单的做法可以通过一个 Win32 Internet(WinInet) 函数 InternetCheckConnection来实现;这个函数的功能是检查是否能够建立 Internet 连接。它的实现是在 %SystemRoot%\System32\wininet.dll 中,Delphi 调用声明在 WinInet.pas 中,其 A...转载 2020-02-26 09:02:35 · 850 阅读 · 0 评论 -
delphi 获取本机IP地址和MAC地址 (转)
unit NetFunc;interfaceusesSysUtils, Windows, dialogs, winsock, Classes, ComObj, WinInet, Variants;// 错误信息常量constC_Err_GetLocalIp = '获取本地ip失败';C_Err_GetNameByIpAddr = '获取主机名失败';C_Err_GetSQLS...转载 2019-11-11 17:51:18 · 1914 阅读 · 0 评论 -
Inc 与 k:=k+1 性能比较
Delphi在使用过程中经常遇到一些简单的加法计算,增加函数Inc递减函数Dec分别与直接计算如k:=k+1,k:=k-1有什么区别呢?做如下测试:procedure TForm1.Button1Click(Sender: TObject);var i,k:Integer; oldTime,newTime:Int64;begin // oldTime:=GetTi...原创 2019-11-11 10:32:41 · 1002 阅读 · 0 评论 -
原创 DLL编程经验(三)各类语言调用Delphi写的DLL
Delphi在接口参数中最长用的字符串参数是PChar,但是在被调用时经常出现各类问题。Delphi2007及其以前版本PChar是Ansi类型,而XE以上版本是Unicode类型。所以在调用之前需要弄清楚是用哪个版本的Delphi写的DLL。VB.Net 在声明时对于Delphi7写的DLL需要声明为Ansi,譬如 : Public Declare Ansi Function MyAdd L...原创 2018-05-07 12:10:07 · 1129 阅读 · 1 评论 -
原创 DLL编写经验总结(二) 日志的使用
一、日志的分类日志分为运行日志和调试日志,运行日志记录运行情况帮助使用过程中出现故障的分析,需要简单明了,为使得实施人员甚至客户能看懂,难免啰嗦。调试日志是系统测试上线过程中程序员方便进一步了解情况而写的日志,有部分比较生涩难懂,但是精简高效。二、日志的作用说到底,日志是为人服务的,而且使用范围广,具有通用性。对于DLL的日志1、可以用于区分责任,特别是不同厂家之间经常会因为某些东西而相互推脱、争...原创 2018-05-07 11:39:27 · 1499 阅读 · 0 评论 -
原创 DLL编写经验总结(一)使DLL支持多线程
最近用Delphi编写DLL比较多,总结几条经验方便以后回顾。需求背景:DLL接口自身是向主调方提供服务,考虑到主调方的不定性以及响应速度问题,需要支持多线程。实现思路:DLL在初次加载或者被唤醒的时候会调用DLLMain函数(Delphi的Main函数头已被隐藏,实际上就是主文件中的Begin End),触发DLL_Process_Attach事件。可用全局变量DLLProc来处理触发的事件所调...原创 2018-05-07 10:59:09 · 5435 阅读 · 0 评论 -
服务器端自定义OpenSQL、ExecSQL
在服务器端为了防止注入,不仅需要客户端传过SQL还需要传入参数,一、参数定义可以使用结构体数组:type TParamlocal =record ParamName:PChar; ParamType:PChar; ParamValue:PChar; end; TParamArrlocal = record strArr:ar...原创 2018-05-17 10:38:48 · 456 阅读 · 0 评论 -
原创 DLL编程经验(四)数据传输时候的文件读取问题
Delphi编写的DLL与不少语言进行通讯不太好处理。譬如字符串、结构体。编写文本文件作为中间媒介则更加方便。Delphi读取文本文件方法有多种,我比较喜欢用读取ini文件形式,这个形式能区分域、键、值精准定位到需要读取的数据点。废话不多,直接来干货。一、读:unit IniFiles;//引入读写文件系统单元function TClientSaveSetting.loadOCVFXManySe...原创 2018-05-09 10:52:00 · 658 阅读 · 0 评论 -
SetThreadLocale解决程序乱码问题
中文软件运行在英文系统下,程序支持unicode,但是仍出现乱码。解决办法:1.控制面板 ——> 区域和语言选项——>语言——> 附加的语言支持 ——> 将“为东亚语言安装文件” 选中,然后系统自动安装语言包,再次运行程序,显示正常。另:泰国、越南等需要将“复制文字和从右到左的语言安装文件(包括泰文)”选中。2.程序内部设置区域 使用SetThreadLocale函数设置运...转载 2018-04-03 10:22:09 · 1299 阅读 · 0 评论 -
delphi7安装delphi5下控件
其实,我们在原来版本如D5、D6中使用的控件如Quickrep,FastNet等,在D7中仍然是保留的。只是Delphi没有将他们默认的安装到组件面版中来。这些控件包全部保存在Delphi目录的bin下,文件扩展名为.bpl(共将近60个)。安装这些包的方法很简单,只需点击菜单"component---->Install Packages...",然后使用"ADD"选择需要的包就可以了。转载 2013-05-24 12:29:54 · 1138 阅读 · 0 评论 -
Delphi Cxgrid获取选中行列,排序规则,当前正在编辑的单元格内的值
cxGrid1DBTableView1.Controller.FocusedRowIndex 当前行号cxGrid1DBTableView1.Controller.FocusedRow 当前行cxGrid1DBTableView1.Controller.FocusedColumn 当前列cxGrid1DBTableView1.Controller.FocusedColu转载 2015-07-24 12:26:04 · 1061 阅读 · 0 评论 -
解决Delphi ADO无法为更新定位行
解决Delphi ADO无法为更新定位行。一些值可能已在最后一次读取后已更改的问题解法一:Delphi中很多朋友使用ADOQuery更新数据时会出现,无法为更新定位行。一些值可能已在最后一次读取后已更改的错误信息。以前的时候也碰到类似的问题,一般就是去看数据表,发现没有设置主键或者表里的字段有的没有默认值什么的。说来也怪,设置上主键或者默认值都基本搞 定。也就没有仔细研转载 2015-11-17 10:42:11 · 4235 阅读 · 0 评论 -
TClientDataSet用法详解
TClientDataSet控件继承自TDataSet,其数据存储文件格式扩展名为 .cds,是基于文件型数据存储和操作的控件。该控件封装了对数据进行操作处理的接口和功能,而本身并不依赖上述几种数据库驱动程序,基本上能满足单机"瘦"数据库应用程序的需要。 1.TClientDataSet的基本属性和方法介绍 1).FieldDefs: 字段定义列表属性 开发者可通过单击属性编辑器转载 2015-12-17 15:33:21 · 2895 阅读 · 0 评论 -
Delphi 静态局部变量的替换方法
以前一直以为Delphi不比C/C++没办法实现静态局部变量。今天在研究设计模式的时候突然想到,若是没有那单例模式如何实现? 没有实现不了的可能,只有不动脑不动手的人。 查查资料可以用如下办法实现: procedure TForm1.SpeedButton1Click(Sender: TObject);{$j+}const myvar:intege原创 2016-03-30 16:48:03 · 1396 阅读 · 0 评论 -
Delphi 最小化程序到任务栏托盘 增加右键PopMenu
在做中间层时,中间层往往不需要点击关闭时立刻关闭,而是最小化到托盘。故而特意隐藏关闭按钮功能。 1)隐藏退出功能 用PopMenu退出菜单代替 1.增加popMenu退出菜单,绑定到窗体 2.增加变量控制是否真的退出b_isClose;//True 退出 False 不退出 3.初始化b_i原创 2016-04-02 11:25:29 · 5146 阅读 · 0 评论 -
Delphi CxGrid用法详解
1. 去掉cxgrid中抬头的box,在tableview1的ptionsview的groupbybox=false;2. 在GRID footer 中加入sum(列),tableview1的optionsview的footer=ture然后在cxGRid1的customize中的summary 的footer.add需要合计的列kind= skSum3. 去掉cxgrid中的过滤下拉箭头选择ta...转载 2016-03-29 09:45:57 · 10929 阅读 · 0 评论 -
Delphi TChart 学习(一)
网址:http://blog.csdn.net/lailai186/article/details/38685963 代码:procedure TForm1.SpeedButton1Click(Sender: TObject);{$j+}const myvar:integer=0;{$j-}var i:Integer;begin try原创 2016-03-30 17:33:20 · 1370 阅读 · 0 评论 -
delphi 图片TcxImage学习
一、导入图片: procedure TForm1.btnLoadClick(Sender: TObject);begin if ImageCert.Picture.Graphic = nil then begin ImageCert.Picture.LoadFromFile('E:\学习文档\LoadImage.png'); ImageCert1.原创 2016-03-31 20:46:20 · 2823 阅读 · 0 评论 -
Delphi 跨语言环境 乱码问题
delphi7+简体中文xp开发的软件,到英文版操作系统下成了乱码.......这两天都在找解决的方法,网上找到一些:在控制面板--->区域语言设置--->language :是否添加东亚语种的语言包( 此步可省略 ---->高级选项 :添加 简体中文)默认语言选成简体中文这样就可以正常显示中文了,不过每次都要设置,很麻烦.另外,比较简单一点转载 2017-06-17 10:52:29 · 1540 阅读 · 0 评论 -
Delphi预编译
Delphi快速高小的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情况下不需要干涉编译器的运行,但是有时也需要对编译器进行必要的设置。 ********************************************************************************************** A.1 使转载 2013-05-25 08:37:53 · 692 阅读 · 0 评论