这是我的D2006的奇怪行为,因为它有时只会发生.我有一个我想调试的项目.我想调试的文件名为'Main.pas'.我有另一个不相关的项目具有相同的单位名称,有时调试提示我错误的主文件而不是当前项目中的主单位.我和其他同名文件发生了这种情况.我无法调试,因为调试键不起作用(他们只是不做任何事情).你有同样的问题吗?我该如何解决?
谢谢.
我有一个用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 2006中创建随机的64位整数值?内置的基于整数的Random()函数似乎只返回0到2 ^ 31之间的值.
我有一个D2006应用程序,其中包含选项卡上的页面控件和各种网格等.当我调整主窗体的大小时(它会在与某些东西对齐的表格上涟漪并调整大小),我会遇到很长的延迟,比如几秒钟.应用程序冻结,未调用空闲处理程序,并且运行的线程也会暂停.
我尝试在IDE中暂停执行,而这种情况发生在试图破坏执行时,它处于麻烦的代码中,但IDE没有接收消息.
显然,我不希望任何人指出一些错误的代码,但我正在调试可能对我有帮助的方法.我在整个应用程序中都有大量的执行时序代码,并且长时间延迟不会显示在任何数据中.例如,主窗体OnResize处理程序的执行时间是最小的.
鉴于我正在通过网络在计算机上执行EXE文件(D2006应用程序),我如何获取该计算机上commondocs文件夹的路径名,因为可能已从UNC快捷方式或映射的驱动器号调用EXE快捷方式,远程机器的平台不一定是已知的(但将是> = WinXP)?
在这种情况下,客户端拥有大量分散的计算机,并且他们无法在所有PC上安装我的应用程序.所以他们所做的就是在网络上的某个地方安装可执行文件,并为每个人提供快捷方式.这似乎已经很适合他们了,那里没有问题.
根据他们的要求,我让应用程序从与可执行文件放在同一文件夹中的INI文件中读取设置.我只能假设他们已经配置了所有用户可以写入该文件夹,以便可以保存INI文件.
但是,我想更改它以便读取INI文件并将其保存到远程计算机上的commondocs文件夹树中的某个位置,这样它们就不需要提供对Program files文件夹的写入权限.
在Delphi中你可以更改ShowMessage对话框的标题,因为默认情况下它是我的exe名称.
我可以改变背景颜色,大小相同吗?
我正在使用Delphi 7和Delphi 2006正在开发一个项目,我正在开发一个可以获得某些系统信息的组件.现在要求是在系统上安装组件之后,IDE上应该有一个菜单项,如下所示

而对于delphi 7这样的

我搜索过关于添加菜单项的网,但我没有得到任何东西,项添加到IDE喜欢的一个EurekaLog了.任何人都可以告诉我如何添加项目EurekaLog或mysql?它是在注册表中的某些地方吗?
在delphi 2006中有一个代码库,在过去的许多年里没有开发.如果需要激活开发有哪些选项.
似乎第二种选择更可行,但它会涉及到什么呢?我读了一些关于Unicode支持的东西,也不确定图形库支持.
为了正确看待事物,我是一名Java程序员,并且拥有C/C++方面的经验.但是,我试图从市场战略的最小阻力路径的角度来理解它.
提前致谢.
我正在尝试实现一个接口,将数据集中的记录转换为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) TOpenDialog有一个选项ofEnableSizing,允许用户修改打开的对话框的对话框大小.此大小调整数据似乎是为应用程序存储的.如果再次启动程序,则会以相同的大小打开对话框.
我的问题是,这些数据存储在何处.我想知道是否存在重置此数据的简单方法.我在文档中找不到相关的信息,ofEnableSizing也没有找到相应的API标志OFN_ENABLESIZING.
delphi ×10
delphi-2006 ×10
delphi-7 ×1
delphi-xe2 ×1
file-io ×1
forms ×1
freeze ×1
inheritance ×1
interface ×1
mapped-drive ×1
menuitem ×1
networking ×1
onresize ×1
random ×1
timeout ×1
unc ×1
winapi ×1