くだすれDelphi(超初心者用)その21
■ このスレッドは過去ログ倉庫に格納されています
0027デフォルトの名無しさん
NGNG自前のソートを使った場合うまくいきません。ノードをスワップしているところがまず
いのでしょうか?
procedure ChildNodeSort(Node: TTreeNode;);
var
gap,width,i,j :Integer;
dmy :TTreeNode;
begin
if Node.GetFirstChild <> Nil then
for j := 0 to Node.Count-1 do ChildNodeSort(Node.Item[j]);
//Node.AlphaSort; や Node.CustomSort(@CustomSortProc, 0); ならもちろんOK!
gap := Node.Count-1; //ShellSort(昇順)
while gap > 0 do
begin
gap := gap div 2;
width := Node.Count-1-gap;
for i := 0 to width do
begin
j := i;
while j >= 0 do
begin
CompareStr(Node[j].Text,Node[j+gap].Text) <= 0 then break;
dmy := Node[j]; Node[j] := Node[j+gap]; Node[j+gap] := dmy; //これがまずい?
j := j-gap;
end;
end;
end;
end;
■ このスレッドは過去ログ倉庫に格納されています