TEditを編集不可能に

解決


びる  2008-01-30 20:51:10  No: 29572  IP: [192.*.*.*]

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

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

ReadOnly プロパティ?

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

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

Panel.Enabled = False

にしてしまうとか。

編集    削除
めじな  2008-02-01 00:53:34  No: 29575  IP: [192.*.*.*]

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

編集    削除
びる  2008-02-04 08:41:23  No: 29576  IP: [192.*.*.*]

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

ありがとうございます。

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

編集    削除
beagle  2008-02-06 22: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に移せる?)ことか?

編集    削除