Последнее время я не программирую, а рaзгpебаю зaвалы которые оставили до меня покoления программистов. Чтобы внести минимальное декоративное изменение требуется исправить несколько модулей и потратить несопоставимую по сложности работу по выискиванию всех мест, в которые надо внести изменения.
Дело в том, что тем методы, которые допустимы в примерах, олимпиадах и лабах по программированию, совершенно неприемлемы при создании крупных и долгоживущих прикладных программ.
Предлагаю в этой теме публиковать примеры, как не надо программировать на Delphi, что бы потом не было мучительно больно от встречи с теми, кто исправлял твой код.
Всего в теме 421 сообщение
Добавить свое сообщение
Отслеживать это обсуждение  421—412 | 411—402 | ...>>> Всего сообщений в теме: 421; страниц: 43; текущая страница: 1
№ 421 02-04-2010 14:03 |  |
Ответ на »сообщение 420« (Сергей Перовский)
___________________________
Вы лично пробовали скопировать цветовые настройки из одной версии Delphi в другую? Я многократно проделывал это.
А инструкцию можно? C инструкцией не спортивно :)
Я делаю так:
Создаю "эталонный файл" с правильными цветами (один раз): для этого нахожу в regedit ключ
HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Editor
В зависимости от версии это может быть также:
[HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Editor
[HKEY_CURRENT_USER\Software\Embarcadero\BDS\7.0
и т.п. (определяется эмпирически)
Затем этот файл открываю тем же Delphi и заменяю в нём (в зависимости от версий) текст Borland\BDS\5.0 на CodeGear\BDS\6.0.
После изменений дважды щелкаю на файле и вношу информацию в системный реестр.
Может кто знает более правильный метод?????
№ 420 02-04-2010 12:23 |  |
Ответ на »сообщение 419« (Cepгей Poщин)
___________________________
Вы лично пробовали скопировать цветовые настройки из одной версии Delphi в другую? Я многократно проделывал это.
А инструкцию можно?
№ 419 02-04-2010 10:40 |  |
Ответ на »сообщение 395« (Александр Алексеев)
___________________________
>>> Тем, что в ini нет необходимости хранить информацию о версии и о его местоположении.
Да, зато меняется местоположение ini-файла. А если нет - то информация будет внутри ini-файла - точно так же, как с реестром.
Так что либо мы имеем те же самые проблемы, либо вместо "ой, тут надо Search&Replace сделать", будет "ой, тут надо в какое-то другое место скопировать с заменой - не ошибиться бы". Нет, только местоположение. В случае, если ini находится рядом с программой, то достаточно по контекстному меню "Свойства" открыть окно с кнопкой найти объект, в открывающейся папке удаляем файл, и кидаем туда "эталонный". Передумали — удаляем и восстанавливаем из корзины. Ни каких дополнительных средств и специальных знаний!
>>> Надо сначала удалить всю ветку в regedit (не дай бог не ту), потом запустить соответствующий файл.
Кто мешает в reg-файл вставить:
[-HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Editor\Highlight\Assembler]
? Про минусик не знал. Опять же, не отпадает необходимость с помощью сторонних программ заменить один текст на другой. Чтобы узнать, в какую ветку реестра кидать, всё равно надо открывать Regedit, и изучать структуру. Так что даже при расположении ini в C:\Documents and Settings есть дополнительная операция по замене одного текста на другой, самая трудоёмкая, кстати.
Вы лично пробовали скопировать цветовые настройки из одной версии Delphi в другую? Я многократно проделывал это. Аналогичные действия я делал в других программах с ini-файлами. С секундомером я не сидел, но, субъективно, по скорости работы и удобству ini гораздо превосходит reg.
___________________________
P.S. Аднака, господа, общими усилиями тему, похоже, окончательно утопили во флейме.
№ 418 25-03-2010 17:40 |  |
Нашел я этот документ. На первой же странице читаю...
This file provides detailed descriptions of Windows 2000 registry content, such as the subtrees, keys, subkeys, and entries that advanced users want to know about, including many entries that cannot be changed by using Windows 2000 tools or programming interfaces.
No comment ;-)
№ 417 25-03-2010 17:27 |  |
Ответ на »сообщение 416« (Игорь Шевченко)
___________________________
>>> Найти regentry.chm не получилось или имеет место быть неверие в факт его существования ?
Найти на официальном ресурсе Микрософта не удается. Как я понял, он не существует в виде самостоятельного документа, а входит в комплект чего-то там.
Однако гугл просто пестрит описаниями, что regentry.chm -- это описание ключей реестра Windows 2000. Есть доказательства более общего характера данного документа?
По остальному... Логика, опыт, здравый смысл -- все это говорит, что если есть хранилище со своим форматом хранения данных и интерфейс по работе с этим хранилищем, то более вероятна ситуация, когда изменяется формат хранилища, но остается неизменным интерфейс, чем обратная, когда изменяется интерфейс, но остается неизменным формат хранения. Это и труднее, и... э-э-э... неумно. Старые форматы данных, заточенные под старые механизмы, будут тормозом для нового интерфейсного механизма.
№ 416 25-03-2010 16:13 |  |
Ответ на »сообщение 408« (Geo)
___________________________
Ответ на »сообщение 405« (Игорь Шевченко)
___________________________
>>> И откуда стойкая уверенность, что организация реестра изменится, а WMI останется без изменений ?
Наверное, из того факта, что за последние 20 лет формат винвордовского документа поменялся раз шесть, не меньше. А комбинация Ctrl+B как использовалась для Bold, так и используется ;-)
А он (формат) и документирован стал не так давно. Наверное, после 6-го раза :)
Я пока не нашел подтверждения, что структура узлов реестра, используемых продуктами Микрософт, Микрософтом же официально документирована.
Найти regentry.chm не получилось или имеет место быть неверие в факт его существования ?
Я подтверждаю, существует. Microsoft Knowledge Base тоже существует в объективной реальности, данной нам в ощущениях :)
Более того, постоянно вносятся какие-то изменения. То есть, по всем признакам Микрософт оставляет за собой право изменять принципы хранения своих настроек в реестре или даже использовать (полностью или частично) другие принципы хранения. А реестр конечно же останется. И если разработчик джля своей программы хранит настройки в реестре, то он и дальше сможет это делать.
В качестве сценария фильма ужасов: "По всем признакам технология WMI вымирает."
В то же время, тот же механизм WMI (насколько я успел понять) задуман именно как интерфейс для пользовательских приложений. Более того, он документирован. И это гарантирует ему жизни еще как минимум на два поколения (то есть, лет на 6-8).
Придет, допустим, в голову MS реализовать инструментарий WBEM как-то иначе. Не в виде WMI, а в виде какого-нибудь XMI, XPath, XAML, все дела...И останется разработчикам один реестр ;)
С наилучшими,
№ 415 25-03-2010 14:39 |  |
Ответ на »сообщение 412« (Сергей Перовский)
___________________________
>>> Количество пользователей стремительно растёт опуская все ниже средний уровень
Ну, если разработчики ориентируются на основную массу и не хотят выпускать альтернативный "professional installer", то будем о себе заботиться сами.
Потребовались мне кое-какие компоненты. Нашел в инете бесплатные, скачал. Блин! Тоже инсталлятор! Причем, на раровский самораспаковывающийся архив, из которого можно файлы вынуть раром, а что-то такое честное типа Install Shield. Пошел на работе на тестовый компьютер (там все равно полная помойка), проинсталлировал, скопировал файлы к себе, удалил. Так и живем. Зато теперь у меня для этих компонент свой инсталлятор -- ZIP-архив ;-)
№ 414 25-03-2010 14:31 |  |
Ответ на »сообщение 413« (Александр Алексеев)
___________________________
>>> И это есть правильно и хорошо, поэтому странно требовать другого
Да, в общем-то, от пользователей и нет смысла что-либо требовать. Если им все подносят на блюдечке с голубой каемочкой, то навряд ли они будут напрягать серое вещество. Мне от другого плохо: есть ряд программ (простеньких утилит), для которых время и трудозатраты на установку через инсталлятор существенно превышают время и трудозатраты на копирование. Сначала нужно в визарде кнопки нажимать, а потом приводить в порядок start-меню и чистить прочие линки.
Программа -- один простой EXE. Но, тем не менее, инсталлятор с тобой поздоровается, спросит про то, куда установить, какую группу сделать в меню Start, размещать или не размещать линки в разных местах, на последней странице поблагодарит за установку и предложит сразу запустить. А потом нужно идти в Start-меню и чистиь его, потому что даже самая простая программа создает группу и размещает там, как минимум, три линка: сама программа, документация (лицензия, сайт разработчика) и uninstall. И это Start-меню, то есть место куда, по идее, размещают то, что регулярно запускаешь. Вот можно подумать, что я по три раза на день запускаю лицензионное соглашение или uninstall :D
А если это безобразие не чистить, то очень скоро это меню будет занимать полэкрана.
№ 413 25-03-2010 13:43 |  |
>>> То есть деградировали
И это есть правильно и хорошо, поэтому странно требовать другого.
№ 412 25-03-2010 10:38 |  |
Ответ на »сообщение 411« (Geo)
___________________________
То есть деградировали.
Не деградировали, а подтянулись.
Количество пользователей стремительно растёт опуская все ниже средний уровень.
421—412 | 411—402 | ...>>> Всего сообщений в теме: 421; страниц: 43; текущая страница: 1
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|