TEdit.enabled := falseにしたとき、背景色とともに文字色も固定(グレーアウト?)されてしまいますが、これを、現在の文字色、背景色を保ったまま、マウスでもキーボードでも編集不可能にする方法は有りませんでしょうか。
ReadOnly プロパティ?
KHE00221さんが言ってるようにReadOnly=Trueでできます。
フォーカスすら与えないいうのであれば
TPanel上にTEditを配置して
Panel.Enabled = False
にしてしまうとか。
フォーカスすら与えない場合でPanel上に載っていなければ
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or WS_DISABLED);
でも可能です。
Readonly := True じゃ、なぜかダメなんです。なんで??
でも、TPanelに乗せる方法でうまく行きました。
ありがとうございます。
でも、なんでReadOnlyじゃだめなんだろ。
質問者は、以下の情報を開示してはいかがでしょう。
Delphiのバージョン及びOS環境は?
「ダメ」というのは、今作っているプロジェクトに限ってダメなのか?
そのプロジェクトは誰かから引き継いだ/どっかから拾ってきたものか?
又、そちらの環境で・・・
新規でプロジェクトを作って、TForm1にTEdit1を貼り付けて
オブジェクトインスペクタからReadOnlyにTrueを指定してダメなのか?
あるいはオブジェクトインスペクタからは特に指定せずに
(デフォルトならReadOnlyはFalse)、さらにTButton1を貼り付けて
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.ReadOnly := True;
end;
としてもやはりダメなのか?
そもそも「ダメ」とは何か?
マウス/キーボードで編集可能な状態になるのか?
文字色・背景色が希望通りにならないのか?
マウスででクリックすると、フォーカスが当たる(?というか、カーソルを
TEdit1に移せる?)ことか?
ツイート | ![]() |