Editでマウス操作にて全選択状態にするには?

解決


Shinya  2004-07-17 23:23:23  No: 9964

Shinyaです。いつもお世話になっております。
非常に簡単なことかもしれませんが今回Editにつきまして
ご質問させて頂きます。

EditにてOnEnterイベントで
  TEdit(Sender).SelectAll;
としておくとTabキーなどでフォーカスを受け取った場合には全選択状態に
なりますが、マウスにてクリックすると全選択状態になりません。

MemoなどではOnEnterイベントに
  TMemo(Sender).SelectAll;
とするとマウス操作でも全選択状態になりもう一度クリックすると
編集状態になります。

EditのOnMouseUp・DownイベントにてSelectAllを試してみましたが
マウスをクリックするたびに常時全選択状態になり困っています。
全選択状態からもう一度クリックすると編集状態にしたいのです。

Editでマウスをクリックしてフォーカスを受け取った時にMemoと
同じような動きを実現するにはどのようにすればいいのでしょうか?

質問内容が頓珍漢かもしれませんが識者の方、ご教授の程よろしくお願い致します。

環境は
 Delphi6 Professional
 WindowsXP Professional
です。


TtPIPICH  2004-07-17 23:32:34  No: 9965

るるとん@Kです
onEnterイベントは起きますが、クリックした位置にカーソルを合わせる操作が行われているみたいですね


TtPIPICH  URL  2004-07-17 23:34:20  No: 9966

var hoge:boolean;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
hoge:=true;
end;

procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Edit1.SelectAll;
hoge:=false;
end;


ふぐちゃん  2004-07-18 00:43:12  No: 9967

横からすみませんが、TtPIPICHさんのコード、hogeは実際には何の働きもしていないのでは?


TtPIPICH  2004-07-18 00:55:21  No: 9968

ぐはー
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
if hoge then Edit1.SelectAll;
hoge:=false;
end;
でした
実装漏れ..^^;


Shinya  2004-07-20 18:32:18  No: 9969

TtPIPICH様、ふぐちゃん様ご回答ありがとうございます。

掲示して頂いたソースにて無事解決することができました。
この度はありがとうございました。


Shinya  2004-07-20 18:33:04  No: 9970

解決にチェック入れ忘れてしまいました。

この度はありがとうございました。


TtPIPICH  2004-07-20 19:26:25  No: 9971

ミス^^;
onEditでhoge:=false;が必要でした


TtPIPICH  2004-07-20 20:10:31  No: 9972

〇change
×edit
ってかKeyDownかも
タブで入ったら変になりそう


TtPIPICH  2004-07-20 23:06:30  No: 9973

自分でソースを投稿しましたが、
procedure TForm1.Edit1Enter(Sender: TObject);
begin
hoge:=Edit1.SelLength<Length(Edit1.Text);
end;
でないと、タブでフォーカス->クリック でSelectAllしてしまいます


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加