問題タブ [dbgrid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
527 参照

delphi - DBGrid での選択の変更を監視する Delphi 5 の標準的な方法は何ですか?

アプリケーションに多くの「マスター/詳細」フォームがあります。各行がアイテムのいくつかのコア値を示す TDBGrid。グリッドの下には通常、グリッドで現在選択されている項目の完全な情報を表示する「詳細領域」があります。

現在、グリッドの背後にある TADOQuery の「AfterScroll」イベントをリッスンしていますが、イベントが多すぎるようです。

AfterScroll はこれに対する正しいイベントですか? どうやってこれをやっていますか?

0 投票する
3 に答える
5460 参照

sqlite - SQLite を使用した C++ ビルダー: DBGrid で WIDEMEMO を表示するデータ プレゼンテーション

SQLite データベースで C++ Builder を使用しています。DBExpress を介してデータベースに接続します。問題は、データベースが持っている正確な値ではなく、DBGrid がすべてのフィールドに (WIDEMEMO) を表示することです。

たとえば、Firebird などの他のデータベースではこの問題は発生しません。

なぜこの振る舞いをするのですか?私は sqlite で何か不足していますか?どうすれば修正できますか? 小さなスタンドアロン アプリケーションに SQLite / Firebird またはその他の組み込みデータベースを使用することをお勧めしますか。

前もって感謝します。

0 投票する
2 に答える
3216 参照

delphi - Delphi: DBGrid フィールドを見つけてフォーマットする方法

Delphi XE2 で DBGrid を使用して、いくつかのクエリ結果を表示します。結果の一部の(整数)フィールドは、「hh:mm:ss」のような形式で表示したい秒単位の期間を表しますクエリが異なる可能性があるため、フィールドの順序は事前にわかりませんが、フィールドは知っていますフォーマットしたい名前。それを行う最も効率的な方法は何ですか?

0 投票する
1 に答える
2444 参照

database - DBGrid でセルを示す方法は?

DBGrid の特定のセルからデータを取得したいですか? Delphi 7 でこれを行うにはどうすればよいですか? Stringgrid を使用StringGrid1.Cells[2,1]すると、行 2 列 1 を表示したい場合にのみ簡単に使用できることはわかっていますが、DBGrid でこれを実現する方法はありますか?

0 投票する
2 に答える
1029 参照

delphi - StackOverFlow エラー

があり、DBGridそれを使用してデータを に取得しますArray。しかし、ボタンを押してこの手順を実行するとすぐに、StackOverFlow エラーが発生します。ここに私が使用するコードがあります:

Delphi 7 を使用しています。

0 投票する
6 に答える
20691 参照

delphi - 列幅を調整 DBGrid

TDBGrid があります。機能しますが、表示される列は非常に大きくなります。

「列幅の自動修正」を設定するにはどうすればよいですか?

0 投票する
2 に答える
1755 参照

delphi - DelphiはUnicodeテーブルデータを編集します

PostgreSQL データベースを使用する Delphi アプリケーション(UniDac コンポーネントを使用)。データはデータベースに UTF8 で格納されます。国際文字を読み取るには、次のハンドラーを使用します。

しかし、どのようにデータを保存して DB に戻すことができるのでしょうか? で別のハンドラを作成しましたがOnSetText、動作しSender.AsString := Utf8Encode (Text);ていません。

どうすればそれが可能ですか?ありがとう。

0 投票する
1 に答える
4344 参照

delphi - グリッドの最初の行が選択されていない状態で RowCount > VisibleRowCount を実行すると、DBGrid の一番上の行に表示されるデータセットの行はどれですか?

基になるデータセットのレコード数が現在選択されている行ではない場合、DBGrid の一番上の行にある基になるデータセットから表示される行番号を取得することは可能ですか? DBGrid に表示される行数、および DBGrid がスクロールされました。

これが私の問題です。DBGrid に接続されたドラッグ/ドロップ イベント ハンドラから、MyGrid.MouseCoord(X,Y).Y を使用して、DBGrid のどの可視行にドロップ イベントが関連付けられているかを判断できます。基になるデータセットに含まれるレコード数が、DBGrid に表示される行数と同じかそれ以下の場合、この値は基になるデータセット内の関連付けられたレコードの行番号でもあります。

基になるデータセットに DBGrid の表示可能な行数よりも多くのレコードが含まれている場合、MyGrid.MouseCoord(X, Y).Y と TDataSet(MyGrid.DataSource.DataSet).RecNo は、データセットの最初の行が表示されたときにのみ同じになります。グリッドの最初の行。

DBGrid 行を選択せず​​に、DBGrid の一番上に表示されているレコードの基になるデータセット (またはオフセット) のレコード番号を特定する方法はありますか? DBGrid の一番上の行を実際に選択すると、TDataSet(MyGrid.DataSource.DataSet).RecNo を使用して、基になるデータセットの現在のレコード番号を取得できることがわかっています。ただし、DBGrid.OnDragOver または DBGrid.OnDragDrop イベントからは、DBGrid とマウス座標への参照しかありません (そこから、グリッドのどの行がドロップのターゲットであったかを判断できます)。

たとえば、DBGrid が基になるデータセットの 3 番目のレコードをグリッドの一番上の行に表示していると判断できれば、問題は解決します。同様に、特定の行 (一番上の行など) の基になる TField を、その行を選択せず​​に読み取ることができれば、必要なものはすべて揃っています。ただし、これを行う方法がわかりません。

どんな提案でも大歓迎です。

編集: 以前、DBGrid へのドラッグ アンド ドロップに関するブログを投稿しました。この新しい情報を使用して、既知の問題を解決できます。今週中にそのブログを更新し、そのブログへのリンクをここに追加します。

追加の問題があります。表示されている行の数が基になるレコードの数よりも少ない場合、表示されている最後の行の後にドロップが発生した場合のドロップの計算にも対応する必要があります。表示されている最後の行の後にドロップすると、MouseCoord(x,y).Y は -1 を返します。

その目的を達成するための Uwe のコードの変更を次に示します。

編集:元の質問で述べたように、DBGRid へのドラッグ アンド ドロップを実装するコードの動作を修正するために、この回答に興味がありました。この回答で、ドラッグ アンド ドロップの動作を更新し、この更新についてブログに書きました。元のブログ投稿へのリンクを含むこのディスカッションは、次の URLにあります。