标签: delphi-2006

Delphi调试错误的单元

这是我的D2006的奇怪行为,因为它有时只会发生.我有一个我想调试的项目.我想调试的文件名为'Main.pas'.我有另一个不相关的项目具有相同的单位名称,有时调试提示我错误的主文件而不是当前项目中的主单位.我和其他同名文件发生了这种情况.我无法调试,因为调试键不起作用(他们只是不做任何事情).你有同样的问题吗?我该如何解决?

谢谢.

delphi delphi-2006

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

使用Delphi读取文件时实现超时

我有一个用Delphi 2006编写的应用程序,它定期从位于网络其他位置的磁盘文件(100Mb以太网)读取.偶尔通过网络读取需要很长时间(如20秒)并且应用程序冻结,因为读取是从主线程中的空闲处理程序完成的.

好的,我可以将读取操作放入它自己的线程中,但我想知道的是,是否可以为文件操作指定超时,以便您可以放弃并去做其他事情,或报告事实上,读取时间早于20秒后出现了问题.

function ReadWithTimeout (var Buffer     ;
                              N       : integer ; 
                              Timeout : integer) : boolean ;

begin
Result := false
try
    SetReadTimeout (Timeout) ;          //  <==========================???
    FileStream.Read (Buffer, N) ;
    Result := true ;
except 
    ... 
    end ;
end ;
Run Code Online (Sandbox Code Playgroud)

delphi file-io timeout delphi-2006

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

如何在Delphi中获得64位随机值?

如何在Delphi 2006中创建随机的64位整数值?内置的基于整数的Random()函数似乎只返回0到2 ^ 31之间的值.

delphi random delphi-2006

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

如何在调整主窗体大小时找出长时间延迟的来源?

我有一个D2006应用程序,其中包含选项卡上的页面控件和各种网格等.当我调整主窗体的大小时(它会在与某些东西对齐的表格上涟漪并调整大小),我会遇到很长的延迟,比如几秒钟.应用程序冻结,未调用空闲处理程序,并且运行的线程也会暂停.

我尝试在IDE中暂停执行,而这种情况发生在试图破坏执行时,它处于麻烦的代码中,但IDE没有接收消息.

显然,我不希望任何人指出一些错误的代码,但我正在调试可能对我有帮助的方法.我在整个应用程序中都有大量的执行时序代码,并且长时间延迟不会显示在任何数据中.例如,主窗体OnResize处理程序的执行时间是最小的.

forms delphi onresize freeze delphi-2006

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

如何在网络计算机上找到公共文档文件夹的名称

鉴于我正在通过网络在计算机上执行EXE文件(D2006应用程序),我如何获取该计算机上commondocs文件夹的路径名,因为可能已从UNC快捷方式或映射的驱动器号调用EXE快捷方式,远程机器的平台不一定是已知的(但将是> = WinXP)?

在这种情况下,客户端拥有大量分散的计算机,并且他们无法在所有PC上安装我的应用程序.所以他们所做的就是在网络上的某个地方安装可执行文件,并为每个人提供快捷方式.这似乎已经很适合他们了,那里没有问题.

根据他们的要求,我让应用程序从与可执行文件放在同一文件夹中的INI文件中读取设置.我只能假设他们已经配置了所有用户可以写入该文件夹,以便可以保存INI文件.

但是,我想更改它以便读取INI文件并将其保存到远程计算机上的commondocs文件夹树中的某个位置,这样它们就不需要提供对Program files文件夹的写入权限.

delphi networking unc mapped-drive delphi-2006

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

更改ShowMessage对话框的标题和属性

在Delphi中你可以更改ShowMessage对话框的标题,因为默认情况下它是我的exe名称.

我可以改变背景颜色,大小相同吗?

delphi delphi-2006

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

Delphi IDE自定义菜单项,如何添加它们?

我正在使用Delphi 7Delphi 2006正在开发一个项目,我正在开发一个可以获得某些系统信息的组件.现在要求是在系统上安装组件之后,IDE上应该有一个菜单项,如下所示

在此输入图像描述

而对于delphi 7这样的 在此输入图像描述

我搜索过关于添加菜单项的网,但我没有得到任何东西,项添加到IDE喜欢的一个EurekaLog了.任何人都可以告诉我如何添加项目EurekaLogmysql?它是在注册表中的某些地方吗?

delphi delphi-7 delphi-2006 menuitem

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

从Delphi 2006迁移到Delphi XE2

在delphi 2006中有一个代码库,在过去的许多年里没有开发.如果需要激活开发有哪些选项.

  • 继续在2006年开发.(不确定IDE支持等)
  • 迁移到Delphi XE2.(不确定需要什么)
  • 用Java重新编码.

似乎第二种选择更可行,但它会涉及到什么呢?我读了一些关于Unicode支持的东西,也不确定图形库支持.

为了正确看待事物,我是一名Java程序员,并且拥有C/C++方面的经验.但是,我试图从市场战略的最小阻力路径的角度来理解它.

提前致谢.

delphi delphi-2006 delphi-xe2

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

没有泛型的接口继承

我正在尝试实现一个接口,将数据集中的记录转换为Delphi的pre-generics版本中的Delphi记录.我现在不喜欢这个界面,因为它总是需要调用支持,如果可能的话我想避免使用它,并且想知道是否有更好的方法可以让我失去它.

到目前为止,我已经定义了导航界面和数据检索界面:

IBaseRecordCollection = interface
  procedure First;
  procedure Next;
  function BOF: boolean;
  ... // other dataset nav stuff
end;

IRecARecordCollection = interface
  function GetRec: TRecA;
end;

IRecBRecordCollection = interface
  function GetRec: TRecB;
end;
Run Code Online (Sandbox Code Playgroud)

基本上我有一个具体的基类,它包含一个私有数据集,IBaseRecordCollection并为每个RecordCollection接口实现具体类,该接口派生自一个实现IBaseRecordCollection(由implements属性处理)的抽象类,并执行记录检索例程:

TAbstractTypedRecordCollection = class(TInterfacedObject, IBaseRecordCollection)
private
  FCollection: IBaseRecordCollection;
protected
  property Collection: IBaseRecordCollection read FCollection implements IBaseRecordCollection;
public
  constructor Create(aRecordCollection: IBaseRecordCollection);
end;

TRec1RecordCollection = class(TAbstractTypedRecordCollection, IRecARecordCollection);
public
  function GetRec: TRecA;
end;
Run Code Online (Sandbox Code Playgroud)

现在,为了使用这个,我不得不让一个生成器返回一个IRecARecordCollection然后乱七八糟的东西Supports,我并不热衷于它,因为它总会以这种方式使用.

procedure GetMyRecASet;
var
  lRecARecordCollection: IRecARecordCollection; …
Run Code Online (Sandbox Code Playgroud)

delphi inheritance interface delphi-2006

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

存储TOpenDialog的大小调整数据在哪里以及如何重置?

TOpenDialog有一个选项ofEnableSizing,允许用户修改打开的对话框的对话框大小.此大小调整数据似乎是为应用程序存储的.如果再次启动程序,则会以相同的大小打开对话框.

我的问题是,这些数据存储在何处.我想知道是否存在重置此数据的简单方法.我在文档中找不到相关的信息,ofEnableSizing也没有找到相应的API标志OFN_ENABLESIZING.

delphi winapi delphi-2006

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