問題タブ [tdbgrid]
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.
delphi - Delphi7-TDBGridスタイル
Delphi 7で定型化されたテーブルを使用するにはどうすればよいですか?例えば:
delphi - データソースとしてTADOTableを使用してVCLTDBGridのフィールドを編集することは可能ですか?
最近、DelphiのVCLを使用して古いUIコードを変更し、BDEの代わりにADOを使用しました。画面の1つでTDBGridコントロールを使用して、基になるデータソースを変更しましたが、グリッドの値を編集できなくなったようです。これが私がそれをどのように構成したかです:
TDBGrid-> TDataSource-> TADOTable
関連していると思われる別のフォーラムでこの投稿を見つけました:http: //coding.derkeiler.com/Archive/Delphi/alt.comp.lang.borland-delphi/2009-08/msg00023.html
これはADOの制限ですか?または、コントロールの設定をどこかで変更する必要がありますか?(カーソルタイプか何か?)
delphi - TDBGrid の微調整
DB 対応コントロールに最初のつまずきのステップを踏んでいます (何か良いチュートリアルはありますか?)。
6 列の MySql テーブルがあり、TDbGrid にロードできました。
ただし、列の 1 つは別のテーブルへのインデックスです。それはバーコードで、それを表示するのではなく、それに関連付けられた製品名を表示したいと考えています。
それ、どうやったら出来るの?
(そして、現在の行を示す「ガター」(?)を左下に隠すことはできますか?)
ありがとう
delphi - TDBGrid列の設計時または実行時?
TDBGrid
初めて使用します。
Columns
オブジェクトインスペクターのプロパティにも気づかず、すべてがうまくいきました。グリッドがいっぱいになりました。
それから私はそのColumns
物件を見て試してみました。オブジェクトinsectorを使用しColumns
てグリッドのプロパティにアイテムを追加すると、実行時にすべてのアイテムが表示されるわけではありません。私には、FieldName
プロパティが重要であるように見えます。正しいように見えますが、一部の列に値がありません。
このプロパティを空白のままにすると(列がまったくない)、実行時にコントロール自体にデータが入力されているように見え、すべての列が表示されます。私はそれと一緒に暮らすことができました。実行時に列タイトルを設定すると機能しますが、列幅の設定は機能しません。
[更新]フィードバックをありがとう。私はゆっくりと学んでいます。今、私は何が起こっているのかがわかります。5つの列のうち3つを計算したかったのです。2つはINNERJOINから取得され、3つ目はのSQL「キャスト」から取得されますSELECT ... FROM_UNIXTIME(<table>.time_stamp)
。
設計時に列を定義しない場合、SELECTを実行すると、実行時にこれらの値が入力されます。Cnn誰かがデザイン時に物事をセットアップする方法を教えてくれますか?ありがとう
delphi - TDbGridのカーソルの下にテキストを取得する方法
画面の幅は、一部のテキストフィールドを表示するのに十分ではありません。自動ラップする方法がわからないので、簡単にできるとは思えません。
だから、私は次のようなことをするだろうと思いました
または、それを実行しOnShowHint
てマウス座標を取得し、それらを列と行に変換します(より効率的)
しかし、もちろん、TDbGridにはがありませんCells
。ユーザーがグリッドの「セル」の上にマウスを移動したときに、コントロールのヒントを設定する方法はありますか?
delphi - ツール ヒントがマウス座標から離れて表示されるのはなぜですか?
ユーザーがマウスを上に移動すると、ヒントが表示されますTDbStringGrid
。ほとんど機能しますが、ヒントが左に高く表示されます。
私のOnMouseMove
では、X と Y を受け取ります。これは絶対的な画面コーディネイトだと思いますがdbGrid.MouseCoord(X, Y)
、DB グリッド内のポイントを取得するために使用できます。
を使ってヒントを表示Application.ActivateHint()
すると、左側の高い位置に表示されます。
私が間違っていることは何ですか?
database - DBGrid (または他の同様の) 列の幅をその内容に応じて自動調整/スケーリングする方法は?
DBGrid
フィールドの半分がデフォルトで、その他のフィールドが各テーブル専用である 10 を超えるテーブルに対応するフレームを作成しようとしています。
列のスペースが限られているため、各テーブルの各列を手動で構成するのは非常に質の悪い作業であるため、その中の行の最大の内容によって各列の幅を計算する方法を考えていました。独自のコンポーネントまたはデータセットによって測定された列。
誰も道を知っていますか?そのパワーを備えたカスタムコンポーネントは世界中にありますか? グリッドのすべての表示列の表示データに応じて、サイズの増減を実装するソリューションが必要です。 これまでの私の解決策では、選択したセルの描画に問題があり、魔女が選択したデータセットの行から飛び出しました。
注: 私の質問を閉じないでください。グリッドの幅やフォームの幅との適合についてではありません。水平スクロールバーを最小化するには、すべての列幅についてですが、必ずしも非表示にする必要はありません。
delphi - 表示前にDBグリッドの内容を操作するには?
DB テーブルに圧力を格納する列があります。圧力は常に PSI として保存され、14.5 でダイビングすることで BAR に変換できます。
ユーザーは、ラジオ グループで PSI/BAR の表示を切り替えることができます。
私は a を使用していましたが、 aTStringGrid
に変換していますTDbGrid
- これは私にとってまったく新しいことです。
ユーザーが PSI/BAR を切り替えたときに、DB グリッドの表示を更新するにはどうすればよいですか? (クエリをもう一度実行するだけだと思いますか?または呼び出しquery.Refresh()
ますか?)しかし、どうすれば変換できますか?
- おそらくストアドプロシージャですが、それはやり過ぎのように思えますが、ストアドプロシージャも私にとっては新しいものです...
SELECT
私のクエリのステートメントを変更することによって?しかし、どうすればそれを行うことができますか?SELECT pressure / 14.5 FROM measurements
? またはどのように?- または、
OnBeforeXXX()
私がコーディングできるものはありますか?またはOnGetDisplayText()
、またはそのようなものですか?
これは非常に基本的なことだと確信していますが、今まで操作されていないデータを表示しているだけで、変換関数が必要になりました。グーグルは役に立ちませんでしたが、私はおそらく何を頼めばいいのかわからなかったのです。
また、列のタイトルのテキストを変更して、「圧力 (PSI)」と「圧力 (BAR)」を切り替えたいと考えています。助けてくれてありがとう。
delphi - DBグリッドでTIMEDIFF(現在)を表示するにはどうすればよいですか?
申し訳ありませんが、私はDbGridsを初めて使用します。
クエリのフィールドエディタを使用して、TIMEDIFFをキャプチャする新しいフィールドを追加し、それをDbGridの列として追加する必要がありますか?
または、フィールドエディタをスキップして、どういうわけかTIMEDIFFFを列として宣言できますか?
このテーブルでは、開始時刻、終了時刻、期間、説明の4つの列を持つDbGridが必要です(run_idは主キーであり、表示されません)。
「duration」列にデータを取得する方法について困惑しています...
[更新]データソースのクエリは
MySqlで手動で実行すると、次のようになります。
ただし、DBグリッドの対応する列は空白のままです。誰か助けてもらえますか?ありがとう。
[更新]それが助けになるなら、私はAnyDacを使用しています。クエリは、AnYDacクエリエディタを使用して実行すると、MySqlおよびDelphiIDEで時差を含むすべてのフィールドを生成します。
唯一の問題は、実行時にDBグリッドに表示されないことです。設計時にDBグリッドをダブルクリックすると、列が正しくなります。FielName
プロパティはに設定され、上記duration
のクエリによって再調整されます。データベースには存在しませんが、クエリによって計算されます。それはどういうわけか問題でしょうか?
[Aaaaaaaargh !!!]誰かが私のコードを「改善」し、実行時にプログラムでクエリのテキストを設定しようとしました(SELECT * FROM test_runs)
したがって、設計時のクエリを上書きします!!データベーステーブルにduration
フィールドがないため、何も表示されませんでしたDBグリッド。
言葉が出て、声が上がって、今はあなたの時間を無駄にしてしまったことをお詫びしなければなりません。ごめん。
delphi - DBグリッド-最初の列ではなく、最初の行にタイトルを表示できますか?
5回の測定でMIN()、AVG()、MAX()を表示したいと思います。
私の画面の領域を考えると、水平方向よりも垂直方向にDGグリッドを表示する方がはるかに優れています。
その逆ではなく、2列15行のDBグリッドが必要です。
しかし、どのようにしてテキストを最初の列に入れるのでしょうか(例:「Measurement1MIN()」)?左側に15個のTLabelがある1x15のテーブルではなく、DBグリッドを使用したいのですが、データベースに「列(実際には行)のタイトル」を保存したくありません。
私がこれを明確に説明したことを願っています-そうでない場合は説明を求めてください-そして誰かが助けてくれることを願っています。