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 の PlannerItem のインデックス付きリストを介して PlannerItem にアクセスする必要があります。DBPlanner2 に Items プロパティがあることがわかりました。それが、必要なアイテムへの通路である可能性があります。どの項目が選択されているかを示す ItemIndex プロパティさえあるかもしれません。

以前にこれを知らなかった場合の補足として、コンパイラは常にエラーが発生した場所を表示しようとし、エラーの場合はエラーが発生したコードの行番号を表示します。この場合は行番号 107 です。その行に移動し、コードを調べて問題を特定します。

于 2015-02-18T07:57:54.240 に答える