0

Delphi フォーム用のメモリ テーブル TFDMemTable を作成し、FieldDefs の下にフィールドを定義しています。手動でフィールドを定義したら、フィールド エディターに移動して、定義したフィールドを追加します。

FDMemTable に AutoInc タイプのフィールドができるまで、すべてが完璧に機能します。私は Delphi 10.3.2 バージョンを使用していますが、何か不足しているのか、それとも IDE のバグなのか疑問に思っていました。

PS: いくつかのテストを行いましたが、AutoInc フィールドが最後のフィールドとして定義されていない場合、すべてが消えると思います。このケースについて 100% 確信があるわけではありませんが、試行するたびに、FieldDefs の下のフィールドが失われます。

手順は次のとおりです。

  • FDMemTable アイコンを配置する
  • FieldDefs ウィンドウを開く
  • 一連のフィールドを作成します(文字列、整数...)
  • 名前、型 (および文字列のサイズ) を定義する
  • フィールドエディタを開く
  • フィールドを追加

ここまで、すべてが正常に機能します。

  • fieldDefs ウィンドウに戻る
  • autoinc タイプの新しいフィールドを作成して名前を付ける
  • フィールド エディタ画面を開き、最後に追加したフィールドを追加します。

構造に変更がない限り、すべて問題ありません。

ここで、次のようにすると奇妙なことが起こります。

  • FieldDefs ウィンドウを開く
  • 任意のフィールドを作成します(整数型としましょう)
  • フィールド エディタ ウィンドウに移動して、この最後に作成されたフィールドを追加します。
  • 追加するこの新しいフィールドが表示されないことがわかります。
  • fieldDefs ウィンドウに戻って、表示されていない理由を確認すると、
  • 以前と最後に追加されたフィールドの定義がすべてなくなっていることがわかります..

この問題を回避するために、フォームをテキスト形式で開き、autoinc である最後のフィールドの直前に新しいフィールドを挿入します。

フィールド エディターのエントリをテキスト フォームに手動で追加します。

すべてが正しくなったら、フォーム ビューに切り替えます。

4

0 に答える 0