Shinyaです。いつもお世話になっております。
非常に簡単なことかもしれませんが今回Editにつきまして
ご質問させて頂きます。
EditにてOnEnterイベントで
TEdit(Sender).SelectAll;
としておくとTabキーなどでフォーカスを受け取った場合には全選択状態に
なりますが、マウスにてクリックすると全選択状態になりません。
MemoなどではOnEnterイベントに
TMemo(Sender).SelectAll;
とするとマウス操作でも全選択状態になりもう一度クリックすると
編集状態になります。
EditのOnMouseUp・DownイベントにてSelectAllを試してみましたが
マウスをクリックするたびに常時全選択状態になり困っています。
全選択状態からもう一度クリックすると編集状態にしたいのです。
Editでマウスをクリックしてフォーカスを受け取った時にMemoと
同じような動きを実現するにはどのようにすればいいのでしょうか?
質問内容が頓珍漢かもしれませんが識者の方、ご教授の程よろしくお願い致します。
環境は
Delphi6 Professional
WindowsXP Professional
です。
るるとん@Kです
onEnterイベントは起きますが、クリックした位置にカーソルを合わせる操作が行われているみたいですね
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;
横からすみませんが、TtPIPICHさんのコード、hogeは実際には何の働きもしていないのでは?
ぐはー
procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if hoge then Edit1.SelectAll;
hoge:=false;
end;
でした
実装漏れ..^^;
TtPIPICH様、ふぐちゃん様ご回答ありがとうございます。
掲示して頂いたソースにて無事解決することができました。
この度はありがとうございました。
解決にチェック入れ忘れてしまいました。
この度はありがとうございました。
ミス^^;
onEditでhoge:=false;が必要でした
〇change
×edit
ってかKeyDownかも
タブで入ったら変になりそう
自分でソースを投稿しましたが、
procedure TForm1.Edit1Enter(Sender: TObject);
begin
hoge:=Edit1.SelLength<Length(Edit1.Text);
end;
でないと、タブでフォーカス->クリック でSelectAllしてしまいます
ツイート | ![]() |