Показать сообщение отдельно
  #2  
Старый 18.11.2009, 21:09
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Взято с сайта: http://www.swissdelphicenter.ch
Код:
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;
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием