Форум: "Начинающим";
Текущий архив: 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