TEditを編集不可能に

解決


びる  2008-01-30 11:51:10  No: 29572  IP: 192.*.*.*

TEdit.enabled := falseにしたとき、背景色とともに文字色も固定(グレーアウト?)されてしまいますが、これを、現在の文字色、背景色を保ったまま、マウスでもキーボードでも編集不可能にする方法は有りませんでしょうか。

編集 削除
KHE00221  2008-01-30 12:01:05  No: 29573  IP: 192.*.*.*

ReadOnly プロパティ?

編集 削除
Ru  2008-01-30 12:31:39  No: 29574  IP: 192.*.*.*

KHE00221さんが言ってるようにReadOnly=Trueでできます。
フォーカスすら与えないいうのであれば
TPanel上にTEditを配置して

Panel.Enabled = False

にしてしまうとか。

編集 削除
めじな  2008-01-31 15:53:34  No: 29575  IP: 192.*.*.*

フォーカスすら与えない場合でPanel上に載っていなければ
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE)  or WS_DISABLED);
でも可能です。

編集 削除
びる  2008-02-03 23:41:23  No: 29576  IP: 192.*.*.*

Readonly := True じゃ、なぜかダメなんです。なんで??
でも、TPanelに乗せる方法でうまく行きました。

ありがとうございます。

でも、なんでReadOnlyじゃだめなんだろ。

編集 削除
beagle  2008-02-06 13:28:58  No: 29577  IP: 192.*.*.*

質問者は、以下の情報を開示してはいかがでしょう。
Delphiのバージョン及びOS環境は?
「ダメ」というのは、今作っているプロジェクトに限ってダメなのか?
そのプロジェクトは誰かから引き継いだ/どっかから拾ってきたものか?
又、そちらの環境で・・・
新規でプロジェクトを作って、TForm1にTEdit1を貼り付けて
オブジェクトインスペクタからReadOnlyにTrueを指定してダメなのか?
あるいはオブジェクトインスペクタからは特に指定せずに
(デフォルトならReadOnlyはFalse)、さらにTButton1を貼り付けて
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.ReadOnly := True;
end;
としてもやはりダメなのか?
そもそも「ダメ」とは何か?
マウス/キーボードで編集可能な状態になるのか?
文字色・背景色が希望通りにならないのか?
マウスででクリックすると、フォーカスが当たる(?というか、カーソルを
TEdit1に移せる?)ことか?

編集 削除