TMS DBPlanner - 复制并粘贴事件

TMS DBPlanner - copy and paste an event

我正在尝试从 DBPlanner 复制并粘贴一个事件。 我试过了:

procedure TForm1.Copy1Click(Sender: TObject);
begin
DBPlanner2.Items.Select(APlannerItem);
DBPlanner2.Items.CopyToClipboard;
DBPlanner2.SelectCells(DBPlanner2.SelItemBegin,DBPlanner2.SelItemEnd, DBPlanner2.SelPosition + 1);
end;

我得到:

[dcc32 Error] Unit1.pas(107): E2003 Undeclared identifier: 'APlannerItem'

然后粘贴:

procedure TForm1.Paste1Click(Sender: TObject);
begin
DBPlanner2.Items.PasteFromClipboardAtPos;
end;

我做错了什么?

看来您犯了一个经典错误,那就是从示例或其他代码中复制代码。不用担心,我们都做到了。

编译错误中的APlannerItem引用了Copy1Click中的第一行:

DBPlanner2.Items.Select(APlannerItem);

在 Copy1Click 的上下文中,编译器不知道 APlannerItem 是什么。它可能是您从示例或文档或其他代码中引入的东西,在这种情况下,它很可能是指代码中出现该行的 function/procedure 参数。

您现在必须将其更改为您想要 select 并复制的特定 PlannerItem。我假设您在要复制之前单击了 PlannerItem。如果是这样,那么您必须参考该 PlannerItem。如果不是,那么您必须通过 DBPlanner 的 PlannerItems 索引列表访问 PlannerItem,无论函数的名称是什么。我看到您在 DBPlanner2 中有一个 Items 属性,所以这可能是您想要的项目的通道。甚至可能有一个 ItemIndex 属性 说明哪个项目是 selected.

作为旁注,以防万一您之前不知道这一点:编译器总是尝试向您展示错误发生的位置,并且在发生错误的情况下,它将显示发生错误的代码的行号.在本例中,第 107 行。转到该行并检查代码以找出问题所在。