 |  | |  | |
Grid с человеческим лицом | Полный текст материала
Другие публикации автора: Андрей Пляко
Цитата или краткий комментарий: «... Сетка (Grid) — очень удобный компонент для представления данных. К несчастью, внешний вид Borland'овских сеток крайне непригляден; да и работать с ними пользователю, подчас, неудобно. Я выделил два критерия, которым, на мой взгляд, должна удовлетворять хорошая сетка...
...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 10 | 50% | | | | Ничего особенно нового и интересного | [2] | 10 | 50% | | | | Написано неверно (обязательно укажите почему) | [3] | 0 | 0% | | Всего проголосовали: 20 | | | Все понятно, материал читается легко | [1] | 23 | 95.8% | | | | Есть неясности в изложении | [2] | 1 | 4.2% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 24 |
[TCustomGrid] [TDBGrid] [Изменение размеров компонент, нестандартная форма] [Отображение списков, сеток]
Отслеживать это обсуждение 
Всего сообщений: 2816-08-2009 13:56Помогиет!!! Почему при обновлении запроса к базе методом (ADOQuery.Active:=false; ADOQuery.Active:=true;) ширина колонок начинает увеличиваться, и получается полная порнография... |
|
30-08-2006 17:02
29-08-2006 09:30
29-08-2006 07:45У кого-нибудь исходник есть?
Отсюда скачать не даёт... :( |
|
24-09-2002 14:43А еще хотелось бы много чего видеть в комплект к гриду:
1.Менеджер настроек колонок (выбор видимости и расположения колонок), естественно все настройки должны сохраняться между сеансами работы.
2.Универсальный генератор фильтров + менеджер фильтров - должен обеспечивать фильтрацию выводимой информации (с конкретной реализацией для какого то одного ранилища), сохранение списка фильтров.
3. Замороженные столбцы(title)/колонки не только сверху/слева, но и снизу(fotter)/справа - очень функционально для показа итоговых сумм, например, в кросс-таблице.
4. Менеджер раскраски грида - возможность указать для каждой ячейки параметры визуализации (шрифт, цвет) в зависимости от содержимого ячейки, строки, колонки - реализуется на базе менеджера фильтров.
5. Менеджер экспорта грида - в Excell, TXT, ...
Пока это все, что вспомнил (малая часть). |
|
23-09-2002 05:03Лично мне и Borland"овских Grid"ов хватает. |
|
22-09-2002 18:22Насчет стиля изменения ширины колонок согласен с [9/20/2002 8:44:19 AM].
Автор предоставляет набор функций, с помощью которых можно написать свой компонент. Однако, часто сложность не в том, чтобы написать код для опр. событие, а в том, чтобы перехватить это событие изнутри компонента без написания каких-либо внешних обработчиков. Чтобы кинул компонент на форму -- и не надо было писать обработчик OnResize для формы и пр.
В целом, считаю статью полезной и подходящей для раздела Hello World.
Сообщение не подписано |
|
20-09-2002 17:10>>>> Давайте учиться использовать уже написанное, улучшать оное.
>>Точно, золотые слова.
Но ведь автор так и делает :о)))) Берет уже написанный TCustomGrid и улучшает его по своему усмотрению :о)
Все подобные статьи хороши не тем, что они будто бы дают еще одно готовое решение или еще один навороченный компонент, вовсе нет. Они хороши тем, что показывают КАК это сделать САМИМ, если понадобится.
|
|
20-09-2002 17:002 Цветков Константин
>> Давайте учиться использовать уже написанное, улучшать оное.
Точно, золотые слова.
2 Paulmstr
Заметьте, я не сказал, что сама оболочка плохая, она хорошая, только вот компоненты, поставляющиеся с ней в комплекте использовать не рекомендуется - ОЧЕНЬ много глюков и просто недоделок. |
|
20-09-2002 16:062 Цветков Константин
>> Давайте учиться использовать уже написанное, улучшать оное.
Точно, золотые слова.
2 Paulmstr
Заметьте, я не сказал, что сама оболочка плохая, она хорошая, только вот компоненты, поставляющиеся с ней в комплекте использовать не рекомендуется - ОЧЕНЬ много глюков и просто недоделок. |
|
20-09-2002 13:04сообщение от автора материала 2Сергей13:
>>
Этим самым Вы порождаете 'побочное действие'. Т.е. изменяя ширину НУЖНОЙ вам ячейки, Вы тем самым изменяете то, что возможно(и скорее всего) не нуждается в изменении. Иными словами, для изменения ТОЛЬКО первой колонки, придется тягать все остальные. ИМХО, это неправильно.
>>
Ну, это 'на вкус, на цвет'. Мне удобен именно такой подход, но я не смею его никому навязывать.
2Paulmstr
>>
Не считает ли автор, что данное утверждение слишком 'абсолютно', ведь код применим только к компонентам, производным от TCustomGrid?
>>
Разумеется, вы правы. Просто под сеткой я подразумевал 'наследник' TCustomGrid, причем корректно написанный наследник TCustomGrid. Признаю, что фраза может ввести в заблуждение; спасибо, что обратили внимание. :)
|
|
20-09-2002 12:37Автору:
Может быть достаточно полезно для начинающих в качестве стартовой точки для собственных экспериментов.
На будущее:
>>можно сделать любую сетку хорошей
Не считает ли автор, что данное утверждение слишком 'абсолютно', ведь код применим только к компонентам, производным от TCustomGrid?
Для гоподина Poltergeist и прочих, похожих не него своими высказываниями:
>>компоненты от Borland полная лажа
'Не нравится - не ешь...'! Кто заставляет вообще пользоваться Delphi! А вообще-то подобные выражения более пригодны для 'тусовки' в 'пивняке', а не здесь. А если еще господин Poltergeist на хлеб себе этим самым Delphi зарабатывает, так вообще 'рубит сук, на котором сидит'! |
|
20-09-2002 10:12Всегда хотел сделать такое, но лень было :(
спасибо, полезная фича никогда не лишняя,
да и подход с обработчиками событий не перегружает программу,
и следует принципу бритвы Оккамы :). |
|
20-09-2002 08:44Статья неплохая с иллюстративно-познавательной точки зрения. Но цель, достигаемая автором - сомнительна, мягко говоря.
>*правильный* (разумеется, по моему мнению) способ изменения ширины
>колоноки -- когда меняется не ширина одной колонки, а как бы
>смещается граница между *двумя* колонками
Этим самым Вы порождаете 'побочное действие'. Т.е. изменяя ширину НУЖНОЙ вам ячейки, Вы тем самым изменяете то, что возможно(и скорее всего) не нуждается в изменении. Иными словами, для изменения ТОЛЬКО первой колонки, придется тягать все остальные. ИМХО, это неправильно.
Насчет сторонних продуктов. ИМХО, тут важно выбирать 'правильные' продукты - продукт развивается, есть поддержка, законность использования, наличие исходников - и все будет ОК.
Сам всегда использую EhLib - отличная вещь. Заметил только один минус - при наличии на форме нескольких гридов с навороченными настройками (особенно титлы-кнопки) здорово жрет GDI ресурсы (на W98 по крайней мере у меня один из гридов кушает около 5%).
|
|
19-09-2002 19:44А как насчет того, чтобы производилось автовыравнивание колонок подобно тому, как это сделано в TListView? Ведь порядок и список выводимых полей чаще всего определяет пользователь. Тогда горизонтальный скроллер - неизбежен.
Желательно, что бы полностью был виден и заголовок и содержимое колонки.
А еще есть приятный компонент MDBgrid, который 'умеет' делать неподвижными n первых колонок. |
|
19-09-2002 18:57Повторяться про DBGridEh не буду.
А по поводу 'правильности' - неужели Автор действительно использует никому не нужную колонку 'индикатора'? А где ВЕРТИКАЛЬНОЕ выравнивание?
Давайте учиться использовать уже написанное, улучшать оное. |
|
19-09-2002 18:08Статья, по моему мнению, именно что 'в точку' - для начинающих. Может кому-то поможет лучше узнать 'внутреннисти' VCL :-) А что касается использования компонентов 'третьих фирм', то я скажу так, иногда, когда задача требует ТОЛЬКО добавления одной функции, как например той что, описана в статье, то лучше сделать это самому, и тут такой модуль как нельзя лучше (переносимость кода). А когда требуется действительно навороченный грид (особенно DB), то тут лучше брать проверенное и готовое. Замечу еще то, что сам подход в в иде отдельной функции, а не компонента выглядит хорошо. Ведь эту функцию можно применять и дял навороченных гридов, перекрывая или расширяя их возможности. Мне понравилось. |
|
19-09-2002 15:13>>>Poltergeist
Ну то же, за Вас можно только порадоваться, если все проблнмы решаются DBGridEh :о) Искренне.
А вот другим необходимо именно разобраться 'что и как' делается, чтобы уметь это делать самому. Не всякий навороченный грид можно изменить под свои нужды, если эти нужды нестандартные. Впрочем, эта тема не один раз уже обсуждалась и на Базарной площади... |
|
19-09-2002 15:11Мне понравилось Ваша статья. Спасибо. |
|
19-09-2002 15:09Честно говоря когда у меня стояла, похожая задача: навести порядок в ширине колонок любой сетки, я предоставил это сделать пользователю...
Тоесть пользователь сам устанавливает ширину и порядок колонок в сетке, а при закрытии программы я считывал все установки компонента в настроечный файл (здесь простор для фантазий не ограничен: От записи в Ини-файл, до использования WriteComponent и т.д.). Соответственно при запуске программы все записанные настройки востанавливались.
С уважением. |
|
19-09-2002 15:082 Елена Филиппова:
>>> Господа, неужели Вы на самом деле считаете, что чужие компоненты есть панацея? Программисты превращаются кликальщиков? :о)
Не превращаются :-) Просто считают, что не стоит тратить время на переписывание DBGridEh (изобретение велосипеда), достаточно просто вносить в него исправления.
А список этих самых гридов написал Роман Василенко. |
|
19-09-2002 15:08А мне статья понравилась, довольно просто и со вкусом. Ну а юзать всякие там 'левые' компоненты несложно, здесь же, по моему задача другая - показать 'что, да как'. По тому и в разделе для начинающих. Впрочем, некоторые всю жизнь в начинающих :) да не обидится ни кто.
с уважением... |
|
19-09-2002 14:53Честно говоря когда у меня стояла, похожая задача: навести порядок в ширине колонок любой сетки, я предоставил это сделать пользователю...
Тоесть пользователь сам устанавливает ширину и порядок колонок в сетке, а при закрытии программы я считывал все установки компонента в настроечный файл (здесь простор для фантазий не ограничен: От записи в Ини-файл, до использования WriteComponent и т.д.). Соответственно при запуске программы все записанные настройки востанавливались.
С уважением. |
|
19-09-2002 14:50сообщение от автора материала 1) Спасибо Королеве за поддержку :)
2) Спасибо всем ответившим :)
3) Ну, помимо 'авто-растягиваемой' колонки в статье предлгается также *правильный* (разумеется, по моему мнению) способ изменения ширины колоноки -- когда меняется не ширина одной колонки, а как бы смещается граница между *двумя* колонками. На сколькой я помню, в сетке той же EhLib нет подобной возможности. |
|
19-09-2002 14:39>>Igor Trofimov
Верное высказывние, но ведь автор и не предлагает всем строем перейти на такой вариант грида. Он предлагает вариант решения именно этой проблемы и решение хорошее.
>>>Все гриды уже содержит эту возможность (кроме стандартного)
Какие все??
Господа, неужели Вы на самом деле считаете, что чужие компоненты есть панацея? Программисты превращаются кликальщиков? :о)
|
|
19-09-2002 14:23ИМХО, Думаю, что велосипед уже изобрели. Надеюсь, автор статьи не воспримет это как обидное высказывание на его счет.
Дело в том, что...
Во-первых, сама статья находится в 'Hello, World!'. Когда я только начинал работать с Дельфи, я уяснил одну вещь - можно делать потомков стандартных компонентов, изменять непосредственно сами компоненты, но... Если ты начинающий, то 'шаг влево - шаг вправо' может привести к последствиям, мягко говоря, неудовлетворительным. Для того, чтобы модифицировать поведение уже готовых компонентов STD VCL, необходимо неплохо разбираться в программировании. Так что, я считаю, при всей полезности материала, он немного 'не в точку'.
'Во-вторых' вытекает из 'во-первых'. Есть несколько 'сеток' в Сети, уже проработанных, готовых, так сказать, к употреблению. Я думаю, что неплохим дополнением к статье будут служить ссылки на них. Итак:
http://www.woll2woll.com/ - Замечательные сеточки, кнопочки и прочие 'облегчалки жизни'.
http://www.devexpress.com/downloads/index.asp - Аналогичные по замечательности сеточки, но другого производителя. Плюс целый набор компонентов по разным тематикам.
http://www.farpost.com/personal/dmitryb/RUS/default.htm - Тот самый DBGridEh, о котором столько говорили большевики.
Есть еще замечательные штучки такого плана. Разница только в цене/функциональности. |
|
19-09-2002 12:55Далеко не всегда хорошо, когда сетка выравнивает ширину столбцов, 'вмещая' все столбцы в видимую область компонента.
Если столбцов много - то все они 'сплющатся' и прочитать что-либо будет затруднительно.
А вообще - DBGridEh - и правда замечательная вещь. Почти нет нареканий. |
|
19-09-2002 12:47Все гриды уже содержит эту возможность (кроме стандартного).
Например в EhGrid это свойство - AutoFitColWidth. Причем можно настроить так, что растягиваться будет любое количество столбцов.
Ни для кого не является новым, что компоненты от Borland полная лажа, кстати Borland, если посмотреть на последние релизы, и сам это понял, поэтому в поставке их продуктов очень много компнентов третьих фирм. |
|
|
|