1

TDBGrid初めて使用します。

Columnsオブジェクトインスペクターのプロパティにも気づかず、すべてがうまくいきました。グリッドがいっぱいになりました。

それから私はそのColumns物件を見て試してみました。オブジェクトinsectorを使用しColumnsてグリッドのプロパティにアイテムを追加すると、実行時にすべてのアイテムが表示されるわけではありません。私には、FieldNameプロパティが重要であるように見えます。正しいように見えますが、一部の列に値がありません。

このプロパティを空白のままにすると(列がまったくない)、実行時にコントロール自体にデータが入力されているように見え、すべての列が表示されます。私はそれと一緒に暮らすことができました。実行時に列タイトルを設定すると機能しますが、列幅の設定は機能しません。


[更新]フィードバックをありがとう。私はゆっくりと学んでいます。今、私は何が起こっているのかがわかります。5つの列のうち3つを計算したかったのです。2つはINNERJOINから取得され、3つ目はのSQL「キャスト」から取得されますSELECT ... FROM_UNIXTIME(<table>.time_stamp)

設計時に列を定義しない場合、SELECTを実行すると、実行時にこれらの値が入力されます。Cnn誰かがデザイン時に物事をセットアップする方法を教えてくれますか?ありがとう

4

2 に答える 2

2

dbGridで列を定義する最良の方法は、データセットをダブルクリックして、フォームが認識している変数(永続フィールド)を作成することです。DisplayLabel、DisplayWidth、DisplayFormatなど、これらの変数のさまざまなプロパティを編集できます。

クライアントデータセットをダブルクリックすると表示されるダイアログボックスをダブルクリックして、計算フィールドを追加することもできます。

于 2012-10-12T15:49:14.023 に答える
2

実行時と設計時のセットアップ列の機能に違いはありません。つまり、設計時に実行できることは実行時にも実行でき、その逆も可能です。

teColumnsプロパティが空のままの場合、データセットが開かれると、グリッドはデフォルトでリンクされたデータセットで見つかったすべてのフィールドでプロパティを埋めます。配置、幅、タイトルのキャプションなど、すべての列固有の設定は、対応するフィールドのタイプ、長さ、および名前に基づいて、デフォルトに設定されます。これは確かに十分かもしれない怠惰な方法です。

次の1つ以上の理由により、columnsプロパティの独自の設定または変更を使用することを決定できます。

  • グリッドに表示する必要のあるデータセットフィールドの順序を変更し、
  • テキストフィールドの幅を切り捨てます(特に、VarCharフィールドまたはCharフィールドの長さが長いと、通常の表示やユーザー操作には幅が広すぎる列になります)、
  • フィールドの配置を変更します(通常、数値フィールドはデフォルトで右揃えになります)。
  • データセットから1つ以上のフィールドを非表示にします。
  • 等...

これらの独自の設定は、実行時だけでなく、設計時にも行うことができます。

これらのカスタマイズが必要な場合は、デザインタイム列エディターを使用することをお勧めします。グリッドまたはプロパティをダブルクリックするか、グリッドのコンテキストメニューを使用して、エディターを開きます。リンクされたデータセットがアクティブな場合、[すべてのフィールドを追加]コマンドが有効になります。これは、フィールドをまったく選択しなかった場合とまったく同じです。つまり、2番目の段落で説明したデフォルトの動作です。

于 2012-10-12T21:28:50.810 に答える