Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];

Вниз

сортировка 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.048 c
15-1175864270
kaif
2007-04-06 16:57
2007.05.06
Прогресс человечества


15-1176190473
novill
2007-04-10 11:34
2007.05.06
Как лучше все реализовать составление логическое выражение?


3-1171531971
Empleado
2007-02-15 12:32
2007.05.06
Концептуальный вопрос по архитектуре БД "Каталог"


2-1176525285
Belorus
2007-04-14 08:34
2007.05.06
Классы


9-1145447877
Luka.rus
2006-04-19 15:57
2007.05.06
вывод "поверх" игры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский