delphi-xe专题提供delphi-xe的最新资讯内容,帮你更好的了解delphi-xe。
我需要得到任何 TRttiType的单位(命名空间)的名称. 到目前为止,我已尝试过以下内容. 1)使用PTypeData.UnitName,此解决方案有效,但仅当TTypeKind为tkClass时. procedure ListAllUnits; var ctx : TRttiContext; lType: TRttiType; Units: TStrings; begin
在此问题上分享代码作为参考: Delphi TPair Exception 如何在不使用TPair的情况下从TObjectDictionary具体条目中检索键和值,并且不从列表中提取/删除/删除该对? {$APPTYPE CONSOLE} uses SysUtils, Generics.Defaults, Generics.Collections; type TProduct
我在Delphi XE中编写了一个向导,它工作正常.但是,我还没有想出如何访问Delphi的OTA可以创建的生成的默认单元名称(或表单名称或项目名称). 在我的旧式向导中,我能够调用ToolServices.GetNewModuleName来发现在生成关联源文件时可以使用的可用单元和表单名称.今天的开放式工具API中的等价物是什么? 根据ToolsAPI单元注释,我应该从IOTAModuleCre
我有RTTI TRttiMethod.Invoke,stdcall和const参数的问题: obj := TClassRecordTest.Create; try b.a := 10; b.b := 100; a.a := 1; a.b := 2; writeln('b.a='+IntToStr(b.a)+' b.b='+IntToStr(b.b))
我正在尝试创建一个有趣的基本地图编辑器,它包含一个滚动框和绘图框(用于绘制网格). 在paintbox的OnMouseDown事件中,我在运行时创建图像并将它们添加到滚动框内,网格绘图框被绘制在图像上方(因为如果网格位于后面,它看起来不太好看). 这是一个示例屏幕: 我的问题将解决我的两个问题. >我需要能够在运行时拖放(移动)图像. >我还需要能够将图像的X和Y位置显示为信息. 这就是我的问题所
我需要做的是这样的事情: procedure A(type_of_form); var form: TForm; begin form := type_of_form.Create(application); form.showmodal; freeandnil(form); end; 我为每个动态创建的表单执行了此操作: form1 := TForm1.Create(applicat
概观 不完全确定这个问题措辞是否合适,但我之前曾问过这个与这个问题有关的问题:How do I correctly implement a Set in a class as a property? 我喜欢尽可能地将代码保持为短,最小和可读,这是我认为某些代码可以写得更好但我遇到问题的地方. 首先,有两种方法可以读取Set中的值: 漫长的道路: if (Delphi1 in IDECompatib
我有一个泛型列表,我想在其中放入一些记录或一些类 TMyList<T> = class private fCount: Cardinal; fItems: array of T; public constructor Create(aSize: Integer); procedure UpdateItem(const x: T); end; 但我不能编译 procedure TMy
我正在维护一个最初用Delphi 7编写并移植到Delphi XE的应用程序. 使用Windows 7,我们遇到了一些问题,比如主窗口下出现的模态窗口以及最终无法与程序交互,因为用户需要与模态窗体进行交互,这是不可能的,因为它位于主窗口下面. 为了避免这个问题,我将项目的MainFormOnTaskBar属性更改为True(旧项目没有此属性),现在我继续使用相同的项目.阅读文档我找到了新的Form
我需要在Delphi中开发实时(即,每秒至少要求一次信息)监视应用程序,该应用程序监视多个远程设备(可以是数百个).通信是通过TCP / IP. 我正在寻求开发这个应用程序的建议,避免100%的CPU消耗,并最大限度地减少RAM的使用量.换句话说,我希望我的应用程序保持响应,而不是阻止系统或消耗所有资源. 我主要关心的是使用线程监视每个远程设备.我的应用程序可以创建的线程数量有限制吗?可以使用低或
我创建了一个自定义的MSBuild .targets文件,我已经通过IDE包含在一个Delphi XE项目中,并从项目管理器的上下文菜单中启用它。虽然文件验证,它总是在我重新保存项目文件后被禁用。 以下是目标文件的简化版本,命名为Custom.targets。 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
FmtBcd.pas已经在Delphi XE2中进行了大量的修改。在我的一个项目中,我有一个case对两个Bcd值使用除法运算,但两个版本产生不同的结果。在最坏的情况下,Delphi XE2可能会抛出一个Bcd溢出错误。 示例:在Delphi XE2控制台应用程序中运行以下代码: var A, B, C, D: TBcd; begin A := StrToBcd('1'); B := St
试图在单个生产者多消费者方案中使用TThreadedQueue(Generics.Collections)。 (Delphi-XE)。 想法是将对象推入队列,并让几个工作线程排空队列。 它不能按预期工作,但。 当两个或多个工作线程调用PopItem时,会从TThreadedQueue抛出访问冲突。 如果PopItem的调用序列化了一个临界区,一切都很好。 当然TThreadedQueue应该能够处
新的TFileOpenDialog和旧的TOpenDialog有什么区别? 在我的电脑(Win 7 / DXE),当我运行的代码,对话框看起来是一样的。 > TOpenDialog包装了传统的GetOpenFileName。它适用于所有版本的Windows。 > TFileOpenDialog包装在Vista中引入的新的基于COM的对话框。因此它只适用于Vista或更高版本。它具有比旧对话框更多的
我们公司有一个软件,已经发展了10多年,所以有一些真正过时的东西在那里。它仍然是相当实用和一切,但我看到Delphi XE的新功能,它让我想切换。问题是源代码本身是超过300mb的.pas文件(总共1gb组件等)。 我们使用自定义组件,旧的jvcl东西和最新的devexpress。 如果我决定从Delphi 7迁移到Delphi XE,我会有多难? 谢谢。 唯一真正的问题是转换为Unicode。您
Delphi 2010引入了可以添加到类型声明和方法的自定义属性。对于哪些语言元素可以使用自定义属性? 我到目前为止发现的例子包括类声明,字段和方法。 (而且AFAIK通用类不支持自定义属性)。 一些例子显示在this article.它看起来像变量(任何类声明外部)也可以有属性。 基于本文,可以使用属性 >类和记录字段和方法 >方法参数 >属性 >非本地枚举声明 >非局部变量声明 是否有其他语言
首先,让我说我在Windows Vista和Windows 7中废除此功能。第二,我想这样做。 Here是一个问题,如何做我想在这里,在WPF。 我想做同样的事情,但在Delphi,使用VCL股票组件,TMainMenu或Action Manager菜单,或一些可用的第三方组件,甚至Toolbar2000或一些其他库。 Windows Vista / Windows 7 explorer主菜单的功
阅读文章 “Simmering Unicode, bring DPL to a boil”和 “Simmering Unicode, bring DPL to a boil (Part 2)”的“Oracle在Delphi”(艾伦鲍尔),Oracle是我所理解的:) 文章提到Delphi并行库(DPL),无锁数据结构,mutual exclusion locks和condition variabl
之前我已经看到人们在Delphi XE中讨论了新的多线程,以及Delphi有一些“本地”的问题,因为它实现了多线程的方式。他们推荐一些外部库替代默认的Delphi多线程。 你能指出一些文档和最流行的Delphi XE多线程库吗? 谢谢 我相信所有新引入的功能已经被覆盖了。 对于文档部分,这里是经典教程书Martin Harvey. Multithreading – The Delphi Way.的
我一直想知道有没有更好的方法,我应该写一些我的程序,特别是那些需要很长时间才能完成的程序。 我总是从主GUI线程运行所有的东西,我现在明白并认识到这是坏的,因为它会使应用程序无响应,Application.ProcessMessages在这里不会真的有帮助。 这使我觉得我需要使用TThreads进行冗长的操作,例如复制一个文件。这也让我想知道一些应用程序如何为您提供完全控制,例如允许您暂停,恢复和