こんにちは。
いつも参考にさせていただいております。
StringGridで入力を行うのですが、入力チェックでエラーが発生した場合に
その項目を反転選択させ、再入力を促したいのです。
EditでいうところのSelectAllなのですが、どのような設定を行う事に
なるのでしょうか?
Delphi7を使っています。
どうかご教授下さいませ。
1.先ずはユニット内にグリッドから継承したクラスを宣言
type
TTmpGrid = class(TStringGrid);
TForm1 = class(TForm)
・
・
・
2.上記で宣言したクラスで型チェック無しのキャストをしてプロテクトメンバーを
呼び出す
StringGrid1.Row := 該当の行;
StringGrid1.Col := 該当の列;
TTmpGrid(StringGrid1).InplaceEditor.SelectAll;
StringGrid1.SetFocus;
これでどうでしょうか?
Halbow です。
InplaceEditor は単純に Controls[0] をキャストして得られます。
こんな感じです。
if StringGrid1.ControlCount > 0 then
TInplaceEditor(StringGrid1.Controls[0]).SelectAll;
本当は is で型チェックすると完璧ですね。
ありがとう御座いました。
えびさんの方法で上手く行きました。
Halbowさん、初歩的な質問をさせて下さい。
Halbowさんのコードのグリッド名だけ変更して、実行すると
未定義の識別子 : 'TInplaceEditor'
とエラーがでます。
初歩的なミスを犯しているのだと思うのですが、分かりません・・・
ご指摘頂けないでしょうか?
TInplaceEditでどうでしょう。
Halbow です。
ごめんなさい。にしのさんのとおりです。or はいりませんね。
なるほど、上手くいきました。
ありがとう御座いました。
ツイート | ![]() |