Vcl.ComCtrls.TCustomTreeView.CustomSort
Delphi
function CustomSort(SortProc: TTVCompare; Data: NativeInt; ARecurse: Boolean = True): Boolean;
C++
bool __fastcall CustomSort(Winapi::Commctrl::TTVCompare SortProc, System::NativeInt Data, bool ARecurse = true);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | Vcl.ComCtrls.pas Vcl.ComCtrls.hpp |
Vcl.ComCtrls | TCustomTreeView |
説明
ツリー ビューのノードを、カスタマイズしたソート順でソートします。
CustomSort は、ノードのソートまたは再ソートをトリガします。その際に、SortProc パラメータで指定された比較ルーチンを使用します。
Data パラメータは、カスタマイズされた比較ルーチンに情報を渡す手段を提供します。Data は、CustomSort メソッドや、デフォルトの比較ルーチンでは使用されません。
オプションの ARecurse パラメータ(デフォルトは true)は、ノード ツリーを再帰的にたどって、各サブツリーを順番にソートするように指定します。
CustomSort の 戻り値 は、ソートの成功ステータスを表します。
SortProc が nil(Delphi)または NULL(C++)の場合は、デフォルトの比較ルーチンが使われます。デフォルトのルーチンは、OnCompare イベント ハンドラを使用します(定義されている場合)。OnCompare イベント ハンドラが定義されていない場合、デフォルトのルーチンは、ノードのキャプションを大文字小文字を区別して単純に比較します。
この比較ルーチンは、次のように定義されています。
Pascal TTVCompare = function(lParam1, lParam2, lParamSort: Longint): Integer;
C++ typedef int (CALLBACK *TTVCompare)(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
lParam1 パラメータと lParam2 パラメータは、TTreeNode にキャストされた 2 つのノード参照します。
lParamSort パラメータは、CustomSort の Data パラメータとして事前に渡された値です。
この比較ルーチンの戻り値は、IParam1 と IParam2 の相対的なソート順を表します。
戻り値 | 意味 |
---|---|
< 0 |
IParam1 が IParam2 より前の場合 |
0 |
IParam1 と IParam2 が等しい場合 |
> 0 |
IParam2 が IParam1 より前の場合 |
CustomSort を呼び出すことは、Items プロパティに対して同じメソッドを呼び出すことと同じ効果があります。ただし、TTreeNodes では、CustomSort はデフォルトでは再帰的ではありません。
サブツリーをソートするには、Items プロパティの CustomSort メソッドを呼び出します。