Сортировка столбцов в StringGrid 2Delphi , Синтаксис , СортировкаСортировка столбцов в StringGrid 2Автор: http://www.sources.ru type TStringGridExSortType = (srtAlpha, srtInteger, srtDouble); procedure GridSort(SG: TStringGrid; ByColNumber, FromRow, ToRow: integer; SortType: TStringGridExSortType = srtAlpha); var Temp: TStringList; function SortStr(Line: string): string; var RetVar: string; begin case SortType of srtAlpha: Retvar := Line; srtInteger: Retvar := FormatFloat('000000000', StrToIntDef(trim(Line), 0)); srtDouble: try Retvar := FormatFloat('000000000.000000', StrToFloat(trim(Line))); except RetVar := '0.00'; end; end; Result := RetVar; end; // Рекурсивный QuickSort procedure QuickSort(Lo, Hi: integer; CC: TStrings); procedure Sort(l, r: integer); var i, j: integer; x: string; begin i := l; j := r; x := SortStr(CC[(l + r) div 2]); repeat while SortStr(CC[i]) < x do inc(i); while x < SortStr(CC[j]) do dec(j); if i <= j then begin Temp.Assign(SG.Rows[j]); // Меняем местами 2 строки SG.Rows[j].Assign(SG.Rows[i]); SG.Rows[i].Assign(Temp); inc(i); dec(j); end; until i > j; if l < j then sort(l, j); if i < r then sort(i, r); end; begin {quicksort} ; Sort(Lo, Hi); end; begin Temp := TStringList.Create; QuickSort(FromRow, ToRow, SG.Cols[ByColNumber]); Temp.Free; end; Вот перевод кода на русский язык: Enums и Процедуры
Первая часть определяет энум Процедура Помощники
Функция Implementation QuickSort
Процедура Функция Основной код
Основной код создает объект TStringList В статье представлен код на Delphi, который обеспечивает сортировку столбцов в StringGrid 2 методом рекурсивного QuickSort. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Сортировка ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |