Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2017, 12:05   #1
XerSon
Форумчанин
 
Аватар для XerSon
 
Регистрация: 21.01.2008
Сообщений: 211
Вопрос ListView+ColumnClick+Sort+Integer с учетом двоичной приставки KB, MB, GB.

Всем привет.

Есть ListView в стиле vsReport.

Код:
var
  { Объявим глобальную целочисленную переменную Sort.
    Она будет отвечать за направление сортировки - прямое или обратное. }
  Sort: Integer = 1;
Код:
procedure ColumnClick(Sender: TObject; Column: TListColumn);
begin
  Sort := -Sort;
  // В обработчике события Column =  Columns[3]
  // и нумерация  колонок начинается  с НУЛЯ
  // Если щелкнули по первой колонке - Caption
  if Column = ListView.Columns[3] then
   ListView.CustomSort(...Тут сортировка...);
end;
Что то типа...

Код:
if StrToInt(Item1.SubItems[3 { колонка } ]
      { Сортируемое данное } ) > Round(StrToInt(Item2.SubItems[3])) then
      Result := ParamSort
    else if StrToInt(Item1.SubItems[3 { колонка } ]
      { Сортируемое данное } ) < Round(StrToInt(Item2.SubItems[3])) then
      Result := -ParamSort;
Если значения в байтах то с сортировкой нет проблем!

Как организовать сортировку сабитема в котором занесены значения размеров файлов с учетом двоичной приставки KB, MB, GB?

Пример на картинке ниже.
Изображения
Тип файла: png Снимок.PNG (4.7 Кб, 52 просмотров)
XerSon вне форума Ответить с цитированием
Старый 24.09.2017, 14:00   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Приводить к одной размерности и сравнивать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler: Помогите решить пример. A (integer), B (integer), C (byte). Вычислить: D = (A*B)/С Ambros Помощь студентам 1 04.03.2017 15:53
Почему когда делаешь отладку, значение integer не в двоичной системе? helpkz C# (си шарп) 5 25.03.2016 20:49
8-битные приставки и пистолет Hollander Свободное общение 37 17.08.2011 17:50
Вычесть из Integer Form2 Integer Form1 Shouldercannon Общие вопросы Delphi 2 30.07.2010 17:47
Пре и Пост приставки к выделеному тексту Veiron Общие вопросы Delphi 2 26.03.2009 22:23