はじめましてαと申します
一種のテキストエディタを作ろうと思っているのですが
メニューバーの「編集」部分の「コピー」「貼り付け」等において
procedure TForm1.mmnCopyClick(Sender: TObject);
begin
if Form1.ActiveControl.ClassName = 'TMemo' then
Form1.ActiveControl.CopyToClipboard;
end;
としたのですが、『未定義の識別子 : 'CopyToClipboard'』と出てしまいます
複数あるTMemoのいづれにフォーカスがあっても良いようにしたいですが
これを回避するにはどうすれば良いのでしょうか?
とりあえず臨時として
procedure TForm1.mmnCopyClick(Sender: TObject);
begin
if Memo1.Focused = true then Memo1.CopyToClipboard;
if Memo2.Focused = true then Memo2.CopyToClipboard;
if Memo3.Focused = true then Memo3.CopyToClipboard;
if Memo4.Focused = true then Memo4.CopyToClipboard;
end;
としております(貼り付け、カット、削除、やり直しも同様です)
これでどうでしょうか。
procedure TForm1.mmnCopyClick(Sender: TObject);
begin
if ActiveControl.ClassName = 'TMemo' then
TMemo(ActiveControl).CopyToClipboard;
end;
上のコードですが、is演算子を使って書いた方がよいでしょうか。
procedure TForm1.mmnCopyClick(Sender: TObject);
begin
if ActiveControl is TMemo then
TMemo(ActiveControl).CopyToClipboard;
end;
ふぐちゃんさん有難うございます
目的どおりに動いてくれました!
ツイート | ![]() |