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

Вниз

Как показать направление сортировки в DBGrid   Найти похожие ветки 

 
matveih1 ©   (2009-12-02 09:22) [0]

Добрый день.
По клику на колонке сортирую записи отображаемые в DBGrid, а как мне
показать направление сортировки например как в OutLook, ну или других
приложениях (треугольник в низ или в верх)? Интересует именно стандартный DBGrid?


 
Sergey13 ©   (2009-12-02 09:24) [1]

К названию колонки значок добавить?


 
Matveih1 ©   (2009-12-02 09:49) [2]

ну да! А как? Есть кусок кода (пример)? Картинки в зависимости от содержания добавлять умею (только вместо текста), а как к title добавить значек к названию?


 
Sergey13 ©   (2009-12-02 10:11) [3]

> [2] Matveih1 ©   (02.12.09 09:49)
> а как к title добавить значек к названию

Ну так у title вроде как есть caption.


 
Matveih1 ©   (2009-12-02 10:18) [4]

есть. А как к caption добавить значек?


 
Sergey13 ©   (2009-12-02 11:06) [5]

> [4] Matveih1 ©   (02.12.09 10:18)
> А как к caption добавить значек?
например

caption :=caption+"v";
caption :=caption+"^";

разумеется с проверкой и чисткой предыдущего.


 
Matveih1 ©   (2009-12-02 12:53) [6]

Это гениально!!! Это просто нет слов. Я тут голову ломаю как картинку добавить, а ведь можно символом.
Спасибо! (действительно все гениально просто)


 
azl   (2009-12-02 14:11) [7]

Зачем этот геморрой с Caption?
Есть RxDBGrid, где это значок предусмотрен

procedure TGridForm.RxDBGrid1GetBtnParams(Sender: TObject; Field: TField;
 AFont: TFont; var Background: TColor; var SortMarker: TSortMarker;
 IsDown: Boolean);
begin
if ... then
  SortMarker := smDown
else
  SortMarker := smNone;
end;


 
azl   (2009-12-02 14:18) [8]

Точнее,
if ... then
 SortMarker := smDown
else
 SortMarker := smUp;
end;

Или JvDBGrid, который поглотил RxLib.


 
matveih1 ©   (2009-12-02 21:33) [9]

это понятно что есть dbgrid в котором этот значек предусмотрен. Вопрос был в том как в стандартном это сделать


 
Демо ©   (2009-12-02 23:53) [10]


> Зачем этот геморрой с Caption?Есть RxDBGrid, где это значок
> предусмотрен


А зачем гемморой со сторонними компонентами?

PS.
Кроме значка можно и заголовок подкрасить другим цветом.


 
Matveih1 ©   (2009-12-03 09:08) [11]


> PS.
> Кроме значка можно и заголовок подкрасить другим цветом.
>

Приведи пример? Как добавить картинку ну и покрасить


 
Amoeba ©   (2009-12-03 10:44) [12]

На Королевстве Delphi полно информации:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=806
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=580
и др.


 
azl   (2009-12-03 11:17) [13]


> А зачем гемморой со сторонними компонентами?

Ну, во-первых, RxLib - это одна из самых востребованных библиотек, во-вторых, без них это ерунда, а не работа. Зачем изобретать велосипед? Может, вообще стоит обходиться без стандартных компонентов, а писать их самому?


 
Sergey13 ©   (2009-12-03 11:37) [14]

> [13] azl   (03.12.09 11:17)
> Может, вообще стоит обходиться без стандартных компонентов,
> а писать их самому?

Возможно. Если ты сможешь написать нечто получше стандартного и поддерживать написанное практически неограниченное количество времени.


 
azl   (2009-12-03 11:56) [15]

Вот я об этом и говорю. Зачем тратить время на пустяки?
В любом случае, Caption с "v" и "^" будет выглядеть совсем неэстетично. Кстати, в том же Outlook"e сортировка по колонке обозначается не буквой "v" и значком "^", которые, в принципе, даже внешне отличаются, а стандартным значком, который во всех приложениях одинаковый.
В результате, на это нужно будет потратить кучу времени и сил. Прописывать клик по каждой колонке. Нажал на колонку, добавляешь к нему "v" или "^", кликаешь по другой колонке, нужно уже предыдущей присвоить Caption без этих значков. Это же Caption.


 
Демо ©   (2009-12-03 12:51) [16]


> azl   (03.12.09 11:56) [15]
> Вот я об этом и говорю. Зачем тратить время на пустяки?


Зачем сторонние компоненты для пустяков?
Для выбрасывания их в корзину достаточно того, что на другом компьютере исходный код не загрузить.


> azl   (03.12.09 11:17) [13]
> > А зачем гемморой со сторонними компонентами?Ну, во-первых,
>  RxLib - это одна из самых востребованных библиотек, во-
> вторых, без них это ерунда, а не работа. Зачем изобретать
> велосипед? Может, вообще стоит обходиться без стандартных
> компонентов, а писать их самому?


RX-Lib - одна из самых востребованных? С чего это ты взял?
Она востребована "батонокидателями", не более.


 
azl   (2009-12-03 13:06) [17]

Ну хотя бы тот факт, что это библиотека перешла в JEDI VCL говорит, что она востребована.
В общем, я свою точку зрения на этот счет высказал. Не важно, эта библиотека ли другая, есть еще платная EhLib в которой еще более продвинутый DBGrid есть.
Но заниматься ерундой и тратить время - это не серьезно.


 
Matveih1 ©   (2009-12-03 14:00) [18]

не думаю что это ерунда. Нужно обязательно использовать стандартные компоненты. Просто я хотел сделать стандартный GBrid более эстетичным.
> Amoeba ©   (03.12.09 10:44) [12]
>
> На Королевстве Delphi полно информации:
> http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168
> http://www.delphikingdom.com/asp/viewitem.asp?catalogid=806
> http://www.delphikingdom.com/asp/viewitem.asp?catalogid=580
> и др.

Спасибо, я их читал. Они мне очень помогли


 
RWolf ©   (2009-12-03 14:07) [19]

Среда Delphi построена вокруг компонентов, в ней это самый эффективный способ повторного использования кода. Если их не использовать — то какой смысл вообще на Delphi писать.


 
azl   (2009-12-03 15:35) [20]


> Нужно обязательно использовать стандартные компоненты.

Кому нужно? Вы с какой целью программируете?

И разве указатель сортировки в DBGrid в виде | Буквы v | Значка ^ | будет выглядеть эстетично? Я специально написал с большой буквы и разделил надписи черточками. Именно так будет это выглядеть на заголовке строки DBGrid. На мой взгляд, никакой эстетики.
В этом вопросе полностью разделяю мнение RWolf.


 
Демо ©   (2009-12-03 16:10) [21]


> Но заниматься ерундой и тратить время - это не серьезно.


Совершенно верно.


> Среда Delphi построена вокруг компонентов, в ней это самый
> эффективный способ повторного использования кода. Если их
> не использовать — то какой смысл вообще на Delphi писать.
>


А использовать сторонние компоненты нужно по любому пустяку?

Сторонние компоненты - это необходимое зло.
Зло потому, что для сопровождения программы может понадобиться пачка дополнительных компонентов различных производителей, которых уже может и не быть в живых. Случай, когда компоненты не сопровождаются разработчиком, может привести к невозможности развития проекта, в котором они используются.
А необходимое - потому что иногда действительно проще воспользоваться сторонними компонентами для ускорения разработки, нежели разрабатывать самому.

С одной стороны вроде бы и хорошо - быстро разрабатывать, делать для пользователя неописуемо красивый интерфейс, и всё это благодаря сторонним компонентам.
А с другой стороны - эти все вкусности используются даже не зная, каким образом компоненты обеспечивают нужную функциональность.
А зачастую задачка по разработке и реализации простейшего алгоритма приводит подобных разработчков в полный ступор.


 
Matveih1 ©   (2009-12-03 18:03) [22]


> Демо ©

Полностью поддерживаю. Ибо проект расчитан на развитие и использование сторонних компонент не желательно. Нужно писать свои вот я собственно и спрашиваю как добавить картинку к заголовку, а потом планируется обернуть это все в компонент который будет использоваться в проекте и в месте с ним развиваться


 
azl   (2009-12-03 18:07) [23]

И вот здесь сразу вспоминается разговор о самых востребованных библиотеках. RxLib, пожалуй, единственная библиотека, которую переделывают под новые версии. Как известно, проект давно был остановлен, но именно эту библиотеку продолжают поддерживать.
Я, например, еще пользуюсь такой библиотекой, как RALib. Этот проект тоже давно не разрабатывается, но библиотека легко компилируется даже на Delphi 2010. Хотя, в инструкции последняя версия для которой есть описание по установке - Delphi 6.И опять же, эта библиотека вошла в состав JEDI VCL.

Отсюда вывод, что действительно стоящие и популярные компоненты просто так не канут в Лету. Если они востребованы, их будут переделывать, включать в новые библиотеки и т.д. А если эти компоненты популярны (Например, компоненты от DevExpress), да еще и платные, то их точно никто не бросит.


 
Германн ©   (2009-12-03 18:09) [24]


> Сторонние компоненты - это необходимое зло.

Если они без исходников.
Если же с исходниками, то совсем другое дело.


 
azl   (2009-12-03 18:11) [25]


> Matveih1 ©

Писать свои компоненты - это не значит, спрашивать как, мне сделать значок сортировки, как в Outlook, раскрасить цветом и запихнуть картинку в стандартный компонент.
А если завтра из стандартных уберут DBGrid и влепят на его место новый, как тогда быть?


 
Демо ©   (2009-12-03 18:12) [26]


> А если завтра из стандартных уберут DBGrid и влепят на его
> место новый, как тогда быть?


Изменить новый.


 
azl   (2009-12-03 18:16) [27]


> Демо ©

А не проще использовать сторонние компоненты, исходники которых имеются? И если что-то не так, то подправить или добавить?

> А с другой стороны - эти все вкусности используются даже
> не зная, каким образом компоненты обеспечивают нужную функциональность.
>

Аналогично можно сказать и о стандартных компонентах. Тем более, что их исходников нет.


 
Демо ©   (2009-12-03 18:33) [28]


> > Демо ©А не проще использовать сторонние компоненты, исходники
> которых имеются? И если что-то не так, то подправить или
> добавить?


Не проще. Не проще как минимум потому, что на чужом компьютере уже не сможешь использовать сторонние компоненты (их там просто нет).
Это первое.
А второе - обновление подобных сторонних компонентов заканчивается сразу после самостоятельного их изменения.


> Аналогично можно сказать и о стандартных компонентах. Тем
> более, что их исходников нет.


Исходников нет? Куда делись?


 
Демо ©   (2009-12-03 18:36) [29]

При использовании сторонних компонентов проблема с переносом проектов решается просто - ВСЕ сторонние компоненты для ВСЕХ версий Delphi всегда лежат рядом С КАЖДЫМ проектом, в котором они используются, так как при необходимости нужен весь комплект компонентов, а не только те, о которых вспомнит разработчик в случае срочной необходимости.

Согласись - приятная перспектива?


 
Демо ©   (2009-12-03 18:43) [30]

Немного в сторону уведу.

Была в моей практике такая история:

Ещё на Delphi3 в своё время была сделана разработка программы для фирмы. Там использовались исключительно стандартные компоненты, доступ к базе данных и (о радость!) именно тот самый DBGrid.
Но DBGrid не простой. Для небольшого изменения поведения грида при выделении строк изменения были проведены в генетическом коде.

Учитывая, что в проекте было около сотни форм, в которых использовались эти гриды с изменениями, можно представить, какими словами я ругался, когда пытался внести небольшие изменения в проект на другом компьютере, учитывая тот факт, что Delphi на исходном ПК загнулся.


 
azl   (2009-12-03 18:50) [31]


> Не проще. Не проще как минимум потому, что на чужом компьютере
> уже не сможешь использовать сторонние компоненты (их там
> просто нет).
> Это первое.

На чужом компьютере может и Delphi вообще не быть или быть, но более ранней версии. )))
О разработке каких серьезных приложений может тогда вообще идти речь, если пользоваться только стандартными компонентами? Аля программа "Hello World"?
Если не хочешь использовать сторонние, напиши свои на основе стандартных, что автор и хочет сделать. И опять неувязочка получается, их не окажется на чужом компьютере. Вопрос только, нафига запускать исходники на чужом компьютере?
И потом, ставить дополнительные компоненты - секундное дело. Если так уж надо запустить на чужом ПК, то можно установить эти компоненты.

> А второе - обновление подобных сторонних компонентов заканчивается
> сразу после самостоятельного их изменения.

Тебе не угодишь. То ты хочешь пользоваться стандартными и дорабатывать их, то все заканчивается сразу после самостоятельного изменения. Ну так сам тогда продолжай их улучшать и править. Не хочешь этого делать, не меняй ничего. Не нравится этот компонент, возьми другой, который тебе подойдет.

Короче говоря, разговор ни о чем, думаю, можно закрывать тему.


 
Демо ©   (2009-12-03 19:02) [32]


> О разработке каких серьезных приложений может тогда вообще
> идти речь, если пользоваться только стандартными компонентами?
>  Аля программа "Hello World"?


А что, разработка подразумевает быстрое накидывание компонент на рабочий стол?
Так это и есть "Батонокидательство".
В нём нет программирования и разработки.
Это для тех, кто Delphi как конструктор использует. Именно для "Здравствуй Мир!". Так как ничего достаточно серьъёзного при таком подходе не сделать.


> И опять неувязочка получается, их не окажется на чужом компьютере.
>  


Они окажутся в проекте.


> И потом, ставить дополнительные компоненты - секундное дело.
>  Если так уж надо запустить на чужом ПК, то можно установить
> эти компоненты.


Ой-ли?


> Тебе не угодишь. То ты хочешь пользоваться стандартными
> и дорабатывать их, то все заканчивается сразу после самостоятельного
> изменения.


А что, после изменения стороннего компонента при выходе новой версии ты будешь опять его менять? Ведь новая версия будет более функциональна и предоставлять больше возможностей и более красивый интерфейс.


> Короче говоря, разговор ни о чем, думаю, можно закрывать
> тему.


Ну зачем торопиться.


 
azl   (2009-12-03 19:19) [33]


> А что, разработка подразумевает быстрое накидывание компонент
> на рабочий стол?
Так это и есть "Батонокидательство".
В нём нет программирования и разработки.
Это для тех, кто Delphi как конструктор использует. Именно для "Здравствуй Мир!". Так как ничего достаточно серьъёзного при таком подходе не сделать.

Разработка подразумевает не заморачиваться с изобретением велосипеда. Лучше потратить это время на разработку кода, чем заниматься ерундой с созданием указателя сортировки. Над этими вещами вообще заморачиваться даже не стоит. Это и должно быть, как конструктор. При таком подходе, никто дела не захочет иметь. Все нужно быстро, эффективно и чтобы вид был. Никто не станет слушать, что стандартные компоненты не позволяют сделать того, что вы хотите или над этим нужно месяц возиться.

> Они окажутся в проекте.

Также, как и дополнительные библиотеки.

Ой-ли?

Ой, да. Никогда не тратил на это много времени и сил. Тем более, что сейчас есть JEDI VCL, которая устанавливает множество компонентов буквально по нажатию 2-х кнопок. Нет, ну для любителей, можно и целый день возиться устанавливая и прописывая все ручками.
Знаю людей, которые только RxLib используют. И этой небольшой библиотеки действительно вполне хватает.


> А что, после изменения стороннего компонента при выходе
> новой версии ты будешь опять его менять? Ведь новая версия
> будет более функциональна и предоставлять больше возможностей
> и более красивый интерфейс.

Так я этим и не страдаю. Я выбираю те компоненты, которые меня полностью устраивают. К твоему сведению, чтобы поставить новую версию компонентов, нужно удалить сначала старую, так было всегда. Если ты сделал на основе дополнительных компонентов свои, так сохрани их, как отдельную библиотеку и пользуйся ней.


 
Anatoly Podgoretsky ©   (2009-12-03 19:27) [34]

> Демо  (03.12.2009 18:43:30)  [30]

А это другой дурдом.

"Не трогай генофонд зараза, а то пожалеешь"

(с) Идиомы ФИДО


 
Anatoly Podgoretsky ©   (2009-12-03 19:28) [35]

> Matveih1  (03.12.2009 18:03:22)  [22]

Да возьми ты тот же RxLib и посмотри


 
Anatoly Podgoretsky ©   (2009-12-03 19:31) [36]

> azl  (03.12.2009 19:19:33)  [33]

И с каждой версией Дельфи громкий вопль - помогите погибаю, где взять RxLib


 
Демо ©   (2009-12-03 20:11) [37]


> azl   (03.12.09 19:19) [33]
> Они окажутся в проекте.Также, как и дополнительные
> библиотеки.


Откуда дополнительные компоненты в проекте возьмутся? Ты их без установки используешь? В каждом проекте?


> Ой, да. Никогда не тратил на это много времени и сил. Тем
> более, что сейчас есть JEDI VCL, которая устанавливает множество
> компонентов буквально по нажатию 2-х кнопок. Нет, ну для
> любителей, можно и целый день возиться устанавливая и прописывая
> все ручками.Знаю людей, которые только RxLib используют.
>  И этой небольшой библиотеки действительно вполне хватает.
>


Видимо ты не сталкивался с тем, как иногда сторонние компоненты не выковыриваются из системы, и есть проблемы со многими с установкой.
Это хорошо. Желаю, чтобы и дальше так было.


> Так я этим и не страдаю. Я выбираю те компоненты, которые
> меня полностью устраивают. К твоему сведению, чтобы поставить
> новую версию компонентов, нужно удалить сначала старую,
> так было всегда. Если ты сделал на основе дополнительных
> компонентов свои, так сохрани их, как отдельную библиотеку
> и пользуйся ней.


Ну так правильный подход. Если он такой.


> Anatoly Podgoretsky ©   (03.12.09 19:31) [36]
> > azl  (03.12.2009 19:19:33)  [33]И с каждой версией Дельфи
> громкий вопль - помогите погибаю, где взять RxLib


Это не только с RXLib. Так происходит с любыми сторонними компонентами.

PS.

Буквально сегодня столкнулся.
Один кадр пишет достаточно сложную для реализации программу.
Но он не умеет работать ни со TStringLIst, ни провести поиск файлов на диске.
Зато супер-пупер морда лица у программы - это да.


 
Matveih1 ©   (2009-12-03 20:32) [38]

Ничего себе.
Давайте и я поделюсь своим горьким опытом использования сторонних компонент. После последней смены работы, пришел я в замечательную организацию где есть своя разработка. И о ужас что я там увидел. Есть около 30 приложений написанных на разных версиях Делфи и даже если, о чудо они написаны на одной версии делфи, то не всегда собираются т.к. одно приложение использует одни компоненты, а другое другие которые конфликтуют с первыми и что бы это все как то сопровождать и развивать приходится держать несколько виртуальных машин где собираются отдельные проекты. В некоторых использовались и самописные компоненты но разработчик уволился, код не документирован и собрать приложение на другой делфе, да что там делфе на другой машине не представляется возможным. Сейчас я потихоньку перетаскиваю все эти проекты на делфи 2007, а именно проекты оборачиваю в *.bpl ну и так далее. Не хочется лишать пользователя тех вещей к которым он привыкли, но и сидеть на делфи 5 тоже как то не хочется. Ну вот как то так.


 
Игорь Шевченко ©   (2009-12-03 20:34) [39]


> О разработке каких серьезных приложений может тогда вообще
> идти речь, если пользоваться только стандартными компонентами?
>  


Дофига серьезных приложений можно разработать, используя стандартные компоненты. Уж поверь на слово. Серьезность приложений - это не рюшечки в стиле "сортировка как в Outlook, скины как в Winamp и сворачивается, туда где часики".

Такое ощущение (уж извини конечно), что ты нифига серьезного не разрабатывал, а так, рюшками маялся. Без обид.


 
azl   (2009-12-03 20:45) [40]


> Anatoly Podgoretsky ©   (03.12.09 19:31) [36]


> И с каждой версией Дельфи громкий вопль - помогите погибаю,
>  где взять RxLib


> Это не только с RXLib. Так происходит с любыми сторонними
> компонентами.

Не без того ))))
Как вариант, не переходить на новую версию, как только она вышла. Спустя месяц - два, уже все будет. И это еще раз подтверждает, что эта библиотека востребована.


> Демо ©   (03.12.09 20:11) [37]


> Откуда дополнительные компоненты в проекте возьмутся? Ты
> их без установки используешь? В каждом проекте?

Так речь идет о компонентах, которые ты сам создашь на основе стандартных. А это те же дополнительные компоненты.

> Видимо ты не сталкивался с тем, как иногда сторонние компоненты
> не выковыриваются из системы, и есть проблемы со многими
> с установкой.

Ну так я не говорю за какие-то непонятные компоненты, которые трудно ставить и которые мало кто использует, а также не долго поддерживает.


> Буквально сегодня столкнулся.
> Один кадр пишет достаточно сложную для реализации программу.
>
> Но он не умеет работать ни со TStringLIst, ни провести поиск
> файлов на диске.
> Зато супер-пупер морда лица у программы - это да.

Ну зачем даваться в крайности? Нож тоже можно использовать, как орудие убийства, а можно, как средство для нарезания хлеба, колбасы и т.д. Он мог и с помощью стандартных компонентов сделать супер-пупер морду лица, а толку?
Приведу в пример Photoshop. Так вот у него есть стандартный набор инструментов и есть куча дополнительных плагинов, которые облегчают работу. Можно все и с помощью стандартных инструментов сделать в Photoshop, потратив на создание картинки кучу времени, сил и нервов. А можно установить плагины, сделать все гораздо быстрее, лучше и особо не заморачиваясь. И плагины есть во многих программах.



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

Форум: "Прочее";
Текущий архив: 2010.02.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.59 MB
Время: 0.004 c
4-1228799718
Skyle
2008-12-09 08:15
2010.02.07
Непонятки с USB сканером с эмуляцией COM. Не работает RXFLAG.


3-1234341518
TTLr
2009-02-11 11:38
2010.02.07
Экспорт таблицы


1-1236756836
EgorovAlex
2009-03-11 10:33
2010.02.07
Странное поведение Delphi 2009


2-1260419453
novai
2009-12-10 07:30
2010.02.07
Парсер строки


2-1260432658
TAzimut
2009-12-10 11:10
2010.02.07
Как перехватить событие максимизации формы?





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