
Delphi
文章平均质量分 55
JPEXE
开发很累,但我很开心!
展开
-
[转] FillChar 引起的内存泄漏
为了提高 string 的读写性能 Delphi 采用了 Copy-on-Write 机制进行内存管理。简单来说,在复制一个 string 时并不是真的在内存中把原来 string 的内容复制一份到另外一个地址,而是把新的 string 在内存映射表中指向同原 string 相同的位置,并且把那块内存的引用计数加一。这样就省去了复制字符串的时间。只有当 string 的内容发生变化的时候,才真转载 2012-03-20 13:20:32 · 1051 阅读 · 0 评论 -
[译] Delphi实现TBitmap转TIcon
原文来自:http://www.delphifaq.com/faq/f378.shtml如何通过Bitmap创建Icon需要用到2个bitmap,一个蒙板(mask bitmap),一个图案(image bitmap)。创建图标主要用到CreateIconIndirect()这个API,分别对2个bitmap进行and和xor操作。示例代码如下:procedure Form1.Bitm翻译 2012-06-06 14:28:42 · 2339 阅读 · 2 评论 -
Delphi写的Win32服务,怎么添加描述信息?
用Delphi写Win32服务很方便,它所提供的TService类很好用.但是使用过的朋友一定也发现,TService只提供了Name(服务名)和DisplayName(显示名)这两个属性,而并没有关于描述信息的属性可用.导致这样写出来的服务的描述信息是空的,总会让人觉得残缺不完整.下面就说说给TService添加服务描述信息的方法.其它不多说,直接帖代码出来,下面帖出一个比较完整的服务单元,原创 2009-06-25 11:26:00 · 4107 阅读 · 3 评论 -
[转] Delphi API HOOK 完全说明
// 本文转自网络, 原始出处不明确.// 转载目的: 学习 + 分享一、关于 API Hook1. 什么是 API Hook不知道大家是否还记得,在 DOS 系统中编程,经常会采取截取中断向量的技术:我们可以设置新的中断服务程序,当系统其他的程序调用这个中断时,就让它先调用我们自己设置的新的中断服务程序,然后再调用原来的中断服务程序,这样就能够获得非凡的控制权。许多优秀的转载 2009-08-11 11:29:00 · 3040 阅读 · 0 评论 -
Delphi中限制文本框(TEdit)只能输入小数
有些时候需要限制程序里的文本框(这里指TEdit控件)里只能输入某些特定字符。比如说限制只能输入数字,这时可以设置TEdit的NumbersOnly属性来实现,这里的TEdit将被限制为只能输入0到9这十个字符。那么,如果需要限制输入小数呢,小数点被阻止了,所以这时不能使用NumbersOnly属性,另外也没有别的属性能实现的。那就只有自己来做!限制输入,可以在OnKeyPress事件中来原创 2009-04-10 14:08:00 · 3845 阅读 · 0 评论 -
解决stack overflow栈溢出问题!
今天又遇到"stack overflow"的问题,让我和一个同事头痛了好半天。问题描述:VC++写的COM模块(ATL),用Delphi做客户端调用,运行时报"stack overflow"的错误,调试发现此错误是在执行COM中一个函数入栈的时候发生的。栈溢出!乍一眼还觉得挺吓人的,没什么经验,是头一次遇到这样的问题。堆栈的知识我不是很懂,只知道要执行的东西先要压入栈中,既然报了溢出,就说原创 2007-11-03 00:17:00 · 7022 阅读 · 1 评论 -
巧妙利用TWebBrowser让程序直接显示网络图片(Delphi)
最近遇到这样的开发需求: 需要显示的图片来自网络, 只知道其 URL 地址. 要在程序上展示的话, 难道需要先把图片下载下来再载入 TImage 里吗? 这样还要自己去实现文件下载并控制其相关流程, 岂不是太麻烦了! 于是马上想到了 TWebBrowser 控件, 何不用它来显示, 把数据下载的事都交给浏览器模块, 这样就轻松多了嘛.把 TWebBrowser 作为图片展示控件来用,原创 2009-08-21 11:51:00 · 3284 阅读 · 1 评论 -
Delphi 程序启动报错 "A call to an OS function failed."
如题,遇到了Delphi程序启动时就报错,错误提示为:"A call to an OS function failed.",跟踪代码分析发现这个错误是在程序初始化启动时执行到Application.Run;这里发生的,一时无头绪,后经多番调查,找到了原因——程序主窗体中重载了WndProc过程,而其中写漏了inherited;这一句!在些自己做个备忘,也提醒其它童鞋们注意这点。procedur原创 2012-12-11 14:12:40 · 17702 阅读 · 0 评论 -
最简单的方法实现MIDI音乐循环播放 (不用在MCI回调中处理)
前几天,需要在一个Delphi小程序中需要循环播放一段midi音乐。原创 2014-12-30 18:58:38 · 2025 阅读 · 0 评论