我想在我正在使用 Delphi XE2 的项目中使用 OmniThreadLibrary,我已按照说明进行操作。
说明非常简单,OmniEventMonitor 位于调色板中。
但是,我无法运行单个示例。
例如,当我尝试运行时:
procedure TForm2.Button1Click(Sender: TObject);
begin
Button1.Enabled := false;
Parallel.Async(
procedure
begin
// executed in background thread
Sleep(500);
MessageBeep($FFFFFFFF);
end,
Parallel.TaskConfig.OnTerminated(
procedure (const task: IOmniTaskControl)
begin
// executed in main thread
btnAsync.Enabled := true;
end
)
);
end;
Run Code Online (Sandbox Code Playgroud)
我收到错误Undeclared Identifier Parallel。
我在安装过程中做错了什么吗?
我有一个从TPersistent继承3度的对象,我想使用Assign过程克隆它.
MyFirstObj := GrandSonOfPersistent.Create();
//I modify the objects inside MyFirstObj
MySecondObj := GrandSonOfPersistent.Create();
MySecondObj.Assign(MyFirstObject);
Run Code Online (Sandbox Code Playgroud)
我该怎么检查它有效?当对象有许多其他对象时它是否有效?
我正在尝试克隆一个对象,这是正确的方法吗?
我正在将项目从Delphi 7迁移到Delphi XE2.
我仍然在努力,但当我在Delphi XE2中运行项目时,它停止在一个函数中,该函数从第三方组件调用一个单元.此单元未初始化,因此我预计会出现此错误.
但是,当我在Delphi 7中编译项目时,我得到了它应该像XE2一样破坏的部分,它正常工作.因此,当我尝试编译时,我继续在项目中检查此单元,并在IDE中打开该单元.它显示了这条消息.
Field FormPropiedadesElemento.SpinVector没有相应的组件.删除声明?
单击"否"后,项目运行但现在停止在与Delphi XE2项目相同的部分.
当我看到这个单元的代码时,这个问题只发生在Delphi 7中.
知道它可能是什么或如何解决它?
我正在从D7迁移到XE2,并且IDE已经更改了一些DFM文件.
在某些文件中,更改只是一些简单的属性,如删除ItemHeight
或添加ExplicitLeft = 0
.
但是,在其他文件中,更改比删除整个object
声明更大,我可以在将dfm文件与D7进行比较时检查.
当我在XE2中从D7添加DFM的缺失部分时,它会保存而不会出现错误:
未找到TGenReglas类.忽略错误并继续?
我已经检查过,TGenReglas在项目中,我甚至将其文件夹添加到项目路径中,以防万一.
保存并重新打开项目后,我的所有更改都不会保存.
我可以将DFM文件从D7复制到XE2中以解决这个问题或我应该怎么做?
是否可以使用表的每列的线程更新TStringGrid?
我正在每个线程中进行一些计算,我想将它们添加到一个列中,到目前为止我有类似但有一个奇怪的错误.
在一个线程获得其列中当前行的结果后,它将调用此过程.
procedure TAnimator.Iteration(Sender: TObject);
begin
TMyClass.AddData(TEngine(Sender).Data, TEngine(Sender).ID, TEngine(Sender).IterationsCount);
end;
Run Code Online (Sandbox Code Playgroud)
有时我得到一个表,其中包含正确添加的线程中的所有数据.但是,我可能会得到一个表,其中某些列中的第一个值未正确显示.
|| Col 1 || Col 2 || Col 3 || Col 4 ||
|| 1 || || || 4 ||
|| 1 || 2 || || 4 ||
|| 1 || 2 || 3 || 4 ||
|| 1 || 2 || 3 || 4 ||
|| 1 || 2 || 3 || 4 ||
Run Code Online (Sandbox Code Playgroud)