Вниз
Скачать: CL | DM;

Можна ли отсортировать 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.028 c
2-1152284856
Юсуф
2006-07-07 19:07
2006.07.30
Вопросики вместо текста


9-1132487732
Kobik
2005-11-20 14:55
2006.07.30
Большая картинка в DX


15-1151530744
Германн
2006-06-29 01:39
2006.07.30
Опять вопрос про наличие Com-портов на компьютере


1-1150445348
Уля
2006-06-16 12:09
2006.07.30
создание Excel-документа с помощью Delphi


15-1151572526
Жук
2006-06-29 13:15
2006.07.30
"Русский шоколад" в Иваново




   Наверх