Følgende program virker ok.
Men det sortere kolonne 1 minus den øverste linie //Uanset om den er låst
eller ej
Hvad skal jeg ændre for at kolonne 0 er den der sorteres efter ???
Og eventuelt også tager row 0 med i sorteringen ???
De øvrige kolonner bliver flyttet sammen med sorteringen, det er ok.
Men er den nederste Row blank kommer denne linie øverst når der sorteres,
er det mugligt at undgå dette ???
PROCEDURE SortStringGrid(SG:TStringGrid;
SortDown:Boolean = True; FirstIndex:Integer = 0;
ColToSortBy : Integer = 0);
var R,C,n,i,f : Integer;
begin
R := SG.RowCount;
C := SG.ColCount;
For n := FirstIndex to R-2 do for i := n +1 to R-1 do Begin
if (SG.Cols[ColToSortBy][n] > SG.Cols[ColToSortBy][i])
= SortDown then Begin
for f := 0 to C-1 do SG.Cols[f].Exchange(n,i);
end;
end;
end;
//------------------------------------------------------------------------------
procedure TForm1.Button3Click(Sender: TObject);
begin
SortStringGrid(StringGrid1,true,1,1);
end;
En eventuel rettelse i programmet vel være rart.
På forhånd tak for et evnt. svar.
mvh.
Henning
|