初心者です。宜しくお願いいたします。
メモ帳の切り取りなどのように文字がなければアクション(TEditCopyなどの標準アクションではなく独自のアクション)を使用できないようにするにはどうすればよいでしょうか?
アクションのEnabledを変更します。
わたしはApplicationEvents.OnIdleで一括処理(前アクションのEnabled判定)するようにしています。
選択範囲が変わると実行されるイベントがあったような気がします(PDAからの投稿なので名前分からん
***.Enabled:=Memo1.SelText<>'';
か
***.Enabled:=Length(Memo1.SelText)>0;
***はメニューやらボタンです
> メモ帳の切り取りなどのように文字がなければ
正確には「文字列が選択されていなければ」かな?
エディタ部分がTMemoで切り取りのアクションのNameプロパティがactCutだとすると、
私なら下のよう書くと思います。
// actCutのOnExecute
procedure TForm1.actCutExecute(Sender: TObject);
begin
Memo1.CutToClipboard;
end;
// actCutのOnUpdate
procedure TForm1.actCutUpdate(Sender: TObject);
begin
actCut.Enabled := Memo1.SelLength > 0;
end;
たかみちえさん、るるとん@Kさん、ふぐちゃんさん、返信ありがとうございます。
OnUpdateに書けばよいのですね。
皆様どうもありがとうございました。
ツイート | ![]() |