問題タブ [tstringgrid]
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 - ボタン付きストリンググリッド
最初の質問:
表示されていない stringgrid の部分をどのように呼び出しますか? 表示するにはスクロールする必要があります。
例:
stringgrid には 20 行ありますが、一度に表示できるのは 10 行だけです。他の 10 を表示するには、スクロールする必要があります。
2 番目の質問:
これはおそらく正しい方法ではないことを知っているので、いくつかの指針をいただければ幸いです。
固定行が 1 つの文字列グリッドがあります。実行時に ColorButtons を追加します。そのため、1 つの列にボタンを配置します。このボタンを使用して、行を「挿入/削除」します。すべてのグリッドが「可視」部分にある限り、これはうまく機能します。新しい行を「挿入」してボタンを「非表示」部分に移動すると、問題が発生します。次に、最後のボタンが Cell[0,0] に描画されます。「隠れた」部分の他のボタンは正しく描画されます。なぜこれが起こるのか分かりますか?OnDraw メソッドでこの問題を管理する方法を見つける必要がありますか、またはこれを行うためのより良い (正しい) 方法はありますか?
コード:
delphi - ListView and coloring cellls
I have ListView (vsReport) and StringGrid and what I want is if I click on some element in ListView, particular cells in StringGrid have to change colors. How do I do it?
Path is filled with 1 (move up) and 0(move right), it starts in left bottom and ends in right top corner, and I have to color these cells.
Thanks for the answers, I handled with my problem, but there's another little issue, how can I leave text in cells visible? FillRect fills the entire cell.
lazarus - Delphi TStringGrid の固定行のセルのテキストの向きを変更するにはどうすればよいですか
フォームに標準の TStringGrid があります。グリッドには、すべて TGridColumns オブジェクトである多数の列を含む固定行が 1 つあります。オブジェクト インスペクタを使用して列のタイトルを設定しました。デフォルトの向きは水平です。方向を垂直にする方法はありますか (Excel のセルでできるように)。
delphi - テキスト ファイルから StringGrid を読み込む
スペースで区切られた整数のテキスト ファイルを StringGrid にロードするにはどうすればよいですか? 各セルに各番号。グリッドは四角形でなければならないので、欠落している数字がある場合は 0 で埋める必要があります。
これまでに行ったことは次のとおりですが、行と列の数を既に設定している必要があります。
lazarus - TStringGrid列ヘッダー(固定)にクリックイベントを設定して、視覚的にはボタンを押しているように見えるようにするにはどうすればよいですか?
私はLazarusv0.9.30を使用しています。TStringGridを含むTFormがあります。グリッドに固定行があり、ここにすべての列ヘッダーがあります。各列はTGridColumnオブジェクトであり、各列のタイトルはTGridColumnTitleObjectです。オブジェクトインスペクターを見ると、TGridColumnTitleに使用できるイベントはありません。私がやりたいのは、列ヘッダーをクリックできるようにすることです。視覚的には、ボタンを押しているように見せたいです。クリックイベントをインターセプトしてからアクションを実行したい(たとえば、列のテキストで並べ替えたり、ヘルプ画面を表示したりする)。これを行う方法はありますか?
delphi - Delphi XE2 でスタイルを使用する文字列グリッド - スクロール バーが更新されない
特に「カーボン」スタイルを使用するDelphi XE2で簡単なアプリケーションを作成しています。何千行もある大きな String Grid があります。このグリッドのレコードをループし、いくつかの作業を行い、グリッドにいくつかの変更を加えるプロセスがあります。プロセスがループすると、現在処理中の行が強調表示されます (設定によりTStringGrid.Row
)。
問題は、このグリッドにスタイルを適用すると、行が変更されてもスクロール バーの位置が変わらないことです。ループは処理中に各行を適切に強調表示しますが、リストの最後に近づくまでに、右側のスクロール バーはまだ一番上にあります。
グリッドのスクロール バーを一緒に移動させるにはどうすればよいですか?
これが私がループしている方法のサンプルです:
スタイルを使用していないときは、すべて正常に機能します。
delphi - TStringGrid 内のセルがよりスムーズに表示されるようにするにはどうすればよいでしょうか?
私は Lazarus 0.9.30 を実行しています。
フォームに標準TStringGrid
があり、列のタイトルの上にマウス ポインターを移動すると、別のヒントを表示したいと考えています。私はこれを行うためにこのコードを使用していますが、それはある程度機能しますが、マウスポインターが上に移動したときに実際にセルを変更したい場合は、ヒントを変更するためにセルをクリックする必要があります。列インデックスをキーとして使用して検索するコレクションにすべてのヒントを格納しています。ヒントをよりスムーズに表示する方法はありますか?
lazarus - オブジェクトを TGridColumns オブジェクトに関連付ける方法
私は Lazarus 0.9.30 を実行しています。
フォームに標準の TStringGrid があり、実行時に TGridColumns オブジェクトを動的に追加する関数があります。各列のすべての属性 (実行時にファイルから読み取る) を含むオブジェクトのコレクションがあり、各オブジェクトを対応する列ヘッダーに関連付けたいと考えています。
以下のコードを試してみましたが、実行時に列ヘッダー オブジェクトの背後にあるオブジェクトにアクセスしようとすると、'nil オブジェクトが返されます。これが発生する理由は、(列のタイトルを保持する) グリッド セルが空白であり、空のグリッド セルにオブジェクトを関連付けることができないためだと思われます。
fixed - 実行時に列を TStringGrid に動的に追加するときに、列が固定されないようにするにはどうすればよいですか?
Lazarus 0.9.30.2 を使用しています。標準の TStringGrid を含む標準の TForm があります。文字列グリッドには、設計時に列も行もありません。Object Inspector では、次の値が設定されています。
実行時にいくつかの TGridColumns を追加したいのですが、それはできましたが、常に固定列を取得してしまい、これは望ましくありません。そのために、以下のサンプルに非常によく似たコードを作成しました。コンパイルして実行すると、次のようになります。
実行時に固定列を取り除き、残りの列だけを残すにはどうすればよいですか?
background-color - TStringGridの異なる色のすべての列タイトルセルをペイントするにはどうすればよいですか?
Lazarus0.9.30.2を実行しています。
TStringGridがあるTFormがあります。各列のタイトルは、実行時にグリッドに動的に追加したTGridColumnsオブジェクトです。各列のタイトルには、(私が作成してTListに保存した)オブジェクトが関連付けられています。文字列グリッドの列タイトルセルの背景をペイントしたいのですが、すべてのセルを同じ色にしたくありません。列タイトルに関連付けられているオブジェクトのいずれかのプロパティの値に応じて、色が異なります。
StackoverflowでTStringGridセルをペイントする方法(例)に関する回答があり、文字列グリッドのDrawCellイベントを使用してセルをペイントする方法について説明していることは知っていますが、このプロシージャを呼び出す方法がわかりません。
対象のセルを識別する(つまり、セルの「Rect」プロパティを識別する)別のプロシージャを使用して、必要な色を設定し、グリッドの一般的なDrawCellプロシージャを呼び出して、実際の色付けを行う正しいアプローチはありますか?