Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Открыть новую тему     Написать ответ в эту тему

karlss0n



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MGAlex
 
Проблема заключалась в том, что при изменении RTL требуется полная перекомпиляция VCL (всё что зависит от RTL). Vcl.Imaging.jpeg - зависит, следовательно и перекомпилировать нужно.
 
Собственно задачу я решил, сырцы поставились вместе с cbuilder, скомпилял с помощью (может кому пригодится)
 
bcc32 -c -O2 -Oc -OS -d -w-par -w-aus -ff -pr -a4 -Ov -O -I..\..\tools\include *.c
 
В результате полностью пересобрать RTL и VCL удалось.
 
Я честно убедился, что RTTI теперь занимает сильно меньше и файл теперь вместо 69 метров - 67. Вернул всё обратно

Всего записей: 136 | Зарегистр. 12-07-2004 | Отправлено: 17:35 19-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
RTTI теперь занимает сильно меньше и файл теперь вместо 69 метров - 67


Серьезное уменьшение.
Я читал и о других способах уменьшения размера, путем отключения чего-то, но все это от лукавого.
 
Кстати, может, кто не обратил внимания, хотя вряд ли, конечный файл будет меньше, если выставить в Build Configuration Release, а не Debug. Просто я даже не сразу обратил на это внимание.
Если проект начинали писать на более ранних версиях, то там тоже без разницы.
Я вот, например, свой проект начинал еще в BDS 2006 и с переходом на новые версии не обратил на этот вниманс внимание.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 18:14 19-08-2013 | Исправлено: MGAlex, 18:15 19-08-2013
karlss0n



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MGAlex

Цитата:
Серьезное уменьшение.  
Я читал и о других способах уменьшения размера, путем отключения чего-то, но все это от лукавого.  
 
Кстати, может, кто не обратил внимания, хотя вряд ли, конечный файл будет меньше, если выставить в Build Configuration Release, а не Debug. Просто я даже не сразу обратил на это внимание.  
Если проект начинали писать на более ранних версиях, то там тоже без разницы.  
Я вот, например, свой проект начинал еще в BDS 2006 и с переходом на новые версии не обратил на этот вниманс внимание.

 
Ну так RTTI это и есть "чего-то", что мы выключили =))))
 
Конфигурация Release, такой размер дают "шкуры" от DevExpress.

Всего записей: 136 | Зарегистр. 12-07-2004 | Отправлено: 18:30 19-08-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ну так убей шкуры
 
а вообще, вставлять девок, а потом плакаться на большой размер и пытаться отрезать по кусочку... как-то это само себе противоречит

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 18:46 19-08-2013 | Исправлено: Arioch1, 18:47 19-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Проблема заключалась в том, что при изменении RTL требуется полная перекомпиляция VCL (всё что зависит от RTL).

Использую Vcl.Imaging.jpeg, Vcl.Imaging.pngimage и Vcl.Imaging.GIFImg - всё работает и без перекомпиляции VCL...

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 18:49 19-08-2013
karlss0n



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mikanoshi

Цитата:
Использую Vcl.Imaging.jpeg, Vcl.Imaging.pngimage и Vcl.Imaging.GIFImg - всё работает и без перекомпиляции VCL...

 
У меня ошибку выдаёт при билде, говорит модуль скомпилирован с другой версией system.dcu. Вы уверены что у Вас новый system.dcu подхватывается?
 
Вы его поверх старого копировали в Lib или как?

Всего записей: 136 | Зарегистр. 12-07-2004 | Отправлено: 19:17 19-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
karlss0n
Не копировал, dcu упали в другую папку, а в библиотеках указал путь к ней, перед оригинальным $(BDSLIB)\$(Platform)\release

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 19:40 19-08-2013
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MGAlex
 

Цитата:
Пусть и студии придуают какую-то архивацию, к примеру

 
"Все придумано до нас" (ц) - UPX или вариации на тему паковщика)) К тому же никто не запрещает делать сильно пакованный SFX (7zip или какие там мощные zip нынче есть) - и его распространять как дистрибутив, который сам при первом запуске в нужное место распаковывается, обновляется и тп.

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 12:48 20-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну это понятно. Речь идет о конечном файле, без доаолнительных манипуляций и программ.
 
Вот я для примера взял файл doc размером 3,35 Мб. Сохранил его в docx. Размер получился 3,30 Мб. Сжал docx rar'ом и размер сжатого файла получился 1,01 Мб.
 
Т.е., мы видим, что docx можно еще сжать больше чем в 3 раза.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 13:02 20-08-2013
karlss0n



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks

Цитата:
UPX или вариации на тему паковщика))

 
Не всегда это панацея. У меня задача как можно быстрее запуститься с сетевого диска. Когда файл 60 метров + dll 40 метров, то 100 мегабайт это уже ~10 секунд только на загрузку по сети + AVP.
 
