Статьи и заметкиVersion info и иконка приложения в Lazarus.После продолжительных поисков альтернативы среде разработки Delphi мой выбор остановился на свободно распространяемом продукте под названием Lazarus. Данный продукт включает в себя среду разработки (собственно Lazarus) и компилятор FreePascal, также свободно распространяемый. После успешных попыток создания новых проектов, я попытался перенести в Lazarus уже готовый проект, разработанный в Delphi, что так же окончилось успехом, за исключением некоторых мелких моментов.
Итак, выбор был сделан и отныне все свои новые проекты я разрабатывал в Lazarus. Конечно, по сравнению с Delphi у него есть много недостатков, пока мало компонентов, входящих в комплект поставки, но продукт развивается и, я надеюсь, у него прекрасное будущее. Об одной проблеме, с которой я столкнулся при переходе на Lazarus, я хочу написать. С самого начала у меня не получалось вставить в проект иконку, которая отображалась бы в заголовке окна, и информацию о версии. Если без иконки можно было бы и обойтись, то без версии - очень тяжело, так как у меня есть несколько динамично развивающихся проектов и, чтобы отлавливать в них ошибки у заказчиков, необходимо знать версию используемой программы. При включении в свойствах проекта опции "Include Version Info in executable" проект переставал компилироваться - появлялось сообщение об ошибке. При добавлении картинки в свойство Icon формы ничего не происходило - форма в скомпилированном приложении так и оставалось без иконки. Почитав форумы, я нашел способ добавить иконку - создать файл app.res, добавить в него иконку с помощью редактора ресурсов, а в файл проекта добавить строчку {$R app.res}. Проблема с иконкой была решена. Для решения проблемы с версией я начал разбираться из-за чего возникает ошибка при компиляции. После различных экспериментов выяснилось, что не удается запустить файл windres.exe. После добавления в переменную окружения path пути к этому файлу (в моем случае это c:\lazarus\fpc\2.0.4\bin\i386-win32), информация о версии стала добавляться в файл приложения. Но после этого опять пропала иконка приложения, так как файл ресурсов перезаписывался при каждой компиляции. В итоге, после изучения интернета и копания в исходниках, я нашел решение, которое позволило убить сразу двух зайцев: отредактировал файл app.rc. Файл получился вот таким: MAINICON ICON "x:\projects\app\icon.ico" 1 VERSIONINFO FILEVERSION 1,0,0,57 PRODUCTVERSION 1,0,0,46 { BLOCK "StringFileInfo" { BLOCK "040904E4" { VALUE "Comments", "\000" VALUE "CompanyName", "\000" VALUE "FileDescription", "\000" VALUE "FileVersion", "1.0.0.57\000" VALUE "InternalName", "\000" VALUE "LegalCopyright", "(с) VoLNa-soft 2007\000" VALUE "LegalTrademarks", "\000" VALUE "OriginalFilename", "\000" VALUE "ProductName", "\000" VALUE "ProductVersion", "1.0.0.46\000" } } BLOCK "VarFileInfo" { VALUE "Translation", 0x0409, 0x04E4 } } После этого при компиляции в исполняемый файл стала включаться информация о версии и иконка приложения. http://www.volna-soft.ru 16.05.2007 г. © 2007-2019 ООО "Волна-софт". |
||