Delphi
mengzhongren2
这个作者很懒,什么都没留下…
展开
-
Delphi关于not and or xor shr shl运算
此函数执行,Result返回数据为32位值,不能达到64位数据。运算后数据被32位截取了。可能是Delphi平台不支持32位以上的and or运算。就能解决Result返回数据为64位,未被32位截取。原创 2024-01-12 17:08:53 · 358 阅读 · 0 评论 -
Delphi关于Control has no Parent Windows问题
当代码运行,DLL调用执行到TFrame及其子类创建时,报:Control ‘TFrame’ has no parent windows. 异常,且创建失败。其报错原因推测是TFrame及其子类创建时需要获取其父类句柄,当不存在时会获取默认句柄,即Application.Handle;解决方案是,在DLL调用执行到TFrame及其子类创建前将Exe的Application.Handle赋值给DLL的Application.Handle,即可解决此问题。原创 2023-11-24 16:18:50 · 407 阅读 · 0 评论 -
Excel VBA使用Delphi编写的ActiveX问题
Excel VBA使用ActiveX控件的一些问题原创 2023-03-20 15:37:10 · 318 阅读 · 0 评论 -
Delphi浮点数显示精度问题
经过单步调试,发现 在从数据集中获取值(LTemp:= ADOTable1.FieldByName('Value1').AsFloat;)时便是如此 :数据库中值为10.1,获取时 LTemp为10.1000003814697。通过更改设置Access数据库,字段为:数字->双精度,当界面表格显示时,采用赋值单元格形式。软件使用Access数据库,字段设置:数字->单精度,当界面表格显示时,采用赋值单元格形式。原创 2023-03-06 16:08:46 · 852 阅读 · 0 评论 -
关于Delphi中执行带有双引号(“)的SQL语句更新字段值报错问题解决
在Delphi中使用TADOConnection的Execute直接执行SQL Update语句更新表中字段值,若字段值为字符串,使用ADOConnection.Execute(Format('UPDATE %s SET %s= "%s" WHERE %s ',[Table, Filed, Value, Condition]))即可,但当Value含有带双引号(")字符时,会导致执行报错(语法错误(操作符丢失)在查询表达式中),采用ADOConnection.Execute(Forma...原创 2021-05-25 11:02:32 · 559 阅读 · 0 评论 -
Delphi10.3 进入Debug方式
buildconfigurations选debug,然后saveall,再build,然后运行Run原创 2019-10-11 12:34:24 · 935 阅读 · 0 评论 -
Delphi x64位 ASM(汇编代码问题)
新的Delphi开发平台可以编译x64位程序,但其内嵌汇编代码与x86不一样,内嵌汇编就要整个函数都用会编写,而x86不需要整个函数都是汇编,如下所示: function PortIn(Address: Word): Byte; {-Use this instead of Port since it works in both 16 and 32-bit mode} {$IFD...原创 2019-10-11 10:43:28 · 1378 阅读 · 0 评论 -
解决:[DCC Fatal Error] **.dpk : E2202 Required package '***' not found
//[DCC Fatal Error] **.dpk : E2202 Required package '***' not found意思是:【DCC致命错误] *:E2202 需要包***没有发现主要原因是该所需要的包的dcu,dcp,bpl文件没有在搜索路径下。解决过程:在项目配置属性(Project->Options)中的(如下图所示)Search path中将需要...原创 2019-09-26 18:35:06 · 3028 阅读 · 0 评论 -
如何在Delphi 中调用C#生成的DLL类库
最近需要写一个和给上位机和下位机通讯的接口,而上位机是用Delphi开发的,所以就需要用C#做一类库给Delphi调用大概步骤:1、首先在VS2008中新建一个类项目名为TestDelphi,然后添加一个接口文件命名为ITest.cs源代码如下:using System;using System.Collections.Generic;using System.Text;u...转载 2019-03-12 12:04:46 · 3341 阅读 · 2 评论 -
delphi 陷阱
初学DelphiI的人,由于各种原因,对DelphiI中的许多概念不能很好的理解,并由此带来了许多的问题,或者是开发出的程序稳性不好,一会能运行,一会又不能运行;或者是遇到一个问题久思不得其解,还误以为是DelphiI自身的BUG,等等这些,浪费了我们大量的时间、精力,也影响了我转载 2011-10-13 14:12:39 · 304 阅读 · 0 评论 -
Delphi 关于DLL中使用TThread类或其子类的使用注意事项
使用Loadlibrary()、FreeLibrary(),调用DLL;若DLL中使用了TThread类或其子类,那么TThread类或其子类不能在DLL中单元文件的finalization或TheExitProc中调用释放,即不能在FreeLibrary时,释放,否则会使FreeLibrary卡死原创 2015-10-15 14:16:24 · 895 阅读 · 0 评论 -
FastMM与Indy组件内存泄漏问题
操作系统 Win10平台 Delphi7在项目文件中,使用 FastMM4。program ProjectOfTestComm;uses FastMM4,只要在项目中使用了Indy组件,在平台上调试运行,在关闭时会弹出即存在内存泄漏。这个是Indy组件自身携带,属于平台自身问题。...原创 2017-07-04 16:36:34 · 363 阅读 · 0 评论 -
Delphi Dll线程使用Synchronize同步导致线程假死的解决方法
经试验可以在dll工程文件中加入以下语句 :Application.Initialize;if Application.Handle = 0 thenbegin Application.CreateHandle;end;Application.Run;解决线程中使用Synchronize 假死的问题,或者在线程中直接使用SendMessage替代S转载 2017-07-13 16:06:00 · 1432 阅读 · 0 评论 -
Delphi 编译器版本
{$IFDEF VER999}//some delphi 2010-specific code here{$ENDIF}What version # do I need to use in place of "999"?{$IFDEF VER40} - Turbo pascal 4{$IFDEF VER50} - Turbo pascal 5{$IFDEF VER55}转载 2017-07-06 16:41:50 · 832 阅读 · 0 评论 -
关于C#与Delphi DLL调用及回调问题注意事项
1.Delphi封装的函数API及定义的函数类型(用于回调)中参数的修饰关键词尽不使用const2.Delphi封装的函数API及定义的函数类型(用于回调)中参数的修饰关键词使用const,对应C#中申明需带ref3.Delphi封装的函数API及定义的函数类型(用于回调)中参数传址使用var,对应C#中使用ref4.Delphi封装的函数API及定义的函数类型(用于回调)中参数传值不原创 2017-09-30 11:20:48 · 443 阅读 · 0 评论 -
修正FastReport报表添加参数时候报错 "标识符未宣告: "
procedure TForm1.Button1Click(Sender: TObject);var ltemp : TfrxVariable;begin ltemp := frxReport1.Variables.Add; ltemp.Name := ' TESTVAR' ; frxReport1.Variables.AddVariable('TESTVAR','测试','12'); ...原创 2018-07-16 15:24:23 · 3078 阅读 · 0 评论 -
Delphi exe运行进入不到Application.Initialize
可能原因:exe静态调用了DLL,而DLL加载执行报错,会导致报错未弹出显示,如此exe进程一直挂起。解决办法:改静态调用为动态调用即可。可能原因:exe项目文件设置<ModuleSuppert>为False解决办法:删掉<ModuleSuppert>或设置True...原创 2019-03-06 10:20:40 · 493 阅读 · 0 评论 -
Visual Studio 2017直接生成dll的tlb
在电脑“程序”中以管理员权限运行 VS2017的开发人员命令提示符输入:RegAsm /tlb XXX.dll 或 tlbexpxxx.dll/out:xxx.tlb命令生成了 xxx.tlb回车后,生成dll对应tlb文件到dll所在目录下若dll自身的类属性是COM可见,则tlb中存在,否则其他工具加载tlb文件,类可能为空...原创 2019-03-11 14:55:38 · 2048 阅读 · 0 评论 -
Delphi7 修改单元文件的名字
使用delphi7开发项目, 在项目的进行中,如要修改单元文件的文件名,按一下过程:1:由于delphi的单元文件名在保存时,自动命名,unit.pas、form.dfm、unit内部文件名是相同的;所以在修改时,直接将所要修改的单元文件在这三处全部修改成想要的名称。2:原创 2011-10-12 10:20:24 · 2150 阅读 · 0 评论