Содержание материала

Code:

procedure SortStringGrid(var GenStrGrid: TStringGrid; ThatCol: Integer);

const

  // Define the Separator

TheSeparator = '@';

var

  CountItem, I, J, K, ThePosition: integer;

  MyList: TStringList;

  MyString, TempString: string;

begin

  // Give the number of rows in the StringGrid

CountItem := GenStrGrid.RowCount;

  //Create the List

MyList        := TStringList.Create;

  MyList.Sorted := False;

  try

    begin

      for I := 1 to (CountItem - 1) do

        MyList.Add(GenStrGrid.Rows[I].Strings[ThatCol] + TheSeparator +

          GenStrGrid.Rows[I].Text);

      //Sort the List

     Mylist.Sort;

 

      for K := 1 to Mylist.Count do

      begin

        //Take the String of the line (K – 1)

       MyString := MyList.Strings[(K - 1)];

        //Find the position of the Separator in the String

       ThePosition := Pos(TheSeparator, MyString);

        TempString  := '';

        {Eliminate the Text of the column on which we have sorted the StringGrid}

        TempString := Copy(MyString, (ThePosition + 1), Length(MyString));

        MyList.Strings[(K - 1)] := '';

        MyList.Strings[(K - 1)] := TempString;

      end;

 

      // Refill the StringGrid

     for J := 1 to (CountItem - 1) do

        GenStrGrid.Rows[J].Text := MyList.Strings[(J - 1)];

    end;

  finally

    //Free the List

   MyList.Free;

  end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  // Sort the StringGrid1 on the second Column

// StringGrid1 nach der 1. Spalte sortieren

SortStringGrid(StringGrid1, 1);

end;

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить