TDBGridで特定のセルを編集不可にするには?

解決


みるく  2005-05-18 20:58:16  No: 121749

あるマスターテーブルから一覧を下記のように表示させ、
登録・更新・削除を行っています。

削除  コード  名称
 □      1    あああ
 □      2    いいい

テーブルにデータがあったときに、そのレコードのコードを
変更不可にしたいのですが、削除のチェックボックスや名称は
変更できるようにしたいです。
テーブルにあるデータのコードだけを
編集不可にすることは可能でしょうか?

ネットで色々検索してみたのですが、列全体を編集不可にするような
やり方しか見つけられなかったので、質問してみました。
可能かどうかだけでも教えていただけないでしょうか?
よろしくお願いします。


特攻隊長まるるう  2005-05-19 03:19:17  No: 121750

>可能かどうかだけでも教えていただけないでしょうか?
それが一番難しい質問でしょうね。工夫しだいでどうにか
なる場合がありますから。そういった設定ができるプロパティ
などが用意されてるかどうかは、使った事がないので全く
知りませんが、無くてもそれなりの物はできるでしょう。

例えば、
[VB6.0]の MSFlexGrid は編集できませんが、ヘルプには
KeyPress イベントで選択セル位置にテキストボックスを表示し、
そのテキストボックスの値をプログラムから代入する事により
編集を実現してるサンプルが載ってます。
Click イベントや KeyPress イベントくらいはあるんじゃないですか?。
…なら可能と言う事になるでしょう。


葉月α  2005-05-19 19:34:55  No: 121751

処理の仕方次第ですよね
まるるうさん仰っているイベント関係は存在します

ただDBGの特性上たいていバインドして行変えた(カーソルが行を変更した)瞬間更新
が普通の処理なので、仕様次第でしょう・・・

できるできないで言えばできます・・・となるのかな

バインドしないで更新なら同社(推定グレープシティ)のスプレッドシートの利用も考えられるかも知れませんね
確かこれならセル単位でロックとかできますからね


いな  2005-05-19 19:44:59  No: 121752

>可能かどうかだけでも教えていただけないでしょうか?

ぢぶんは
実現が不可!という情報が明らかで無ければ
可能だぁ〜、できるんだぁ〜
っと思い込んで、試練の道を行くだろうなぁ〜、

#だから今月もデスマーチ(orz


みるく  2005-05-26 02:34:38  No: 121753

投げっぱなしみたいになってしまってすいません;
教えていただいたように、keypressやkeydownのところに
入力をキャンセルするような処理を書いたりしたのですが
if tdbgrid1.text <> "" or keycode = 46 then
   keycode = 0
end if
ちょっと考えが浅すぎたようで、表示されているところには
入力もdeleteもできないようになってますけど、
1文字でも入力したらこれに引っかかってしまうじゃん><;
ってことになったりして、無理矢理やるには技術も時間も
足りませんでした・・・

結局上司にそこはいいと言われてしまいました。
どうやら私が勝手に細かく作ろうとしてただけみたいで。。すみません。。
まだTDBGridを使った仕事を2,3度しかしたことがないので
これからもっと勉強したいと思います。
お答えいただいた皆さん、ありがとうございました。


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




  


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