2016年05月18日

Delphiマイグレーション記録 TDBGridバグ

Delphiの古いバージョンから、S-JIS最終版Delphi2007へのマイグレーションで、TDBGridのバグに遭遇。
Delphi2007(December 2007 Update)

データセットが編集中に、データが表示されていない部分をマウスクリックすると、データが不正に変更されるという現象が発生することがあるようです。

対策
DBGrid.pas
---------------
3471行あたりの
TCustomDBGrid.MouseDown();
メソッド中の
------------------------------------------------------------
  Cell := MouseCoord(X, Y);          <=3492行あたりです
  if (Cell.X < 0) and (Cell.Y < 0) then
  begin
    if (FDataLink <> nil) and (FDataLink.Editing) then
//      UpdateData;                                         Del ThinkSoft
      FDataLink.UpdateData;                               //Add ThinkSoft
    inherited MouseDown(Button, Shift, X, Y);
    Exit;
  end;
------------------------------------------------------------


#追記
このバグは、直接グリッド内でデータ編集を行う際にはほぼ遭遇しないと思われます。
同一データセットの内容をDBグリッドに表示させながら、グリッド外で、DBEditのなどのData Controls系のコンポーネントで編集を行うケースで発生します。

posted by しんくそふと at 15:37| Comment(0) | TrackBack(0) | エラー対応覚え
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/175342920
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック