ShellListView で詳細表示(Repot)にしたときに、カラムをクリックして
ソートしたいのですが、どうしたらいいのでしょうか?
他のソート出来るコンポを探す手もあるけど。
短い回答なら送信できるけど、長いのは拒否されるみたい。
どのくらいの長さまでならOKなのかな?
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
テストてすとテストてすと
>ShellListView で詳細表示(Repot)にしたときに、カラムをクリックして
>ソートしたいのですが、どうしたらいいのでしょうか?
ふたスジ: 「ほんま、ソートでけたらエエな〜」
ひとスジ: 「それは、そ〜と〜ムズカシイかも」
ふたスジ: 「おやじギャグ、さぶいで」
ひとスジ: 「アツイ時には おやじギャグで涼しく...なんちゃって」
ふたスジ: 「もっとアツぅなる(~_~;)A はよ教えてんか」
ひとスジ: 「ソートするには、TShellListViewのソースもチョット書き換えないと...」
ふたスジ: 「ん〜、ならD6 Personalやとダメなん?」
ひとスジ: 「Demos\ShellControls\にあるから、ダイジョウV! 」
ふたスジ: 「ホンマ、スベっとるで」
const
MAXCOLUMN = 4;
var
FSortColumnIdx: Integer;
FSortOrder: array[0..MAXCOLUMN] of Boolean;
function CustomShellSortProc(Item1, Item2: Pointer): Integer;
begin
result := SmallInt(TShellFolder(Item1).ParentShellFolder.CompareIDs(
FSortColumnIdx, TShellFolder(Item1).RelativeID, TShellFolder(Item2).RelativeID));
if FSortOrder[FSortColumnIdx] then begin
result := -result;
end;
end;
procedure TForm1.ShellListView1ColumnClick(Sender: TObject; Column: TListColumn);
begin
FSortColumnIdx := Column.Index;
ShellListView1.FolderList.Sort(CustomShellSortProc);
ShellListView1.Invalidate;
FSortOrder[FSortColumnIdx] := not FSortOrder[FSortColumnIdx];
end;
*ShellCtrls.pas 書き換え
{ TShellListView }
TShellListView = class(TCustomShellListView)
published
property FolderList: TList read FFolders; // 追加
...........
end;
ツイート | ![]() |