【问题标题】:TMS DBPlanner - copy and paste an eventTMS DBPlanner - 复制和粘贴事件
【发布时间】:2023-03-30 20:39:01
【问题描述】:

我正在尝试从 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;

我做错了什么?

【问题讨论】:

  • 正如编译器所说,它不知道 APlannerItem 是什么,我们也不知道。它在哪里声明?它甚至是从哪里来的?您需要在某处声明它并为其分配一些值

标签: delphi tms


【解决方案1】:

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

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

DBPlanner2.Items.Select(APlannerItem);

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

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

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

【讨论】:

  • 希望我知道在那里写什么....以前没有用过这个....对不起....代码来自TMS手册。
  • (DBPlanner2.Items.Selected) ??
  • (DBPlanner2.Items.Selected) 有效,但我想知道为什么它不复制时间。
  • 很难说。我从未使用过数据库感知组件。将无法评论它复制的内容和不复制的内容。那么我可以假设我的回答足以解决您最初的问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多