Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.06;
Скачать: CL | DM;

Вниз

сортировка StringGrid   Найти похожие ветки 

 
Roman_S ©   (2007-04-14 08:17) [0]

Нашёл несколько примеров сортировки StringGrid. Но как сделать это при клике по заголовку колонки? Или как мышью выбрать определённую колонку (не строку)?


 
Roman_S ©   (2007-04-14 09:20) [1]

Нашёл несколько примеров сортировки StringGrid. :-)

Появился ещё вопрос: как сортировать записи - слова.
Воспользовался следующим кодом:
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
  Application.ProcessMessages;
  for I := 0 to (CountItem - 1) do
  begin
  MyList.Add(GenStrGrid.Rows[I].Strings[ThatCol] + TheSeparator + GenStrGrid.Rows[I].Text);
  end;
  Application.ProcessMessages;
  //Sort the List
  Mylist.Sort;
  for K := 1 to Mylist.Count do
  begin
   Application.ProcessMessages;
   //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;
  Application.ProcessMessages;
  // Refill the StringGrid
  for J := 0 to (CountItem - 1) do
  GenStrGrid.Rows[J].Text := MyList.Strings[(J)];
 end;
finally
 //Free the List
 MyList.Free;
end;
end;

Но Москва оказывается ниже, чем Харьков!


 
ЮЮ ©   (2007-04-14 09:30) [2]

Воспользовался приведенным кодом:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 SortStringGrid(StringGrid1, 1);
end;


И Москва оказывается выше, чем Харьков.
Может твой Харьков с Икса начинается, а не с Хэ?


 
Roman_S ©   (2007-04-14 10:30) [3]

Всё разобрался, спасибо!
SortStringGrid(StringGrid1, ComboBox.ItemIndex+1), а не SortStringGrid(StringGrid1, ComboBox.ItemIndex)!


 
Roman_S ©   (2007-04-14 10:31) [4]

В ComboBox записывал завания столбцов!



Страницы: 1 вся ветка

Текущий архив: 2007.05.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
8-1155514777
hero
2006-08-14 04:19
2007.05.06
Звук с микрофона в stream


15-1176012403
Pazitron_Brain
2007-04-08 10:06
2007.05.06
Подскажите Jazz музыканта


2-1176755058
tigraman
2007-04-17 00:24
2007.05.06
Работа с мемо


15-1176019813
easy
2007-04-08 12:10
2007.05.06
Янис Прасол (aka Gero)


8-1156137198
Proger1983
2006-08-21 09:13
2007.05.06
DSPack и субтитры