AVP сильнее задумывается над UPX. Сам UPX не мгновенно распоковывается. Ну и не всё выживает после его упаковки, Некоторые dll после упаковки не работают.

Всего записей: 136 | Зарегистр. 12-07-2004 | Отправлено: 13:28 20-08-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 docx можно еще сжать

А если его ещё и распаковать и сжимат ьисходники, да в solid-архив, да с сортировкой по типам (не знаю, делает ли её RAR)...
 
Кстати, так работает installAware - он MSI и CAB'ы распаковывает и жмёт 7-zip'ом ,а перед установкой создает их заново.
 

Цитата:
Сам UPX не мгновенно распоковывается

Это вобщем ерунда...
Влияет все же AVP, который не может запомнить "этот файл я уже проверял", потому что он на сетевом диске.
И плюс к тому, непакованная DLL/BPL может вообще не загружаться с диска пока программа реально не вызовет из неё какую-нибудь функцию (может быть вообще никогда).
 
PS: пара коанов для новичков, из другого форума
http://imgur.com/wb4Uop8 и http://imgur.com/5z3GMQT  

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 13:48 20-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Сам UPX не мгновенно распоковывается

10 метров в секунду на пне 133 Распаковку вообще не стоит считать, она практически мгновенная. Только АВ и могут тормозить, ложно определять как небезопасный файл могут тоже только самые паршивые АВ, так что я минусов в UPX не вижу, всегда жму с ultra-brute.

Всего записей: 66 | Зарегистр. 13-06-2011 | Отправлено: 16:15 20-08-2013
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
>пара коанов для новичков, из другого форума  
багофичи кодогенератора (eax как результат, 1-й параметр и лок. переменная)? на х64 по идее не должно воспроизводиться..

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 17:24 20-08-2013 | Исправлено: A_V, 17:29 20-08-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет. Дело не в регистрах и думаю на x64 будет то же самое.
 
http://rghost.ru/48242831
http://rghost.ru/48243341

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 20:05 20-08-2013
SolidSnakeRU

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно как-то вызвать функцию передав только обязательные параметры?
Например, такую функцию: function test(param1:integer = 10; param2:integer);
Так и навязывается синтаксис типа test(,1) где первый параметр пропущен.
 
ПС: перегруженные функции не вариант.

Всего записей: 248 | Зарегистр. 27-08-2008 | Отправлено: 20:44 20-08-2013 | Исправлено: SolidSnakeRU, 20:45 20-08-2013
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно, но необязательные - в конце!

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 20:48 20-08-2013
A_V

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
а, точно, Result в данном случае - неявный var параметр, в х64 тоже. ну как-бы таки багофича, и через регистр он туда и уходит

Всего записей: 770 | Зарегистр. 07-04-2002 | Отправлено: 01:26 21-08-2013
Aqel



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как вернуть вид delphi 2007 - без окна проекта?
И как добавить русификацию?

Всего записей: 211 | Зарегистр. 22-10-2009 | Отправлено: 21:34 21-08-2013 | Исправлено: Aqel, 21:35 21-08-2013
MGAlex



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aqel
Вы имеете в виду классический Delphi 7? Выберите стиль Classic Unlocked
 
Русификатор посмотрите здесь: http://cwer.ws/node/324696/

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 21:45 21-08-2013
ego666

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В однопотоке ShowModal завешивает всю программу - интуитивно до жути.
В многопотоке очень опасно  в другом потоке создать форму или обратиться к уже созданной. Очень интуитивно.
В неюникодной дельфи при копировании русского текста с контрола в clipboard надо клавиатуру на русский переключать (или патчить VCL) - очень интуитивно.
Форма освобождает непринадлежащие ей контролы (если они на ней лежат) - тоже интуитивно весьма...
Чтобы добавить пункт между двумя TMenuItem нужно у них найти родителя. А для TMAinMenu нужно найти виртуального родителя, которого не существует, но он есть. Ооочень интуитивно.
Про дополнение VCL (например вернуть в TMainMenu HelpBreak или добавить в чей-то TDataSet master-detail) я молчу - там интуитивность так и прёт, но это немного другой уровень.  

Clipboard - это кагбы проблема не Delphi, а Винды, которая не определяла кодировку текста в буфере.
Про остальное - ну выдавил каплю дёгтя в бочку? ну и что? ну и ничего.
 
Добавлено:

Цитата:
Форма освобождает непринадлежащие ей контролы (если они на ней лежат) - тоже интуитивно весьма...  

Не понял, имеется ввиду Owner или Parent? И что не интуитивного?
И ещё раз про остальное: VCL это не сферичесий конь в вакууме - просто так захотеть и написать её идеально не выйдет.

Всего записей: 77 | Зарегистр. 14-06-2013 | Отправлено: 11:19 22-08-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE4


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru