Как уменьшить размер собранного exe?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Как уменьшить размер собранного exe?

Сообщение Odyssey » 26.10.2008 00:10:51

GrayEddy писал(а):Но у MSE функционал побогаче.

С этим не поспоришь :) MSE на данный момент лучше проработан и лучше документирован, по крайней мере в рунете. Я его не осилил только из-за очень непривычного кода.
GrayEddy писал(а):Потом прочитал - так и есть, базируется на LPTK, частично, думаю, на MSE (автор часто бывает на форуме MSE).

Насчет LPTK - Graeme так и пишет, что изначально его работа основывалась на измененной версии LPTK, затем он нашел проекты fpGUI и fpGFX и решил дальше работать на их основе. Судя по коду, из LPTK все-таки многое осталось, а визуальный редактор форм (UIDesigner) был разработан на основе LPTK Visual Form Designer. На форуме MSE автор бывает часто, в силу специфики работы, но насколько я знаю, прямого обмена кодом между MSE и fpGUI нет, слишком разные оформление и структура кода. Хотя обмен идеями безусловно есть.
GrayEddy писал(а):Что значит "дружелюбный автор"? Не кусается? :)

Приветствует все идеи. При этом если они касаются архитектурных изменений и хорошо обоснованы - он готов внести такие изменения.

Кроме того, в проектах есть несколько принципиальных различий, по которым у их авторов разные точки зрения. Из того что мне известно:
1) В качестве внутренней кодировки fpGUI использует UTF-8 (ansistring), MSE - UCS 2 (widestring)
2) В fpGUI используется подход "свой хэндл для каждого виджета", в MSE - "один хэндл на форму, общий для всех виджетов этой формы"
3) fpGUI не стремится к полной совместимости с LCL/VCL, но там где возможно старается использовать похожие имена классов/полей/методов. MSE использует собственный подход, который сильно отличается от LCL/VCL.

P.S. Не хочется разжигать холивар на тему fpGUI vs MSE GUI, поэтому я старался воздерживаться от субъективных комментариев и обсуждения различий. Просто MSE GUI относительно хорошо представлен в рунете, во многом благодаря статьям и вики на форуме. Пока авторской документации по fpGUI нет, и переводить нечего, может быть сообщения на форуме помогут кому-то узнать про этот GUI framework, и может быть кому-то он пригодится.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 27.09.2009 12:13:05

Здравствуйте.
Скажите, а FPGUI ещё как-то развивается?
Скачала с SF, а под FPC 2.3.1 не компилируется.
Мелкие проблемы, типа поле после функции исправила, а вот в коде шибко не разобралась, там проблема с utf.
Кто-то из соотечественников использует в работе или, может, интересуется?
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение Sergei I. Gorelkin » 27.09.2009 13:25:47

Вроде где-то пробегало, что компиляцию под FPC 2.3.1 исправляли. Или только собирались..?
По-любому нужно качать из git-репозитария, релиз был очень давно.
Насчет развития - я в декабре прошлого года отправил к нему патч, так до сих пор и висит. Делайте выводы...
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 27.09.2009 15:52:06

Я брала с svn репозитория на sf, это не оно? git репозиторий это что-то другое?
Исходники с свн не компилируются, значит либо не исправили, либо не отуда беру. А что у Вас за исправвлленияя были, можно глянуть, вдруг мне пригодятся )))
Очень хочется как-то реанимировать проект, довести до вменяемого состояния и начать использовать.
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение Максим » 27.09.2009 18:58:06

Ambient
Судя по странице FPGUI, библиотека жива. На этой странице указаны координаты автора и адрес репозитария (Git на SF).
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Re: Как уменьшить размер собранного exe?

Сообщение debi12345 » 28.09.2009 01:44:33

Потом прочитал - так и есть, базируется на LPTK, частично, думаю, на MSE (автор часто бывает на форуме MSE).

О, Грэм иногда в поисках идеала мечется - даже до легкого холливора доходило. Он почему-то переключился с подхода "форма=окно" ( как в MSE* ) на подход "каждый_виджет_на_форме=окно", а потом вдруг узнал, что QT/KDE сделали обратный скачок - из-за достижения пределов оптимизации отрисовки для минимизации морганий при перерисовке сложных форм и видео. Типа как QT-ки сделали тестовый проект типа "форма=окно", и моргания исчезли с запасом. Для Грэма это стало неприятным сюрпризом - типа "не все предусмотрел и потому проделал уйму ненужной работы". Он случайно не откатился обратно в последних SVN ?

Добавлено спустя 14 минут:
Очень хочется как-то реанимировать проект, довести до вменяемого состояния и начать использовать.

Ну, тогда нужно замыслить большой, максимально сложный, использующий все виджеты и фичи, и неспешный юзерский БД-проект - и на нем все "вылизывать" в комплексе.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 28.09.2009 06:01:48

debi12345 писал(а):Для Грэма это стало неприятным сюрпризом - типа "не все предусмотрел и потому проделал уйму ненужной работы".

