Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
ВнизМожна ли отсортировать StringGrid по какому-то полю? Найти похожие ветки
← →
fast2 (2006-07-07 21:19) [0]Например, по первому.
← →
Virgo_Style © (2006-07-07 21:47) [1]не мона, а нуна (с).
StringGrid вполне в состоянии отображать любые данные, в том числе предварительно отсортированные.
← →
fast2 (2006-07-07 22:07) [2]Предварительно? А если я в СтрингГрид вывожу данные в беспорядке, то потом можна отсортировать?
← →
Virgo_Style © (2006-07-07 22:27) [3]fast2 (07.07.06 22:07) [2]
можно, особенно если данные строковые... если надо сравнивать числовые, то начинается чехарда с преобразованиями, неизящно %-)
← →
fast2 (2006-07-07 22:33) [4]>можно, особенно если данные строковые...
остался вопрос - как?
← →
Virgo_Style © (2006-07-07 22:37) [5]fast2 (07.07.06 22:33) [4]
одним из методов сортировки, коих великая туча, чуть модифицированным под конкретную задачу.
← →
fast2 (2006-07-07 22:41) [6]т.е. метода типа StringGrid.Sort или StringGrig.Cols[0].Sort нет?
← →
palva © (2006-07-08 00:28) [7]Свойство sort есть у TADODataSet. Т.е. Если вы отображаете его содержимое при помощи DBGrid, то у вас есть возможность сортировать по какой-то колонке или даже по нескольким сортируя DataSet. Для меня не понятен вопрос как заполнить DataSet без соединения с БД. Хотя в классическом ADO (без VCL) это делается легко.
← →
Германн © (2006-07-08 01:38) [8]У TlistView есть сортировка. А TListView со стилем vsReport не очень-то отличается от TStringGrid.
← →
Ketmar © (2006-07-08 13:17) [9]>palva © (08.07.06 00:28) [7]
использовать тот же RxLib, где есть TMemoryDataSet (или что-то подобное). %-)
← →
так себе (2006-07-08 13:46) [10]Выдержка из проекта:
procedure TForm35.N5Click(Sender: TObject);
var
c,r:integer;//номер колонки и строки таблицы
m:integer;//Номер строки
i:integer;//Номер строки использ.во время сортировки
buf:array[0..4] of string;//буфер для обмена строк
begin
for r:=1 to StringGrid1.RowCount-1 do
begin
m:=r;//макс.элемент в r-строке
for i:=r to StringGrid1.RowCount-1 do
if StringGrid1.Cells[0,i]<StringGrid1.Cells[0,m] then
m:=i;
if r<>m then
begin
for c:=0 to 4 do
begin
buf[c]:=StringGrid1.Cells[c,r];
StringGrid1.Cells[c,r]:=StringGrid1.Cells[c,m];
StringGrid1.Cells[c,m]:=buf[c];
end;
end;
end;
end;
Подправь под свои запросы
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c