В Windows Vista во многих MDI приложениях часто наблюдается баг (субъективно – в SP1/SP2 значительно реже) при максимизации дочернего окна – оно занимает не всю отведенную ему область. Справа остается небольшое пространство. Читать далее…
Delphi, Советы, Статьи Delphi, MDI, Windows Vista
Последнее время я занимался спасением архива сайта http://nevzorov.org, принадлежавшего погибшему Виталию Невзорову. На этом сайте больше 300 000 файлов. И, как оказалось, Total Commander, мой любимый файл-менеджер, плохо справляется с проверкой контрольных сумм такого количества файлов (файл с контрольными суммами он сгенерировал нормально, он занял почти 40 мегабайт). Такое впечатление, что он просто почему-то зависает на этапе загрузки файла – до проверки контрольных сумм даже не доходит.
Поэтому пришлось написать свою программу, которой удалось проверить контрольные суммы всего этого архива. И решил выложить ее вместе с исходными кодами, в качестве примера и в память о Виталие Невзорове (Vit-е). Код MD5 был взят из его Delphi Russian Knowledge Base.
http://mikesoft.ws/samples/md5-crc-calculator/
Delphi, Новости, Примеры Delphi, FileEnum, MD5, Total Commander, VirtualTreeView
Добавлен пример работы с модулем FileEnum. Небольшая полезная программа, которая удаляет папки резервных копий IDE Delphi («__history»).
http://mikesoft.ws/components/fileenum/
Delphi, Новости, Примеры Delphi, FileEnum
Все кто учил язык BASIC, наверно помнят оператор безусловного перехода GOTO. Почему BASIC? Не только он, конечно, просто в ранних реализациях BASIC (например, Microsoft QuickBasic, входивший в свое время в поставку MS-DOS) он применялся действительно часто. Ведь там не было ни классов, ни операторов обрыва циклов и выполнения вроде Break, Exit, Continue, а также исключений. В современных же языках с полноценными средствами структурного программирования, использование Goto считается крайне дурным тоном, так как затрудняет чтение и делает код непредсказуемым. Доводы против оператора goto четко выписаны в одноименной статье Эдсгера Дейкстры. Но я решил идти не по тропе теоретических изысканий, а показать на практике, что код БЕЗ GOTO может быть не только красивее и логичнее, но и в разы быстрее.
Читать далее…
Delphi, Статьи Delphi, программирование
Во время разработки своей новой программы я решил вплотную взглянуть на новый компонент Delphi 2007 — TFileOpenDialog, который инкапсулирует современный диалог открытия файлов в Windows Vista. Те функции, что я в нем увидел, меня приятно удивили. Читать далее…
Советы, Статьи Delphi, TFileOpenDialog, Windows Vista
С грустью только что узнал, что в imouse.pas CodeGear RAD Studio 2007 остались старые баги с неосвобождаемой памятью, что конечно не особо страшно, но неприятно и может здорово затруднить отладку при ReportMemoryLeaksOnShutdown := True. Поэтому решил выложить свой, давно уже исправленный на свой вкус, модуль imouse, который я назвал MousePan.
Скачать модифицированный вариант можно здесь:
http://mikesoft.ws/components/mousepan/
Delphi, Советы Delphi, IntelliMouse
В дизайне современных приложений меню занимает уже далеко не главное место, уступив первенство панелям инструментов. Такие тенденции наблюдаются например в Internet Explorer 7 и Windows Vista Explorer (Проводник).

Читать далее…
Статьи Delphi
Наверняка перед многими когда-либо вставала задача: открыть ряд файлов одного типа, но расположенных в различных подкаталогах.
Читать далее…
Delphi, Статьи Delphi, TFileOpenDialog, Windows Vista
Рано или поздно в любых, более или менее серьезных проектах встает необходимость в автоматической компиляции или компиляции в один шаг. Зачем? Самая элементарная причина: чтобы быстро скомпилировать проект, не открывая его в среде. Например, был разработан крупный проект, включающий не один десяток компонентов, модулей, библиотек. Среда во время разработки сильно обросла посторонними и собственными компонентами и становится трудно различить, какой компонент используется в данном проекте, а какой — нет. Переносимости у проекта в данном случае никакой. На другом компьютере с установленной средой Delphi его не получится скомпилировать: придется переносить и устанавливать все необходимые компоненты, причем вспоминать, какой из них нужен, а какой нет. Это крайне неудобно, а если еще принять во внимание, что данный процесс подвержен ошибкам, то становится совсем невесело.
Читать далее…
Delphi, Советы, Статьи Delphi, MSBuild
Многие из нас пользуются мультимедийными или расширенными клавиатурами, где кроме обычных 100 с чем-то клавиш есть клавиши, упрощающие доступ к часто используемым функциям. Например, навигацию в браузере (Home, Back, Forward, Refresh, Stop), проигрывание музыки и фильмов в плеере, вызов калькулятора, почтового клиента и т.д.
Эти дополнительные клавиши действительно часто упрощают вызов постоянно используемых действий. Как же сделать поддержку этих клавиш в Delphi, чтобы пользователю было удобнее пользоваться нашей программой? Читать далее…
Delphi, Статьи Delphi, клавиатура