Vcl.ComCtrls.TTreeNode.CustomSort
Delphi
function CustomSort(SortProc: TTVCompare; Data: NativeInt; ARecurse: Boolean = False): Boolean;
C++
bool __fastcall CustomSort(PFNTVCOMPARE SortProc, NativeInt Data, bool ARecurse = false);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | Vcl.ComCtrls.pas Vcl.ComCtrls.hpp |
Vcl.ComCtrls | TTreeNode |
説明
ノードのソートをトリガします。
CustomSort は、ノードのソートまたはノードの子ノードの再ソートをトリガします。その時に、SortProc パラメータで指定された比較ルーチンを使用します。
Data パラメータでは、カスタマイズされた比較ルーチンに情報を渡す手段を設定します。Data は、CustomSort メソッドやデフォルトの比較ルーチンでは使用されません。
オプションの ARecurse パラメータ(デフォルトは false)は、ノード ツリーを再帰的にたどって、各サブツリーを順番にソートするように指定します。
CustomSort の戻り値は、ソートの成功ステータスを表します。
SortProc が nil(Delphi)または NULL(C++)の場合は、デフォルトの比較ルーチンが使われます。デフォルトのルーチンは、関連する TCustomTreeview オブジェクトに対して 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 より前の場合 |
トップレベルのノードをソートするには、TTreeNodes の CustomSort を使用します。
メモ: CustomSort は、SortType の値が stNone である場合に動作しません。