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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Mikanoshi



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

Цитата:
Мне конечно пофиг, но как у тебя потом проект собрался с одной измененной dcu'шкой?

Без понятия)) запустил dcc32.exe с параметрами и System.pas, новые dcu появились, их скопировал в lib\win32\release, в проекте выбран этот профиль.
 
Добавлено:
Пересобрал, System.Rtti стал в 2 раза меньше, что-то ещё где-то надо изменить похоже...

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



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

Цитата:
Ну 21 век, скоро всё будет 64-битное, так что всё равно придётся.

 
64 бита не даёт какое-то подавляющее преимущество, поэтому вытеснение будет долгое и нудное. ИМХО сейчас совершенно необязательно гнаться за 64 битами...

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
karlss0n
У меня шелл применяет скины только окнам 64-битных прог, для меня этого достаточно, чтобы желать 64-битную прогу и переписать под неё все плагины

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



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

Цитата:
Пересобрал, System.Rtti стал в 2 раза меньше, что-то ещё где-то надо изменить похоже...

А это уже нужно смотреть, где этот rtti используется. В rtl всего три (classes, objauto, typinfo) модуля подключают его. В classes он используется для сериализации, в objauto для динамического вызова методов, в typinfo в методах используемых сериализатором. За рамками rtl он еще используется в биндингах, bd, и обезьяне. Теперь смотри, какой код ты используешь у себя, хотя 100 килобайт на код rtti.pas не так уж и много - иконка весит больше  

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 20:37 18-08-2013
Mikanoshi



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

Цитата:
иконка весит больше

нифига у тебя иконки

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



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

Цитата:
нифига у тебя иконки  

Да это не у меня, это дефолтная иконка дельфей весит почти 300Кб. Что в общем нормально, начиная с висты.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 21:04 18-08-2013
MGAlex



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

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



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

Цитата:
Я думаю, что все эти операции по уменьшению размера ни к чему хорошему не приведут.

Размер-то уменьшается, а это уже хорошо. И это, надо заметить, не хаки, а вполне законный путь. А вот дефолтное наличие RTTI для приватных членов это 100% не айс.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 21:28 18-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Отлично! Почистил Classes и TypInfo, Rtti полностью исчез из dll
Размер на 1.1% больше, чем в ХЕ2. Если ничего не поломалось, то будет вообще замечательно)

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



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

Цитата:
Почистил Classes и TypInfo

А у тебя прямо или косвенно WriteComponent/WriteDescendent не вызывается случаем? Просто в дефолтном проекте с одной формой методы из system.rtti не задействуются безо всяких чисток.

Всего записей: 292 | Зарегистр. 30-11-2011 | Отправлено: 22:08 18-08-2013
Mikanoshi



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
WriteComponent используется, хотя сейчас смотрю на код и похоже этот код лишний)) Но всё равно с новым RTL работает нормально, я context удалил там какой-то в функции только.

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



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

Цитата:
Вот в MS Office с новым форматом docx, xlsx и т.д. размер файла стал меньше, чем doc, xls и др. И это показатель, на мой взгляд.

 
Вряд ли они этого добивались. Они просто второпях копировали OpenOffice.org, который к тому времени прошёл ECMA, шёл в ISO и мог реально стать единственным международным стандартом.
 
Добавлено:

Цитата:
а зачем?

 
ДУмаю, в основном - интеграция с оболочкой - разного рода Shell Extensions.
 
Добавлено:

Цитата:
Я думаю, что все эти операции по уменьшению размера ни к чему хорошему не приведут.

 
Ну я когда-то писал 2Кб DLL на D5
 
Такого на XE4 наверное действительно не повторить
 
Добавлено:

Цитата:
Недаром WinForms была слизана с VCL

 
Хммм... а не потому просто, что их писал один и тот же человек ?
 

Цитата:
vcl почти гениален по интуитивности и общей архитектуре.

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

Цитата:
там таски зависимые друг от друга.

То есть тебе нужен планировщик. Да, OTL планировщиком не является, я тоже поначалу пытался из неё это сделать, а потом просто понял, что она не для этого.
 
Вот запускается винда, грузит драйвера, с учётом зависимостей. Занимается этим NT Services Manager. (На линуксах - init-scriptы или какая-то из десятка их подмен). Но мы же не говорим, что олт этого Service Manager стал библиотекой для распараллеливания.  
 
И твой планировщик тоже ей не является - он для многопточностей клиент, а не провайдер. Его фнукции учёт и разрешение зависимостей, а многопоточность он *использует* и может использовтаь любую - TThread, BeginThread, AsyncCalls, OTL, whatever
 
Собственно, я согласен что для Delphi нет хорошего планировщика, может быть это слишком индивидуальная задача дял one size fits all библиотеки.
Но OTL - библиотека для распараллеливания поточных вычислений, и если в ней чего-то не хватает - так это поддержки и учёта разных исполнителей, в первую очередь GPGPU, а также дисков, сетевых нод.
 

Цитата:
 А проверка статуса  в многопоточном окружении -- требует блокировки

