Motto

В тихом саду здравомыслия
Пусть на вас постоянно падают
кокосовые орехи пробужденности.
Чогьям Трунгпа РИНПОЧЕ


Версия для мобильного


пятница, 31 октября 2008 г.

Мысли навеянные Delphi-кодингом 1

  1. JVCL – зло. Там слишком много компонентов.
  2. Личное открытие: TBookmarks может не работать[1] в IBX-ах и FIB-ах, но работает в BDE.
  3. Давно заметил, что после установки DelphiSpeedUp на Delphi 6 с кучей других экспертов, IDE начинает глючить и периодически вылетать. Терплю. Лучше глюки, чем тормоза.
  4. Эксперты, вообще, штука небезопасная.
  5. Toolbar 2000 - как наркотик. Начав им пользоваться, от него очень сложно отказаться.
  6. IBX в Delphi 2009 страшно глючат при работе с юникодной базой Firebird.
  7. Накодить можно всё что угодно. Вопрос в цене.

Читать дальше..

четверг, 30 октября 2008 г.

Lazy Delphi Builder. Beta3. RC1.

Я выложил третью бету Lazy Delphi Builder-a. Она стала ещё удобнее в использовании. Все основные навороты, которые я хотел реализовать, я уже реализовал, нереализованными остались только идеи которые возможно сделают работу ещё более удобной.

Если по этой версии не будет сообщений об ошибках, то я её переименую в стабильный релиз.

История изменений: Lazy Delphi Builder 0.9.4.97(beta3):
1) На форме About изменён шрифт на Arial
2) Исправлена ошибка с прорисовкой CheckBox-ов в Exclude Masks
3) Дистрибутив LazyDelphiBuilder теперь содержит 2 версии программы:
   LazyDelphiBuilder.exe - версия для консоли, которая умеет запускать сохранённые профили LazyDBP
   LazyDelphiBuilderGUI.exe - версия с GUI, которая всё
4) На главную форму добавлена закладка, позволяющая просмотреть список зарегистрированных в IDE пакетов
5) В дереве найденных файлов добавлена возможность отменять удаление
6) Добавлена возможность добавлять папки для сканирования непосредственно в дерево найденных файлов
7) При компиляции, старые выходные папки не удаляются, а переименовываются в Bin.~, Bpl.~ и т.д. (можно отключить с помощью /BackupOutFolders-). А старые папки Bin.~ теперь удаляются в Корзину(отключаемо с помощью /UseRecycleBin-)
8) Подробная русская справка по адресу: http://www.lazyproject.info/support/docs-ru/
9) +что-то ещё, про что я сейчас не помню.


Читать дальше..

вторник, 28 октября 2008 г.

Текучка 6. Delphi 2009 + FastMM4.9 + я = странный баг.

Я использую в своих проектах FastMM. При этом я не хочу добавлять путь до FastMM4.pas в Library Path, чтобы не мучиться при отладке. Для этого я создал фиктивный package FastMM.dpk(runonly), который включает в себя тольк Fastmm4.dpk и компилирую FastMM со всеми остальными package-ами. А проекты подключают к себе уже fastmm4.dcu. Но в Delphi 2009 эта схема перестала работать. При включении FastMM4.dcu в проект, Delphi начинает ругаться и обзывать меня обидным заморским прозвищем "[DCC Fatal Error] F2051 Unit FastMM4 was compiled with a different version of System.TObject.InstanceSize". Причём, ругается он только если я собираю проект с Debug Build Configuration. С Release всё собирается нормально. К слову сказать, ошибка “Unit бла-бла was compiled with a different version of бла-бла-бла” – одна из моих самых нелюбимых ошибок.

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

Выяснилось, что проблема возникает, когда проект использует $(BDS)\Lib\Debug\ вместо $(BDS)\Lib\

А LazyDelphiBuilder, с помощью которого я и пересобираю все проекты, самой первой папкой для поиска исходников файлов всегда указывает $(BDS)\Lib\

С другими package-ами эту проблему повторить не получилось.

Получается, что System.TObject.InstanceSize в $(BDS)\Lib\ и $(BDS)\Lib\Debug разные.

Версия Дельфи: CodeGear™ Delphi® 2009  Version 12.0.3170.16989
Версия FastMM: Fast Memory Manager 4.90

Думаю, то ли разработчику FastMM написать, то ли в Quality Central, то ли вообще не заморачиваться и вписать путь до Fastmm4.pas в Library Path. А может не лениться и выяснить, откуда берётся $(BDS)\Lib\ в LazyDelphiBuilder-е?.. ;)

Update: Решил проблему созданием отдельных dcu файлов с отладочной информацией..



  • А вы знаете, сколько стоит отдать на аутсорсинг сопровождение 20 офисных компьютеров, 5 серверов и двух рабочих мест 1C? А я знаю. Тем более что цену ИТ аутсорсинга можно легко рассчитать на калькуляторе цен прямо на сайте аутсорсера.

Читать дальше..

понедельник, 27 октября 2008 г.

Сон. Embarcadero vs Borland

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

Но самое смешное - это воюющие стороны.

Одна армия воевала за Embarcadero, а вторая за Borland.
Читать дальше..

воскресенье, 26 октября 2008 г.

Текучка 5

  1. Записал видео урок о настройке Lazy Delphi Builder для создания build-a приложения[1]. Видеоурок на английском.
  2. Сделал сайт с описанием и документацией по проекту(на русском и английском): http://sites.google.com/site/lazyproject/. Всё-таки на Google Code писать документацию очень неудобно. Wiki синтаксис накладывает массу ограничений.
  3. Создал форум на UserVoce: http://lazydelphibuilder.uservoice.com/ Теперь, у Вас есть возможность предлагать новые фичи, и голосовать за старые. Также добавил себе в блог widget от UserVoice, где можно посмотреть результаты голосования. Довольно удобный сервис.
  4. Сейчас активно занимаюсь созданием третьей беты:
    1. Вчера сделал возможность отменять удаление файлов в дереве, т.е. Undo.  Помучался изрядно. Респект и уважуха программистам, решившимся реализовать в программе возможность отменять изменения(Undo). Код, который получился мне не очень нравится. Самое лучшее место для реализации Undo как мне кажется при работе с VirtualTreeView – это внутренности VirtualTreeView.
    2. Сейчас активно занимаюсь созданием консольной версии.
    3. Забавно, что никто не сообщил о заморозке проекта в случае возникновения ошибки во время компиляции.

[1] Идея которая стоит за этим уроком: при создании очередного билда, приложение должно быть полностью перекомпилировано вместе со всеми используемыми библиотеками.


Читать дальше..

Постоянные читатели