1

我正在尝试从 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 错误] Unit1.pas(107):E2003 未声明的标识符:'APlannerItem'

然后粘贴:

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

我究竟做错了什么 ?

4

1 回答 1

0

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

编译错误中的 APlannerItem 指的是 Copy1Click 中的第一行:

DBPlanner2.Items.Select(APlannerItem);

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

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

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

于 2015-02-18T07:57:54.240 回答