問題タブ [tlistview]
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 - Delphi 2010:vsReportViewStyleでTListViewアイテムをグループ化
まず、これは可能ですか?
私には2つの問題があります。最初は、実行時に作成するときにグループをTListViewに表示できないことです。私は次のコードを使用しています:
2つ目は、デザイン時にグループを作成した場合でも(フォームデザイナーで表示できます)、実行時にグループが存在しない場合でも、データを更新して独自のアイテムを追加する前でも...
追加:以下の回答がバージンプロジェクトで機能することを確認しました。しかし、私が使いたいプロジェクトでは失敗します!TListViewをパレットからの新しいものに置き換えましたが、喜びはありません。リストビューはtpagecontrolにあります
delphi - DelphiTListView-「無料」が呼び出されても追加されたボタンは消えません
(使用:Delphi XE)
ListViewのすべての行にTButtonを追加しています。ボタンのOnClickハンドラーはSender.Freeです。ただし(リストビューにデータセットを設定するデータセットが更新されたためにリスト行が消える間)、ボタンはリストビューに表示されたままになります。私は何が間違っているのですか?
これがボタンの作成を示す私のコードであり、ボタンが解放されるOnClickは次のとおりです。
(別の注意点として、イベントハンドラーでコンポーネントを破棄するのは適切ではないことを知っています。これはここで何が問題なのですか?ボタンを削除する別の方法を提案できますか?)
画像:

delphi - TListViewアイテムフォーカステーマ
TListViewを使用していて、アプリケーションでテーマが無効になっている場合、フォーカスされて選択されたアイテムは次のように表示されます。

両方の画像で三角形がどこにあるかに注意してください。アイテムのペイントされたボックスは、アイコンが表示される場所には描画されません。TListBoxでは、ペイントされたアイテムが選択されたアイテム全体に表示されます。
テキスト部分の場合と同じように、選択したアイテムのアイコン部分を塗りつぶすにはどうすればよいですか?
TListBoxがこのようにレンダリングされることは知っていますが、DataプロパティにTListViewを使用する必要があります。また、TListViewはTImageListを介してアイコンをより適切に処理します。
ありがとう。
delphi - TTNTListViewで列のテキストの色を変更するにはどうすればよいですか?
Delphi 7 で TTNTListView を使用しています。vsReport に設定されています。OnCustomDrawSubItem イベントで、次のコードを使用します。
問題は、すべてのサブアイテム >= 3 がサブアイテム 2 と同じ色で描画されることです。サブアイテム >= 3 の Sender.Canvas.Font.Color は clBlack ですが、clRed と clGreen で描画されます。私のコードに問題がある場合は、修正方法を教えてください。バグの場合は、誰かが回避策を知っている可能性があります。ありがとうございました。
delphi - TListView: 列を追加すると、VCL は列の順序を失います
TListView の既存の列の間に列を追加しようとしています。そのため、最後に新しい列を追加し、そのインデックスを指定された値に設定して移動します。別の新しい列を追加するまで、これは機能します。
私がやったこと:最後の位置(Columns.Add)に列を追加し、最後の位置(Subitems.Add)にもサブアイテムを追加します。その後、インデックスを正しい位置に設定して列を移動します。追加される列が 1 つだけである限り、これは正常に機能します。2 番目の新しい列を追加すると、サブ項目が台無しになります。最初の列の新しいサブアイテムは、次のように最後の位置に移動されます。
誰かが助けてくれたらとても嬉しいです!
たとえば、ListView に送信できるコマンドまたはメッセージがあり、その列を更新または保存します --> 最初の新しい列を追加した後に使用できるサブアイテム マッピングと、それがサブアイテムであるため、2 番目の新しい列を処理できます。最初と同じ方法。
それとも、これは TListViews 列の単なるバグですか?-> サブアイテム処理または TListColumns...?
vcl フォーム アプリケーションのサンプル コード (Form1.OnCreate イベントを割り当てます):
ありがとうございました!
編集: Sertac Akyuz から提案された修正は正常に機能しますが、Delphi ソースコードを変更することは私のプロジェクトの解決策ではないため、使用できません。バグが報告されています。
編集:最初の投稿に含まれていた意図しない2番目の質問を削除し、新しい質問を開きました(リンクされた質問と質問の改訂を参照)。
delphi - デルファイでリストビューを正しく使用するにはどうすればよいですか?
私のコードは以下のとおりですが、正しく機能していますが、プログラムをコンパイルした後、すべてのフルネームと国が縦にリストされているのがわかります。
_________________________________
フルネーム
1カントリー
1フルネーム2カントリー2
フルネーム3
カントリー
3
など..
しかし、私は次のようなものが欲しいです:

delphi - TListView コントロールでの選択解除の無効化
TListView (vsIcon) を一種のタブとして使用したいので、タブと同じように 1 つの項目のみを選択できます。項目を 1 つだけ選択しても問題ありません (Multiselect プロパティを無効にします)。リストビューのアイコンとテキストの間の空白の場所をクリックすると、項目の選択が解除されるという問題があります。
これが私がこれまでに試したことです:
上記は機能しますが、問題があります。空白の領域でマウスをクリックすると、アイテムの選択が解除され、アイテムがまだ選択されているように見えても、キーボードの上下矢印が機能しなくなります。キーボードを無視すると、マウスの選択で正常に機能し、ステータスバーに「いいえ」というメッセージが表示された空白領域のクリックが無視されます。
これを修正して、考えられるすべての選択方法(キーボード、マウス(その他?))で動作するようにする方法についてのアイデア。
delphi - Delphi のフォームでのメソッド宣言のエラーを修正する
このエラーが発生するのはなぜですか。stringgrid をリストビューに置き換えてから、viewstyle vsreport に設定しましたが、(expected '=' but '(' found) のようなエラーが発生します。以下の手順で点滅します。
これは私のコードです
.
delphi - Delphiでは、フォーカスされていない場合でも、tListViewに常に選択された行を表示させるにはどうすればよいですか?
tListView の選択された行は青く表示されますが、コントロールにフォーカスがある場合のみです。コントロールにフォーカスがあるかどうかに関係なく、選択した行を常に表示したいと思います。
delphi - OwnerData が true の TListView でデフォルトの列の自動サイズ設定を処理する方法
仮想モード (OwnerData := True) で使用している TListView (レポート モード) があります。列の自動サイズ変更について私が知っている 2 つの状況を除いて、すべてがうまく機能します。彼らです:
- ヘッダー列セパレーターをダブルクリックして、1 つの列のサイズを自動調整します
- Ctrl-KeypadPlus キーを押すと、すべての列のサイズが自動調整されます。
仮想モードでのこれらのイベントのデフォルトの処理は、実際には機能しません (データの最初の行で自動サイズ設定されているようです)。動作にフックして、独自の列の自動サイズ設定を行いたいと思います。誰もそれを行う方法を知っていますか? それとも、明らかな何かが欠けていますか?Delphi XE を使用しています。提案をありがとう。