• Авторизация


Только для программистов 17-01-2007 22:45 к комментариям - к полной версии - понравилось!


Пишу сортировку в сетке таблицы по нажатию на заголовок нужного поля (С++Builder6), - прорисовываю картинки "По возрастанию" и "По убыванию", делаю проверку: если у кликнутого заголовка картинка №1 - подставляю в строку запроса " ORDER BY " + Имя поля + " DESC", если №2 - убираю сортировку, если нет картинки - " ORDER BY " + Имя поля
Потом подумал: я ж использую умный DBGrid! Наверное, в нем уже есть встроенная сортировка
Покопался в свойствах. Не нашел
Почитал хелп. Не нашел
Взял демос - оказался на Delphi. Я его знаю, но не на интуитивном уровне, как С++
Откомпилил, запустил - есть сетка, работает сортировка!
Стал разбираться, как это сделано, начал лазить по свойствам и сравнивать с свойствами в своём проекте. Ничего не нарыл
Бегло посмотрел код основных модулей, подробно - код датамодуля и событий датасета этой сетки. Ничего не нашел
Потом мелькнула мысль... Запустил по проекту поиск на слово "ORDER"
И нахожу реализацию сортировки - по нажатию на заголовок нужного поля (С++Builder6) прорисовываются картинки "По возрастанию" и "По убыванию", делают проверку: если у кликнутого заголовка картинка №1 - подставляют в строку запроса " ORDER BY " + Имя поля + " DESC", если №2 - убирают сортировку, если нет картинки - " ORDER BY " + Имя поля....
вверх^ к полной версии понравилось! в evernote
Комментарии (15):
Donadecasa 18-01-2007-00:03 удалить
Надеюсь, начальство тебя ценит?
okemi 18-01-2007-13:00 удалить
=)))) шик. тоже так сделаю )))

LI 5.09.15
Lightpower 18-01-2007-13:36 удалить
Donadecasa: Надеюсь, начальство тебя ценит?
Ага :~)
Lightpower 18-01-2007-13:42 удалить
Твой_Мальчик
xD
Ничё не понятно, но смешно ))
Lightpower 18-01-2007-13:47 удалить
VictorT: ржуниамагу
Знал, что тебе понравится ))
Lightpower 18-01-2007-13:52 удалить
Okemi: =)))) шик. тоже так сделаю )))
Вот так мы и изобретаем велосипеды..
Да там бывает всё встроенно...
Я как-то и сейчас собственно немного знаю... но тогда когда я понял, что бывает всё, чтоб действительно не изобретать велосипед, становится значительно проще...
Lightpower 18-01-2007-15:42 удалить
Helmsman_of_ship_Da: Да там бывает всё встроенно...
Я как-то и сейчас собственно немного знаю... но тогда когда я понял, что бывает всё, чтоб действительно не изобретать велосипед, становится значительно проще...
Во фреймворке действительно почти всё встроено. Но это не на 100% хорошо реализованно. Часто тормозит, и ощутимо. Приходится изворачиваться
А в Билдере встроенных вещей поменьше

LI 5.09.15
VictorT 18-01-2007-15:47 удалить
Из моего очень давнего кода:

CString IntToStr(unsigned long n)
{
   CString temp = "";
   char m;
   while(n != 0) {
       m = n % 10;
       n -= m;
       temp = (m + '0') + temp;
   }
   return temp;
}

Нашёл, и офигел :D
Lightpower 18-01-2007-17:07 удалить
VictorT: Из моего очень давнего кода:

CString IntToStr(unsigned long n)
{
   CString temp = "";
   char m;
   while(n != 0) {
       m = n % 10;
       n -= m;
       temp = (m + '0') + temp;
   }
   return temp;
}

Нашёл, и офигел :D

Но работает же :~)

Лично я писал функцию для округления флоатов. Потому что стандартная, сволочь такая, глючит нечистоплотно

LI 5.09.15
okemi 18-01-2007-17:47 удалить
о, округление флоатов и я писала )) в стандартной 5 округляется не туда, кажется. )

LI 5.09.15
Lightpower 18-01-2007-17:53 удалить
okemi: о, округление флоатов и я писала )) в стандартной 5 округляется не туда, кажется. )
Флоат - это ваще для мазохистов. Представить десятичную дробь в двоичном коде - задача не для слабонервных. Кто это вообще придумал?..

LI 5.09.15
Исходное сообщение Lightpower
Твой_Мальчик
xD
Ничё не понятно, но смешно ))
ну ведь правда! xD


Комментарии (15): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник Только для программистов | Lightpower - Слава оптимизму! | Лента друзей Lightpower / Полная версия Добавить в друзья Страницы: раньше»