DBGridEXについて

解決


NON  2008-02-22 19:00:20  No: 29885

過去レスを参考にDBGrid内をEnterで進めようとフォームにDBGridEXを配置しました。
実行時に「DBGRIDEX.ColumnAllの読込み中のエラー:プロパティColumnAllは存在しません」のエラーがでます。
対処方法を教えて下さい。


ナイものはナイ  2008-02-22 19:25:23  No: 29886

情報不足で回答不能...


KHE00221  2008-02-22 21:08:53  No: 29887

そもそも ColumnAll なんて DBGrid にも無いんだけど?追加したのかな?

DBGridEx を配置してから DBGridEx のプロパティを ColumnAll をDBGridExのソースから削除して、DBGridExを再構築すると

DBGRIDEX.ColumnAllの読込み中のエラー:プロパティColumnAllは存在しません

出るんだけどね

(フォームには ColumnAllの情報が残ってるんだけどコンポーネントには存在しなくなる為)

フォームをエディタで表示してプロパティ ColumnAll を削除すれば出なくなるはず

そのフォームを読み直すと フォーム読み込み中のエラー が表示され
プロパティ ColumnAll は存在しません と表示されるはずだけど
[無視]すれば問題なし(プロパティが消える)


NON  2008-02-23 17:56:14  No: 29888

KHE00221さんありがとうございます。
入手したDBGridExにカスタマイズがかかっているみたいです。
フォームをエディタで表示してプロパティ ColumnAll を削除すればOKでした。
ですが、イベントうぃ変えたりすると復活してエラーになります。
正常なDBGridExに入替えた方がよさそうです。

とこれでDBGridExを配置して↓のアドバイスを参考にしてEnterで処理できるようにました。
https://www.petitmonte.com/bbs/answers?question_id=5320

項目編集中の場合に同じ場所にフォーカスがあたり、
再度Enterで先に進むみたいですが、一度のEnterで進めることができませんでしょうか。
DBGridを使用せずにDBGridExだけを使用したことが問題でしょうか。


したたらず  2008-02-23 18:08:10  No: 29889

>入手したDBGridExにカスタマイズがかかっているみたいです。
KHE00221さんのDBGridExコンポに誰かが ColumnAllプロパティを追加して、それを使ってるってコトなのかな?
そういう情報は最初に言わなきゃダメだよ。その誰かさんに聞いた方が早いんじゃないの?


KHE00221  2008-02-23 18:44:21  No: 29890

>再度Enterで先に進むみたいですが、一度のEnterで進めることができませんでしょうか。

先に進むENTER は DBGrid 上の ENTER で

編集中のENTERは InplaceEditor 上でのENTER だから別物

InplaceEditor 上でのENTER を感知して先に進むようにすれば

出来ると思うけど


KHE00221  2008-02-23 18:44:22  No: 29891

>再度Enterで先に進むみたいですが、一度のEnterで進めることができませんでしょうか。

先に進むENTER は DBGrid 上の ENTER で

編集中のENTERは InplaceEditor 上でのENTER だから別物

InplaceEditor 上でのENTER を感知して先に進むようにすれば

出来ると思うけど


NON  2008-02-24 02:30:32  No: 29892

厳しいご意見ですが、前に人から提供されたコンポーネントにDBGridExが含まれていました。
ですので仕様がよくわからず使用していました。
もう誰かさんとは連絡もとれません。

>InplaceEditor 上でのENTER を感知して先に進むようにすれば出来ると思うけど
とは?調べましたが難しいですね。
またDelphi上のコーディングでEnterを自動的に発生できるのでしょうか。


KHE00221  2008-02-24 03:18:37  No: 29893

>先に進むENTER は DBGrid 上の ENTER で
>編集中のENTERは InplaceEditor 上でのENTER だから別物
>InplaceEditor 上でのENTER を感知して先に進むようにすれば

これは DBGridEx のイベント上では同じだね。

これでいいかな?

procedure TForm1.DBGridEx1KeyPress(Sender: TObject; var Key: Char);
begin
    if Assigned(DBGridEx1.InplaceEditor) = True then
    begin
      if DBGridEx1.InplaceEditor.Visible = False then
      begin
        if Key=Char(13) then Key := Char(9);
      end
      else
      begin
        if Key=Char(13) then
        begin
          PostMessage(DBGridEx1.Handle,WM_KEYDOWN,9,0);
          PostMessage(DBGridEx1.Handle,WM_KEYUP,9,0);
        end;
      end;
    end
    else
    begin
      if Key=Char(13) then Key := Char(9);
    end;
end;


KHE00221  2008-02-24 03:22:03  No: 29894

SnedMessageにすると次に移動と同時に入力状態になる

お好きな方をどうぞ


NON  2008-02-24 06:12:55  No: 29895

KHE00221さん、ありがとう・・・
本当に初心者には助かります。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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