小编Bri*_*ost的帖子

如何在Delphi TInterfaceList中存储和定位多个接口类型

我将来自一系列对象的小接口存储到单个TInterfaceList'store'中,目的是向最终用户提供特定接口类型的列表,因此每个接口都将公开一个'GetName'函数,但所有其他方法都是唯一的那个接口类型.例如,这里有两个接口:

  IBase = interface
    //----------------------------------------
    function GetName : string;
    //----------------------------------------
  end;

  IMeasureTemperature = interface(IBase)
    //------------------------------------
    function MeasureTemperature : double;
    //----------------------------------------
  end;

  IMeasureHumidity = interface(IBase)
    //----------------------------------------
    function MeasureHumidity: double;
    //----------------------------------------
  end;
Run Code Online (Sandbox Code Playgroud)

我将其中几个接口放入一个TInterfaceList中,然后我想扫描列表中的特定接口类型(例如'IMeasureTemperature'),构建另一个指向导出这些接口的对象的指针列表.我不想对这些对象的位置做任何假设,有些可能会导出多种类型的接口.我知道我可以使用以下类似的类层次结构执行此操作:

  If FList[I] is TMeasureTemperature then ..
Run Code Online (Sandbox Code Playgroud)

但是我想用接口类型做一些类似的事情,这可能吗?

delphi interface

6
推荐指数
2
解决办法
1519
查看次数

使用Delphi RTTI获取接口的字符串名称

我已经证明我可以使用Delphi 2010从其GUID获取接口的名称(例如,IMyInterface转换为字符串'IMyInterface'.我想在Delphi 7中实现这一点(兼容性).这可能吗?或者是有基本的编译限制.

delphi interface rtti

6
推荐指数
1
解决办法
3240
查看次数

使用Delphi 2010进行远程调试时没有断点 - 因此卡在Delphi 7上

在去年八月进行初步调查后,我回过头来看看Delphi 2010的远程调试.我已经确定D2010有4和5的更新,并且远程调试器是Embarcadero wesite的最新版本.按照这里非常有用的说明 ,我可以加载远程进程并运行正常,但我不能使用断点.RSM和EXE文件一起位于远程目录中.

有什么我应该检查的吗?我可以手动加载符号表吗?似乎没有调试器设置,但是我可以强迫某些东西迫使D2010加载我的符号表吗?

这是现在让我继续使用Delphi 7的唯一问题 - 我有几台生产机器无法安装IDE进行调试,我确实需要某种远程调试支持.

作为必然结果 - 对XE的远程调试是否支持更好?

谢谢,Brian.

delphi debugging delphi-2010

6
推荐指数
1
解决办法
1594
查看次数

我可以在办公室服务器上创建一个托管的SVN存储库"并行"吗?

我们一直在办公室里使用DIY SVN服务器大约一年了.这是一个安装在家庭服务器上的SVN的简单设置.我们使用陆龟SVN来访问它我只是希望我几年前就已经了解了一个版本控制系统..无论如何,当然在1Gbps局域网上办公室访问服务器是完美的,但外面它可用但很差,受限于50k字节/秒我们的ADSL线路上传到网络的速度.我想这可能会在'无限'的某一天改善,但我们可能会等待.

我希望托管一个"并行"存储库,为此我意识到我将付费,访问速度要快得多.这也可以为我们提供额外的备份.我的回购不到40G,所以100G限制就可以了.有没有办法做到这一点,并使两个镜像,以便提交(至少小)几乎立即可见?我已经在使用Svnbackup命令在我们的服务器上制作一个并行镜像,这样可以两种方式工作吗?

任何建议或替代品赞赏.

TIA Brian

svn repository mirror hosted

6
推荐指数
1
解决办法
558
查看次数

如何最好地在DWScript中公开类实例

我正在使用优秀的Pascal DWScript整合内置脚本功能.我还使用以下命令将自己的Delphi端类定义(TDemo)添加到DWScript:

dwsUnit.ExposeRTTI( TDemo.ClassInfo  )
Run Code Online (Sandbox Code Playgroud)

这只是工作,是快速添加属性和方法的好方法.

我也希望以类似的方式添加现有实例,因此我创建了类型为TDemo的实例FDemo,然后执行:

   dwsUnit.ExposeInstanceToUnit( 'Demo', 'TDemo', FDemo );
Run Code Online (Sandbox Code Playgroud)

这看起来很有前途,但是我从未初始化的单位表中得到一个AV.我也查看了SVN源的单元测试代码,看看这个功能的使用但无济于事.任何人都可以指出我应该添加/更改的内容吗?

delphi rtti dwscript

6
推荐指数
1
解决办法
816
查看次数

如何使用DWScript及其调试器创建"局部变量"显示

我正在为DWScript编写IDE,并使用调试器逐步完成代码.我现在希望添加一个'局部变量'的显示(即范围内的变量).有人能指点我这样做的方法吗?我可以获得所有符号的列表,但不了解如何获得当前范围的一部分.谢谢.

ide delphi variables debugging dwscript

6
推荐指数
1
解决办法
420
查看次数

如何在运行时设计器中隐藏继承的已发布属性?

我正在使用属性检查器(例如JVCL库中的漂亮的JvInspector),它很好地让我查看和编辑我的类'TMyClass'的已发布属性.TMyClass来自TFrame并且有一些已发布的属性是我需要查看和编辑的唯一属性.当然TFrame有很多VCL属性,都是已发布的,我也看到了.

如何抑制祖先属性RTTI并留下我自己发布的属性?我正在使用XE3所以世界是我的牡蛎......也许吧.

delphi properties rtti delphi-xe3

6
推荐指数
1
解决办法
2473
查看次数

非管理员模式下的注册表访问

我用Delphi编写的几个长期应用程序将其设置保留在注册表中.我已将HKEY_LOCAL_MACHINE用于"硬"设置(如配置首选项)和HKEY_CURRENT_USER用于"软"信息,例如窗口位置,MRU列表等.

现在我的用户告诉我,在非管理员(标准用户)模式下,应用程序不起作用.看,我看到当应用处于管理模式时,我无法读取放入HKEY_LOCAL_MACHINE的设置.

我有什么选择?我对标准模式以及它如何影响对注册表的访问几乎一无所知.任何信息赞赏.

delphi registry permissions

5
推荐指数
2
解决办法
1万
查看次数

如何使用Delphi和WMI查找可用的并行端口及其I/O地址

我看到WMI非常强大,似乎能够返回PC硬件的大部分属性.我想在任何PC上显示可用的并行端口并找到它们的I/O地址 - 我知道通常这是使用内核驱动程序完成的,但这是遗留的需求 - 不要问!现在我们查看设备管理器,然后必须输入那里显示的地址.我想使用WMI来查找这些信息.有以优异的一套WMI类1,但我看不出如何进行迭代.

谢谢.

delphi parallel-processing wmi port

5
推荐指数
1
解决办法
6572
查看次数

我可以使用精确的文件副本在计算机之间复制SVN存储库吗?

我在Windows机器上有一个大型存储库.我想将整个存储库复制到另一台机器上,理想情况下不需要通过'dump'或使用svnsync.如果我可以保证在复制过程中没有文件被更改,我可以使用传统文件复制技术在第二台机器上进行精确的文件复制吗?

svn copy repository

5
推荐指数
2
解决办法
2051
查看次数