Что-то подобное я читала, причем на этом форуме по-моему - MSE-шники в негативном ключе говорили. Обзывали нехорошими словами )))
debi12345 писал(а):Он случайно не откатился обратно в последних SVN ?

В свн нет, в основной ветке подход виджет - хэндл.
а про гит-репозиторий я узнала только что, еще не смотрела.

debi12345 писал(а):Ну, тогда нужно замыслить большой, максимально сложный, использующий все виджеты и фичи, и неспешный юзерский БД-проект - и на нем все "вылизывать" в комплексе.

Попробуем ))) я типа spreadsheet/grid для лазаруса делаю, вот в fpgui тоже перенесу, тогда интересней дело пойдёт )))
===
Взяла с гит, там тоже самое, немного подправленное, но под fpc 2.3.1. не компилируется, спотыкается на строке 624 в
fpg_gdi.
Код: Выделить всё
msgp.keyboard.keychar := UTF8Encode(WideChar(wParam));

UTF8Encode объявлена в wstringh.inc как
Код: Выделить всё
function UTF8Encode(const s : WideString) : UTF8String;

msgp.keyboard.keychar имеет тип TfpgChar, который объявлен в fpg_base как
Код: Выделить всё
TfpgChar        = type string[4];

вобщем не переварил fpc 2.3.1 сей код.
Ребята, какие мысли есть по этому поводу?
Последний раз редактировалось Ambient 28.09.2009 07:36:03, всего редактировалось 1 раз.
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение Vadim » 28.09.2009 07:30:41

Ambient
Давайте объектно-ориентированную ось на Lazarus'е сварганим. Все сразу в неописуемый восторг придут... ;)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 28.09.2009 07:37:07

Vadim писал(а):Ambient
Давайте объектно-ориентированную ось на Lazarus'е сварганим. Все сразу в неописуемый восторг придут... ;)

а зачем?
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение Vadim » 28.09.2009 08:03:40

Ambient
Ну как зачем? Во-первых, приколоться, а во-вторых - нобелевская премия по программированию будет отнюдь не лишней. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 28.09.2009 08:38:57

Ну варганьте, как говорится, флаг в руки, кирку в зубы и вперёд.
У меня же более насущные и реальные задачи.

Добавлено спустя 55 секунд:
Но и премий не будет - объектно-ориентированные ОС уже есть
Так что к кирке придется присовокупить и лопату.
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Re: Как уменьшить размер собранного exe?

Сообщение debi12345 » 28.09.2009 09:56:52

utf8-манипуляции со строками 1) весьма медленные и 2) как с массивами символов не поработаешь. Если на каждом присвоении / приведении типа выполняется конверсия, то задержки реально набегают.
Плюс вроде один - полное (а не только 64К) перекрытие CJK-алфавитов. С другой стороны - китайские технократы постепенно толкают свой алфавит именно к 64K-версии. Так это еще вопрос - стоит ли "овчинка" выделки.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Как уменьшить размер собранного exe?

Сообщение Sergei I. Gorelkin » 28.09.2009 11:41:53

Ambient писал(а):Взяла с гит, там тоже самое, немного подправленное, но под fpc 2.3.1. не компилируется, спотыкается на строке 624 в fpg_gdi.Код:
msgp.keyboard.keychar := UTF8Encode(WideChar(wParam));


исправляется вот так:
Код: Выделить всё
msgp.keyboard.keychar := UTF8Encode(widestring(WideChar(wParam)));

Связано это, похоже, с появлением в 2.3.1 нового типа UnicodeString и соответственно перегруженной UTF8Encode(unicodestring). Когда она была одна, компилятор мог привести widechar к widestring сам, но когда их стало двое, он больше не знает, к чему приводить.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Как уменьшить размер собранного exe?

Сообщение debi12345 » 28.09.2009 18:03:14

Связано это, похоже, с появлением в 2.3.1 нового типа UnicodeString

Что это за тип ? Utf8 ? Если "да", то каков смысл его внедрения в свете современныых тенденций к UCS2-64K ?

PS:
Ambient : вы реально девушка ? Если "да", то как "докатились" до такой жизни типа "напрягать мозг" - то бишь программирования ? Почему спрашивваю - у нас "белоухие" ( русскоязычные ) девушки в основном в официантки и приживалки метят, за редким исключением ? Или Вы - то самое исключение ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Как уменьшить размер собранного exe?

Сообщение Ambient » 28.09.2009 19:04:16

debi12345
А в чём проблема?
У меня много подруг, которые получили техническое образование и работают по специальности. Не считаю это зазорным, тем более у женщин склад ума несколько отличается от мужского, что иногда позволяет взглянуть на проблему под нестандартным углом и найти эффективное решение.
Ну а первым программистом была Ада Лавлейс, если Вы помните.
Есть Ольга Власова, разработчик VolgaDB. Ну или загляните на Королевство Дельфи и всякие сомнения сразу отпадут.
А может Вы, друг мой, просто шовинист?
Аватара пользователя
Ambient
новенький
 
Сообщения: 24
Зарегистрирован: 27.09.2009 10:51:17

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

Рейтинг@Mail.ru