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

Вниз

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

 
Veetyok   (2004-08-02 17:11) [0]

Подскажите, как отсортировать таблицу по какому-нибудь столбцу и можно ли это елать нажимая на шапку StringGrida?


 
Asinus   (2004-08-04 03:27) [1]

Есть готовые компоненты. Велосипед изобретать не обязательно. Посмотри на http://www.torry.net


 
SelloutS   (2004-08-04 04:48) [2]


procedure GridMSort_(AGrid: TStringGrid; const SortField: integer);

procedure ExchangeItems(Index1, Index2: Integer);
var
  i: integer;
  T: string;
begin
  for i := 0 to AGrid.ColCount - 1 do
  begin
    T := AGrid.Cells[i, Index1];
    AGrid.Cells[i, Index1] := AGrid.Cells[i, Index2];
    AGrid.Cells[i, Index2] := T;
  end;
end;

procedure QuickSort(L, R: integer);
var
  I, J: Integer;
  P: string;
begin
  repeat
    I := L;
    J := R;
    P :=AGrid.Cells[SortField, (L+R) shr 1];
    repeat
      begin
        while CompareText(AnsiUpperCase(AGrid.Cells[SortField, I]),
                           AnsiUpperCase(P)) < 0 do
        Inc(I);
        while CompareText(AnsiUpperCase(AGrid.Cells[SortField, J]),
                          AnsiUpperCase(P)) > 0 do
        Dec(J);
      end;
      if I <= J then
      begin
        ExchangeItems(I, J);
        Inc(I);
        Dec(J);
      end;
    until I > J;
    if L < J then QuickSort(L, J);
    L := I;
  until I >= R;
end;

begin
if AGrid.RowCount > 1 then QuickSort(0, AGrid.RowCount-1);
end;


пример сортировки по первой колонки:
GridMSort_(StringGrid1, 0);
по второй соответственно:
GridMSort_(StringGrid1, 1);

и т.д



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

Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.036 c
1-1091177242
TUser
2004-07-30 12:47
2004.08.15
FindFirst/FindNext и скорость


3-1090310320
Nikolai_S
2004-07-20 11:58
2004.08.15
Коннект к SQL Server через OLE DB


4-1088576047
dimon_programmer
2004-06-30 10:14
2004.08.15
Извлечение иконки


1-1091453281
Alex871
2004-08-02 17:28
2004.08.15
Удаление компонента по клику мыши


14-1089499317
Денис
2004-07-11 02:41
2004.08.15
Подробный и понятный комментарий!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский