| | | | |
Редактор видимости полей грида своими руками | Полный текст материала
Другие публикации автора: voldan
Цитата или краткий комментарий: «... Сегодня хотелось бы предложить Вам на обсуждение довольно интересную тему под названием “Возможность редактировать видимость полей грида”, отвечающую всего-лишь двум условиям : видимо (Visible = True) и скрыто (Visible = False). И к данной теме прилагаю собственный компонент TFldSetting, который способен ускорить ту рутину, с которой нам всем приходится встречаться. ...» |
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 2 | 66.7% | | | | Ничего особенно нового и интересного | [2] | 1 | 33.3% | | | | Написано неверно (обязательно укажите почему) | [3] | 0 | 0% | | Всего проголосовали: 3 | | | Все понятно, материал читается легко | [1] | 0 | 0% | | | | Есть неясности в изложении | [2] | 3 | 100% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 3 |
[TDBGrid] [Режимы Visible и Enabled]
Отслеживать это обсуждение
Всего сообщений: 2422-02-2007 05:39
22-02-2007 05:202 Николай
> ...три года назад я публиковал на КД набор статей по платформе для медицины...
Ссылочкой не поделитесь? |
|
18-01-2007 02:52сообщение от автора материала Voldan, труд ваш не пропал даром.
Спасибо большое, TPID :0)
Единственное, что улыбнуло - колесико, будь оно неладно, опять не работает :-) хотя вашей вины в этом, конечно, нет.
Не хотел просто код засорять лишними действиями, ну Вы понимаете меня. Но если, вдруг, начинающий программист спросит: "voldan, а чё с колесом-то делать?!", придётся (тоже) улыбнуться и... скинуть пару-тройку десятков Королевских ссылок на то, как исправить данный баг :)) |
|
18-01-2007 01:40Непонятно, зачем автор изобретает велосипед
Зря вы так, товарищи критики! Не знаю, кому как, а мне в плане образования очень полезно поковыряться в исходниках вроде такого. Voldan, труд ваш не пропал даром. Единственное, что улыбнуло - колесико, будь оно неладно, опять не работает :-) хотя вашей вины в этом, конечно, нет. |
|
17-01-2007 06:11Да, Елена, согласен, что работа без особого предварительного отбора - более подходящий вариант публикаций. Действительно, даже в плохо подготовленном материале иногда может найдется то, чего программисту не хватало. Оно же может подтолкнуть мысли к творчеству.
Так что снимаю свою замечание. |
|
17-01-2007 02:10Я напоминаю в который раз, что никаких рецензентов и никакой редколегии на Королевстве нет.
Статьи проходят лишь самый первичный, мжно сказать, беглый просмотр, все остальное дается на откуп жителям Королевства. Именно для этого и существуют обсуждения. |
|
16-01-2007 22:52сообщение от автора материала Да, Николай, неточности в пояснении некоторых нюансов есть. Но, вдруг, если кто-то заметит незнакомое изречение, прошу, задавайте вопросы. С радостью дам исчерпывающие ответы.
Что касается статьи - стержнем ее является сам компонент. Т.е. мы, без единой строчки кода, можем просто бросить компонент на форму, подвязать к нему грид, прописать путь к файлу сохранения настроек и всё. Компонент просто облегчает жизнь, не более. Чем постоянно писать тоже самое, только под конкретные условия, предложен оптимальный вариант. У кого возникнут вопросы по реализации этого компонента - задавайте. |
|
16-01-2007 22:23to Author
Расскажите, пожалуйста, где Вы видели подобный визуальный настройщик полей грида?
Конечно, извиняюсь за продолжение разборки, но три года назад я публиковал на КД набор статей по платформе для медицины, в которой один из инструментов - визуальная настройка полей TDBGrid. Это настолько мелкий предмет, что я даже не счел необходимым упоминать об этом.
То, что у молодого человека есть стремление поучаствовать в публикациях - это замечательно. Но судя по данной статье, ему необходимо во-первых, научиться правильно называть объекты программной среды, а во-вторых, научиться отделять главное от второстепенного. Ну и рецензентам КД тоже надо быть повнимательнее при отборе материала. |
|
16-01-2007 14:32Присоединяюсь к Антону: хватит устраивать разборки.
Господам критикам рекомендую обратить внимание на раздел, в котором расположена статья. А также посмотреть на остальные публикации данного раздела.
Данилу же советую принять к сведению конструктивную критику, а на наезды не обращать внимания. Тогда они утихнут сами собой.
Короче, все как в детском саду: кто умнее, тот прекратит первым ;-) |
|
16-01-2007 13:48сообщение от автора материала 2 Александр Чмиль
Смысл был не создавать статью, касательно работы со свойствами TDBGridColumns (а не TColumns, прочувствуйте разницу, как профессионал своего дела), а дать понять начинающему программисту, как можно организовать то, что описано в статье и видно при запуске приложения, которое прилагается к статье. Это не только работа со столбцами (да что Вы так к ним привязались), это работа самого компонента, работа с динамической подменой (дополнением) событий, правильной работой с нотификациями, работа с шорткатами и так далее. Это всё корректно отображается в самом коде. Плюс понимание, что вся логика (рабочая нагрузка) лежит не в самом компоненте, а в модуле формы, которая, в свою очередь, является независимой и самодостаточной. Через ее готовые к работе методы можно обращаться и не только через компонент, а просто напрямую. Если начинающий программист подойдёт с толком к разбору кода (а я старался изложить всю логику в простоте, использовал по-максимуму комментарии), то, возможно, модернизировав компонент, он получит как и опыт, так и готовую реализацию уже своего функционала.
Теперь по поводу ini-файлов. ini-файлы - это текстовые файлы, предназначенные для хранения информации о настройках различных приложений. Информация в ini-файле логически группируется в разделы, каждый из которых группируется в разделы, каждый из которых начинается оператором заголовка. Работу с ними проще всего осуществлять с помощью объекта типа TIniFile. Можно писать и в "обычный текстовый файл", хотя на практике я не встречал программистов, которые сохраняют те или иные конфигурации программы в обычный текстовик. ) Можно писать и в базу данных текущую конфигурацию, что уж там говорить. Тем более методы, предложенные Вами (writeln...) считаются устаревшими (это, так называемый, файловый ввод-вывод) и оставлены для совместимости с ранними версиями операционных систем и приложений. То есть, опять же, Вы меня не убедили.
По поводу энтропии. Энтропия той порции информации, которую я преподнес, равна нулю, если пользоваться Вашим взглядом на вещи. Но, если начинающий программист будет смотреть немного дальше (есть такое понятие, зри в корень, знаете?), то он достигнет намного бОльших высот, по сравнению с другими.
Ну, и, наконец, по поводу Ваших скриншотов. Мне они ни в каком виде не нужны. Почему? Цитирую самого себя:
"Конечно же, многие программисты имеют в своем арсенале нечто подобное, разработанное ими же или сторонними разработчиками."
Всё, думаю, без лишних слов понятно. Лучше Вы мне пришлите какие-нибудь серьезные разработки в виде кода, я их оценю: посмотрю на стиль написания, на грамотность подхода к реализации того или иного действия, на, как говорят, "качество" кода.
Итог: Вы меня не убедили ни в чём. Оставили лишь негативный след по поводу резких ответов, которые ничем не подкреплены. |
|
16-01-2007 10:55Чуть не забыл ответить на вопрос.
У себя видел и не придал этому значения, т.к. это - мелочь.
При желании могу скинуть пару скриншотов программы.
С уважением, |
|
16-01-2007 10:52Ок. Какой смысл был создавать целую статью касательно элементарной работы с некоторыми свойствами TColumns. Это, по моему мнению, нечто из разряда "прикладного программирования", не требующего каких-либо глубоких познаний в программировании на Delphi.
Да, возможно удобно, да, возможно иногда пригодится. Но такие вещи без всяких ini-файлов (а чем плох обычный writeln(f,...) в обычный текстовый файл с цифирями в столбик?) и другой мишуры пишутся в течении 10 минут.
Любой начинающий программист через 15-20 минут "прощупывания" свойств и методов TDBGrid способен сам подобное сделать.
Короче, энтропия информации равна нулю. У меня всё.
С уважением, |
|
16-01-2007 07:53сообщение от автора материала 2 MsGuns
Непонятно, зачем автор изобретает велосипед в плане сохранения и восстановления свойств колонок, когда TColumns имеет методы SaveTo/LoadFrom File
Данные методы хранят/загружают весь объект TDBGridColumns в файле, а мне нужно хранить только одно свойство - это раз. Во-вторых, посмотрите читабельность сохраненных свойств моим методом и методом SaveToFile - это два. Ну, и три - это то, что данный подход не имеет ничего плохого, что может трактоваться как велосипед. Суть статьи - компонент и его работа, а не способ сохранения/восстановления данных из ini-шки. Велосипед - это то, что уже изобрели (или есть что-то подобное). Расскажите, пожалуйста, где Вы видели подобный визуальный настройщик полей грида? Этот вопрос я адресую и к Александру Чмиль. |
|
16-01-2007 07:02Так, хватит уже разборки устраивать. Нельзя так болезненно реагировать на критику. |
|
15-01-2007 09:07сообщение от автора материала 2 Erik Ivanov
Дело в том, что обсуждать всегда легче, чем изобретать. Хотя, и сам люблю пообсуждать, не без греха, как говорится? :) Изучайте, будут вопросы, задавайте пожалуйста.
2 Александр Чмиль
"Тем более я видел его ответы".
Прям, цитируете. Только что поковырялся в логах аськи, так и есть. Передавшему данные стоки - респект! |
|
15-01-2007 07:42А мне ничего стаья показалась, а если учесть что в коде больше чем написано(со слов автора), то вполне можно изучать. И развить это в более интересный компонент, например присваивать названия столбцам и базы данных. |
|
15-01-2007 06:35сообщение от автора материала 2 Александр Чмиль
Как тебе такой ответ?
Нормальный ответ. Абсолютно. |
|
15-01-2007 06:02Как написал уважаемый MsGuns, автор в данной статье пытался изобрести велосипед. От себя хотел бы добавить - трехколесный.
Пересмотрел весь материал, исследовал вложение... Честно, извиняюсь, но фуфло.
Не лень же было мучать клавиатуру.
P.S. Voldan, вспомни фразу "Тем более я видел его ответы". Как тебе такой ответ?
С уважением, |
|
15-01-2007 05:46Скомпилированный пример не запускается, жалуясь на отсутствие VCL50.bpl. Так-то.. |
|
15-01-2007 02:571. Заглядываем в исходный код и читаем
// Вот это дело только для грида из библиотеки EhLib
//if Columns[i].Tag = -1 then
// Continue;
Ребус?
2. Извините, господин Автор, я имею уже не минимальные представления о базах данных, но что такое "заливка полей в набор данных" ни хрена не понял. Набор данных - это другими словами выборка из таблицы базы данных. Никакие поля туда не зальешь! И причем тут датасет? Может быть, у Вас своя основополагающая терминология? Тогда следует ее привести, а уж читатели тогда перестроят свои мозги под Ваши основы баз данных.
|
|
15-01-2007 00:51сообщение от автора материала 2 MsGuns
Еще немного коробит, когда какой-то материал, предназначенный для публикации в Сети в целях обучения, строится на какой-нибуть сторонней библиотеке компонентов.
Если Вы бы повнимательнее прочитали текст статьи и заглянули в модуль самого компонента, Вы бы не задали этот вопрос. Компонент работает исключительно с TDBGrid, а для тех, кто работает с TDBGridEh (например, я), я обрисовал схему, как можно переписать компонент под него и использовать дополнительную возможность со свойством Tag. Так что ничего здесь не противоречит духу Королевства :)
было бы полезно показать реализацию самой динамически создаваемой формы для управления колонками
Согласен. Данную реализацию можно просмотреть в исходных кодах. Но, я не стал выносить её в саму статью.
2 Николай
что бы это значило "до поры до времени я и сам пользовался заливкой полей в сам набор данных"? А что должен думать новичок, читая эти строчки?
Другими словами, это добавление полей в датасет. Рассчитывалось, что читающий уже должен иметь минимальные представления о базах данных + как с ними работать, используя Дельфи. Я не претендую на роль профессионального публициста, для меня главное - это конечный результат. А конечным результатом является сам компонент.
Автор запутал читателя, рассказывая то о TDBGridEh, то о TDBGrid. Что же в конце концов было главной целью статьи - неясно.
Посмотрите исходные коды - поймёте.) |
|
15-01-2007 00:42Ну всё хорошее уже сказали, остаётся уповать на принцип, "А кому-нибудь, да пригодится." ;)
C уважением, |
|
14-01-2007 22:38Весьма небрежно написанный материал. Например, что бы это значило "до поры до времени я и сам пользовался заливкой полей в сам набор данных"? - Жаргон? А что должен думать новичок, читая эти строчки?
Автор запутал читателя, рассказывая то о TDBGridEh, то о TDBGrid. Что же в конце концов было главной целью статьи - неясно. |
|
14-01-2007 10:21Непонятно, зачем автор изобретает велосипед в плане сохранения и восстановления свойств колонок, когда TColumns имеет методы SaveTo/LoadFrom File - это во-первых
Неясно какие именно свойства колонок сохраняются и восстанавливаются - если только Visible, то имхо выстрел из артбатареи по комару. Логично было бы давать изменять цвет, шрифт, многострочность, выравнивание и т.д. Этово-вторых.
Еще немного коробит, когда какой-то материал, предназначенный для публикации в Сети в целях обучения, строится на какой-нибуть сторонней библиотеке компонентов. Получается невольное (а может вольное ?) лоббирование или реклама, а это по сути своей противоречит духу Корлевства. Либо надо так и озаглавливать статью - "ла-ла-ла в компоненте TDBGridEh
Что же касается самой проблематики, то было бы полезно показать реализацию самой динамически создаваемой формы для управления колонками - это для новичков было бы реально полезно и интересно
С уважением |
|
|
|