Пардон? прочитать булевскую переменную - типа TObject.Disposed, TThread.Terminated, TApplication.Terminated - требуйет блокировки???
 

Цитата:
Плюс к тому, нулевая кроссплатформенность из-за Windows Messaging

Это да. Но что характерно, никто на линукс или MacOS не перетащил. То ли не хотят, то ли не могут.
 

Цитата:
 только в реальном мире задачи не столь однотипные

Ну так для этих задач OTL и не подходит.
 
Недаром он так вылизывал методы создания задач в два три предложения - OTL решает мелкие по коду, но затратные по данным вычисления. Графы зависимостей в неё не входят.

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 10:46 19-08-2013
karlss0n



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

Цитата:
В system.pas отключаешь дефолтные настройки RTTI и включаешь минимальные. Там по комментариям все понятно. Потом собираешь rtl тем самым батником или открыв пакет buildWinRtl. dcu'хи новой rtl падают в \общие документы\RAD Studio\lib\win\[release|debug]. Потом в своем проекте в путях поиска прописываешь этот самый путь с новой rtl. Если проект тянет за собой еще и vlc, в пути поиска прописываешь путь к исходникам vcl - она тоже должна будет пересобраться. Не забывать, что настройки для release и debug разные. Чтобы быть уверенным, что ты собираешь проект со своей измененной rtl, вsystem.pas можно добавить какую-нибудь глобальную функцию, а в своем проекты попробовать её вызвать - если проект соберется, значит rtl твоя.  

 
Если так делать, то не находтся jdapimin.obj
который нужен для перекомпиляции VCL.Imaging.Jpeg
 
Где его искать?

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
karlss0n
В VCL нет упоминания о RTTI, можно не перекомпилировать. У меня работает и с родными dcu.

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karlss0n
Здесь описана подобная проблема:
http://stackoverflow.com/questions/8432967/i-cant-work-with-jpeg-in-delphi-xe2

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



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

Цитата:
Здесь описана подобная проблема:  
http://stackoverflow.com/questions/8432967/i-cant-work-with-jpeg-in-delphi-xe2

 
Там два решения описаны -  
1. найти эти файлы и добавить в путь
2. не перекомпилировать VCL
 
Но задача стоит перекомпилировать VCL и файлов этих нет. У меня стоит XE2, в ней эти файлы есть (и сырцы на c, и скомпилированные в obj). Попробовал их, но результат, как и ожидалось - не хватает функций.
 
Доставил C++ Builder и вместе с ним доставились сырцы на библиотеку JPEG. Видимо логика если сырцы на c, то без него не скомпилять, а следовательно не фиг их ставить (хотя скомпиленные obj могли бы и с Delphi ставить).

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
можно, наверное, и выкинуть vcljpeg было бы. Взять вметсо него из graphicEx или из Vampyre Imaging

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
karlss0n
Решение там описывается следующим образом:
 

Цитата:
I suspect that your .dpr file contains references to a file named Vcl.Imaging.jpeg.pas. Solve the problem by removing the references to Vcl.Imaging.jpeg.pas from your .dpr file. Another explanation is that you have a source file named Vcl.Imaging.jpeg.pas in your search path.

 
Я подозреваю, что Ваш .dpr файл содержит ссылки на файл с именем Vcl.Imaging.jpeg.pas. Проблема решается путем удаления ссылок на Vcl.Imaging.jpeg.pas из Вашего .dpr файла. Либо в пути поиска указан файл с именем Vcl.Imaging.jpeg.pas
 
Видимо, имеется в виду, что в Library pass указан путь к этому файлу.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 16:33 19-08-2013 | Исправлено: MGAlex, 16:34 19-08-2013
deks



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

Цитата:
Плюс к тому, нулевая кроссплатформенность из-за Windows Messaging
 
Это да. Но что характерно, никто на линукс или MacOS не перетащил. То ли не хотят, то ли не могут.

 
У Gabr нету Mac - из-за этого проблемы с OSX. Технических проблем перетащить OTL на OSX нету. Сторонних людей, кромет Gabr, которые бы активно коммитили в OTL не замечено, поэтому если Gabr  не может, то тупик))
 
Добавлено:

Цитата:
Вот в MS Office с новым форматом docx, xlsx и т.д. размер файла стал меньше, чем doc, xls и др. И это показатель, на мой взгляд.

 
Это показатель, только того, что тело документа вроде бы ZIP пакуется. Просто по сравнению с временем проектирования формата DOC выросли объемы доступной оперативной памяти, поэтому распаковка ZIP уже не проблема.

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



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

Цитата:
Это показатель, только того, что тело документа вроде бы ZIP пакуется. Просто по сравнению с временем проектирования формата DOC выросли объемы доступной оперативной памяти, поэтому распаковка ZIP уже не проблема.

На самом деле не важно за счет чего добились уменьшения размера, важен конечный результат.
Пусть и студии придуают какую-то архивацию, к примеру.
 
Я согласен, что сейчас размер +/- 10 Мб роли не играет, но все же.

Всего записей: 1855 | Зарегистр. 12-10-2007 | Отправлено: 17:31 19-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