Delphi
文章平均质量分 74
zhengbo2006
这个作者很懒,什么都没留下…
展开
-
TThread delphi 线程
<br />TThread线程<br /><br />TThread对象的方法和事件<br /><br />方法和事件 说 明<br />Create方法 建立线程,当参数CreateSuspended为True时,线程被创建后处于挂起状态;否则,线程被创建后便可以分配CPU时间投入运行。<br />Excute方法 线程执行代码。该方法在TThread类中被 声明为虚拟的抽象方法,因此,在派生的线程类中必须覆盖该方法并给予实现。Excute方法原创 2010-07-14 18:23:00 · 1193 阅读 · 0 评论 -
浅谈多线程访问access数据库处理
delphi下面用ADO连接access数据库,多线程访问数据库会发现如果与数据库交互频繁会发现程序会弹出一些莫名其妙的错误,如“内存访问错误”、“在异步运行时,操作不能执行”等莫名其妙的错误,为什么会出现这种情况呢?为什么? ADO控件是线程不安全的,所以原创 2011-09-02 13:46:14 · 4531 阅读 · 0 评论 -
单机软件软件升级时的数据库升级方案
在单机软件中,如一些小型的管理软件,在发布一个版本之后,后期如果需要对软件进行升级但数据库同时也需要升级,则可以采取下面升级方案(方案不是最好的,如果有更好的欢迎指教),该解决方案可以满足需要递归升级的情况: 数据库升级必须保证只升级一遍同时把所有需要修改的字段原创 2011-09-05 12:55:34 · 808 阅读 · 0 评论 -
Delphi中多线程用Synchronize实现VCL数据同步显示 解决在线程中操作控件出现问题
当您使用的类层次结构的对象如TThread,其属性和方法都不能保证是线程安全的。也就是说,直接访问其他窗体属性或执行方法,则使用的内存不从受其他线程的保护。正因为如此,一个主线程是预留访问VCL和CLX对象,从而使所有的Windows组件接收到线程发送的消息时进行处理,即让应用程原创 2011-09-06 13:44:53 · 2318 阅读 · 0 评论 -
delphi判断windows系统是64位还是32位
function IsWin64: boolean;var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL):原创 2011-08-23 15:05:21 · 1382 阅读 · 0 评论 -
delphi的消息机制实现消息传递字符串
delphi使用消息传递字符串有三种方式可以实现:1、直接传递,但只能传递给同进程的窗口,无法实现跨进程的消息传递传递消息:var Str: String;begin Str := 'some string'; PostMessage(Handl原创 2011-08-29 19:12:52 · 4213 阅读 · 0 评论 -
多线程同步问题:主线程不能进入临界区
在临界区实际使用过程中发现,多个子线程进入临界区都正常,但当别的子线程进入临界区后,此时主线程要进入临界区则程序会挂起,就造成程序的未响应,该问题造成的原因是:当多个操作进入到临界区之后,只有一个操作在执行,其他操作都处于挂起状态,在第一个操作执行完毕之后后面再执行一个操作,依次类推执行,此时如果主线程进入到临界区则主线程也就处于挂起状态,从而程序就会未响应,直到主线程操作执行完毕。原创 2011-11-29 18:31:17 · 2487 阅读 · 0 评论 -
Delphi与Vista提供的UAC控制
Vista提供的UAC机制,是Vista的新增功能之一。它的主要目的是防止对于操作系统本身的恶意修改。如果想对于Vista的系统设置进行改动,必须通过UAC的验证才能够进行。通过这样的手段,大大提供了系统的安全性。关于UAC的利弊,网络上的说法褒贬不一,在这里就不具体讨论了。 对于Delphi程序的影响,UAC主要在于以下几点: 1、由于UAC机制,Delphi对于系统的操作可能无声的转载 2012-04-24 15:22:04 · 958 阅读 · 0 评论 -
ADOquery 的问题,连接失败
参考:http://www.itzhe.cn/article/20080125/63170.html参考:http://hi.baidu.com/dragonmen2008/blog/item/8600c92e42accd321e308954.html前几天有一客户出现一问题,说执行某某操作时提示“连接失败”,当时看了看情况跟踪了跟踪,真的很郁闷,adoquery的Connection转载 2012-05-14 10:46:18 · 3725 阅读 · 0 评论 -
Delphi中TQueue的使用
<br />rSMS = record<br /> iSMSStore: integer;<br /> iSMSIndex: integer;<br /> end;<br /> PSMS = ^rSMS;<br /> <br />var<br /> Queue: TQueue; //删除队列<br /> SMSPointer: PSMS;<br />begin<br /> New(SMSPointer);<br /> SMSPointer^.iSMSStore :=原创 2011-02-22 14:32:00 · 5022 阅读 · 0 评论 -
TDBGridEh导出Excel表
<br />uses Variants;<br /> <br />procedure DBGridSaveToExcel(DbGridEh:TDBGridEh);<br />var<br /> sFileName:string;<br /> ExcelObj, Excel, WorkBook, Sheet1: OleVariant;<br /> SaveDialog: TSaveDialog;<br /> Row1, Col1, FieldIndex, i: Integer;<br /> OldC原创 2011-02-22 14:22:00 · 811 阅读 · 0 评论 -
Delphi的几种类型转换
unit Support;interfacetype dword=longword;function WordToStr(Value: word): string;function DwordToStr(Value: dword): string;function StrToWord(Value: string): word;function StrToDword(Value: string): dword;procedure SetBit(var Str: string; BitNr: dword; Va原创 2010-11-15 17:35:00 · 825 阅读 · 0 评论 -
关于getCurrentDir的问题及获取程序执行路径
<br /> getCurrentDir获取的是当前路径,不一定就是EXE所在路径,可以用SetCurrentDir来设置的,因此如果想要获取到程序执行路径的话,不能使用该函数,而要获取程序执行路径可以用下列三种方法:<br /> <br /> 1.可以使用ExtractFilePath(ParamStr(0))来进行获取。<br /> <br />原型 function paramstr(i:index):string <br />对于任何application paramstr(0)原创 2010-08-03 15:27:00 · 881 阅读 · 0 评论 -
Delphi 获得程序的版本号
<br />procedure TForm1.Button1Click(Sender: TObject);<br />var <br /> V1,V2,V3,V4:Word;<br /> VerInfoSize:DWORD;<br /> VerInfo:Pointer;<br /> VerValueSize:DWORD;<br /> VerValue:PVSFixedFileInfo;<br /> Dummy:DWORD;<br />begin<br /> //Edit1.text 程序所在原创 2010-08-16 09:17:00 · 631 阅读 · 0 评论 -
Delphi往注册表写入字符串、REG_DWORD、二进制
<br />procedure TForm1.Button1Click(Sender: TObject); <br />var <br /> reg, reg1: TRegistry; <br /> info: TRegDataInfo; <br /> buf: PByteArray; <br /> bufSize: Integer; <br /> ValueName: string; <br />begin <br /> reg :=原创 2010-12-06 12:23:00 · 1479 阅读 · 0 评论 -
Teechart7 for Delphi7安装说明
www.taoyou100.cn taoyou100 满意100转载说明:由于Delphi7自带的Teechart中的Decision Cube组件版上的组件只支持BDE,而我想用ADO来连接数据库以便实现分页(数据量太大),所以寻找Teechart的新版本。新的TeeChart7.06在www.51delphi.com有下载(ftp://delphidown:delphi@ftp.51delphi.com/teechart7.rar),根据下面的文章可以安装成功。TeeChart7.06比Delphi7自转载 2010-10-20 16:54:00 · 1897 阅读 · 0 评论 -
Delphi实现注册dll文件
<br />type<br /> TDllRegisterServer=function:HResult; stdcall;<br /> <br />Procedure RegisterDll(DllName: String);<br />Var<br /> h: HModule;<br /> Ocx: TDllRegisterServer;<br />Begin<br /> h := 0;<br /> Try<br /> h := LoadLibrary(PChar(DllName));<原创 2010-12-13 10:46:00 · 579 阅读 · 0 评论 -
EhLib DBGridEh组件在Delphi中应用全攻略总结
【DBGridEh(增强型表格组件)功能详解】DBGridEh组件无论在外观上还是功能上都非常类似Borland开发工具中现有的dbgrid组件,它除了提供dbgrid组件的全部功能外,还增加了下列新功能:● 任意选择多行、列或矩形区域的数据.● 为多列标题设定共同的父标题行.● 表格底部(Footer) 区显示求和、计数和其它统计信息.● 自动调整组件宽度与客户区域等宽.● 设置标题行、数据行的高度.● 超长的标题行、数据行文本自动折行处理.● 标题行可作为按钮使用,并可选择是否显示排序标志符(▽降序△升转载 2010-11-09 09:14:00 · 1844 阅读 · 0 评论 -
asynchronous socket error 10053错误及解决方法
<br />错误原因是:<br />WSAECONNABORTED <br /><br />(10053) <br /><br />Software caused connection abort. <br />因软件原因导致连接终止 <br /><br />An established connection was aborted by the software in your host machine, possibly due t原创 2010-11-12 09:28:00 · 8386 阅读 · 0 评论 -
Delphi怎么判断是否联网的函数
<br />有两种判断方式:<br />1:<br />function CheckOffline:boolean;<br />var<br /> ConnectState, StateSize:DWORD;<br />begin<br /> ConnectState := 0;<br /> StateSize := SizeOf(ConnectState);<br /> result := false;<br /> if InternetQueryOption(nil, INTERNET_OPT原创 2010-11-10 17:58:00 · 1204 阅读 · 0 评论 -
Delphi :Keydown对应的键盘值
F1~F12 对应为 $70(112)~$7B(123)A~Z对应为 $41(65)~$5A(90)0~9对应为 $30(48)~$39(57)键 十六进制 十进制 說明----------------------------------------------------------------------vk_LButton = $01;1 滑鼠左鈕vk_RButt原创 2012-05-23 17:51:35 · 2663 阅读 · 0 评论