Перейти к содержанию
Fire Monkey от А до Я

AngryOwl

Пользователи
  • Постов

    394
  • Зарегистрирован

  • Посещение

  • Победитель дней

    45

Активность репутации

  1. Like
    AngryOwl отреагировална Gingercat в RAD 11 на подходе?   
    Доброго времени суток. Навеяно постом SergeIT.
    Несмотря на кучу недостатков, по большей части связанных именно с с++ (удобство работы в студии, отсутствие нормального дополнения и тд), на данный момент абракадабра вне конкуренции по скорости и простоте работы. Не могу сказать про кроссплатформенность, а вот разработка под десктоп - да. Безусловно, C# под десктоп здорово, но когда критична скорость обработки - сами понимаете. Так уж сложилось, что я привязан к различным видам обработки графики. Так вот - чего бы там не говорили про оптимизацию кода (лишние вызовы в ассемблере и тд), на данный момент из коробки, быстрее всего Rad Studio. Конечно, мне далеко даже до среднего уровня с++, но все же. 
     
    Работа в Visual Studio с битмапами еще тот геморой (одно заполнение структуры bitmap))) При использовании нативных! BitBlt, Dib-секций и еще множества различных способов, скорость обработки ниже, чем при использовании обертки TBitmap. Полный разбор fullHd картинки  в Visual Studio занимает от 7 до 14 мс, при этом в студии 3 - 6. Проверенно тоннами тестов.
     
    Конечно, можно сказать - OpenCv. Да, пока вы решаете стандартные задачи по обработке. Как только шаг в сторону - начинаешь понимать, что проще самому писать, нежели пользоваться готовым.
     
    Ну и про Qt. Очень удобно - чтобы не говорили. Но есть несколько но: 1 - хвост библиотек (статичная сборка возможна, но там далеко не все гладко). 2 - жесточайшее навязывание своих стандартов - это уже не с а сQt. Не знаю, как дела с кроссплатформенностью - не пробовал. По скорости на посередине. При этом, использование нативных функций винды (именно без костылей) карается (понятно, кроссплатформенность). Однако, либо пользоваться bitmapom нативным (тогда какой смысл вообще в Qt, если все нужно выписывать ручками), либо... bitBlt не возможен (как и множество другого) - вырезали, остается использование довольно медленного QImage, с кучей оговорок.
     
    В Rad Studio - пожалуйте: нужно - дернул из GDI функцию, нужно - из среды, нужен кусок ассемблера - пожалуйста. Про ассемблер в Qt умолчу)))
     
    Вот и выходит, что Rad Studio на данный момент, по сути лучшая. Прошу не судить строго (далеко не профессионал в плюсах), но опыт кой какой имеется. Так что пущай развиваются))
  2. Like
    AngryOwl отреагировална SergeyIT в RAD 11 на подходе?   
    Вы меня простите, Господа. Но позвольте высказать мнение человека нового в Object Pascal, из .NET пришедшего.
    Тьфу-тьфу, дай им всем Бог в Embarcadero доброго здоровья и процветания. Оглянитесь вокруг, ничего ж и близкого нет, даже отдаленно напоминающего того, к чему пришли в Embarcadero за последние годы с кроссплатформенностью! Уму не постижимо.
    Взять Java (хоть к теме напрямую не относится) - на Android идет сырец-порт JavaFX, сервисы и плюшки - за деньги в частном порядке.
    Xamarin видели? Хотите поднять настроение - погуглите. Выглядит это так: MAMA MILA RAMU... С# по Java (что-то дико нелепое). Если человек знает что такое Activity, зачем ему C#? Или Java менее элегантней (учитывая полное родство). MONO - мычание из преисподней, GUI нет фактически. Да вот возьмите хотя бы Unity 3D. Как-то на конференции человек оттуда проговорился: Вы ведь не знаете - мы 90% времени правим баги платформозависимые, чтобы у Вас почти все работало. У Microsoft судороги предсмертные в части всего, что не Windows 10. Почитать куда их бросает каждый месяц - жуть. Кто-то испрашивал по поводу поддержки Windows Phone в одном из топиков. Да даже если бы технически это было возможно, то они ж меняют API каждые полгода на него: то Windows Phone Silverlight, то HTML5, то DirectX C++ (взамен XNA Windows Phone 7)... Поддержка разработчиков ушла в StackOverflow, MSDN скоро рекламу начнет размещать о таблетках для мужчин.
    Ну, кто еще остался?
    Qt? Это не моя тема. Мне трудно думать про указатели, когда надо думать про логику. Увы, не дано... Не владею темой.
    Так что пока нас не слишком много в сравнении с Китаем, есть шанс, что быстро ответят на заданный вопрос... Скоро эта халява закончится...
  3. Like
    AngryOwl отреагировална Andrey Efimov в RAD 11 на подходе?   
    Сами себе противоречите, хотите всё и сразу, но при этом чтобы приложение не "пухло". Это невозможно... Для примера, вспомните сколько раньше весили приложения для Андроида, когда было мало функционала (XE5, XE6), но с появлением новых функций, которые просил народ, размер естественно увеличивался. Сейчас приложение с сервисом весит примерно 40 МБ, хотя с сегодняшним развитием технологий и повсеместной установкой модулей памяти на 16 ГБ и более, увеличение не так заметно. Да и к тому же некоторые очень популярные (во всём мире) приложения весят намного больше.
  4. Like
    AngryOwl отреагировална Kitty в RAD 11 на подходе?   
    Лучше пусть приложения в новой студии для Андроид станут стабильными и быстыми и без падений студии и приложений (и в дельфи и С++ среде).
    А новые не перспективные рынки лучше не охватывать: http://www.theverge.com/2016/1/28/10864034/windows-phone-is-dead
    Навести порядок в том, что есть, лучше.
  5. Like
    AngryOwl отреагировална Brovin Yaroslav в [TfgRichEdit]- компонент редактирования текста с поддержкой форматирования   
    Пока не знаю. Недавно оптимизировал скорость отрисовки. Теперь у меня документ занимает в ~2 раз меньше узлов дерева, чем до оптимизации. Сейчас работаю над оптимизацией плавной прокрутки на мобильных платформах. 
  6. Like
    AngryOwl отреагировална Brovin Yaroslav в [TEdit] [Android] Можно ли изменить высоту TEdit?   
    Добрый вечер,
    Посмотрите тему: Почему для некоторых контролов нельзя поменять высоту или ширину?  
  7. Like
    AngryOwl отреагировална Равиль Зарипов (ZuBy) в Альтернатива FMX   
    Такой вопрос глупо задавать на форуме который посвящён только fmx. Здесь нет наверное людей которые для стеба сидят. А вообще, кто вам мешает изучать разные языки и фреймворки. Что душе будет ближе и рукам удобней то и выбирайте.
  8. Like
    AngryOwl отреагировална Brovin Yaroslav в Можно ли уменьшить размер приложения для андроида?   
    Если говорить о размере приложения. То первоначально нужно понять, что входить в состав пакета? Затем определить, что нужно и не нужно?
     
    Давайте посмотрим на примере состав пакета небольшого Андроида приложения, написанного в RAD Studio XE5 Delphi. В качестве примера, я взял приложение PhotoEditorDemo, доступный на официальном Open Source проекте примеров RAD Studio XE5
     
    Это пример кроссплатформенного простого фоторедактора:
    Описание примера: http://docwiki.embarcadero.com/CodeExamples/XE5/en/FMX.Mobile.PhotoEditorDemo_Sample_(Delphi) Исходники: http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RadStudio_XE5_Update/FireMonkeyMobile/Delphi/PhotoEditorDemo/ Размер сжатого приложения
    Собираем приложение и смотрим на результирующий пакет PhotoEditorDemo.apk (Он располагается в директории .\Android\Debug\PhotoEditorDemo\bin относительно корня проекта).
     
    После сборки приложения его размер ~6 760 КБ (в зависимости от Debug or Release сборки). Это размер сжатого пакета нативного приложения.
     
    Размер распакованного приложения
    Если мы распакуем ZIP архиватором этот файл, то увидим его содержание:

    В распакованном виде, пакет занимает 21,7 МБ.
     
    Состав пакета
    Что же входит в его состав:
    lib - место хранения собранных натиных библиотек приложения. Поскольку приложение нативное, то оно работает на основании библиотеки .so. res - место хранения ресурсов приложения (картинки, иконки и тд) META-INF - хранение подписи приложения, контрольные суммы файлов ресурсов (картинок, звуков и т.д.) AndroidManifest.xml - манифест приложения (расширенный аналог VersionInfo в Windows) classes.dex - файл с java реализацией дополнительного функционала FireMonkey. resources.arsc - таблица ресурсов. В этом файле собраны xml-описания всех ресурсов. Самый значительный вклад в размер пакета вносят:
    libPhotoEditorDemo.so (20 060 КБ) - непосредственно сам бинарник приложения classes.dex (1 948 КБ) - частичная реализация FireMonkey на java. Размер самого приложения большой потому, что включает в себя полностью все Delphi библиотеки, которые используется FireMonkey. А это:
    RTL Хедеры для доступа к Android API Нативные стили для Android (три стиля - 1х, 1.5x, 2х, 3х скалирования экрана). Каждый стиль содержит исходную png картинку нативного стиля. Фильтры и эффекты FireMonkey Вся остальная реализация FireMonkey. Довольно большой набор того, что нужно включить в пакет и тяжело выбросить.
     
    Если говорить о приложении написанном в Eclipse, то приложение включает в себя только часть пользовательского кода. И размер мал за счет того, что весь Android API находится перманентно на самом устройстве (не в пакете).
     
    Если бы используемая часть библиотек FireMonkey находилась на каждом устройстве, то размер приложения сократился бы раза в четыре. 
     
    Вывод
    Размер установочного пакета приложения, написанного на FireMonkey не большой для нативных приложений порядка 6 760 КБ для реализации простого фоторедактора (Хотя для кого-то это может быть много). В установленном виде приложение занимает от 20 000 КБ. Основная причина полная интеграция используемых библиотек в пакет приложения. Вероятность уменьшить этот размер маловероятна. Однако увеличение функционала приложения не так сказывается на дальнейший рост приложения.
     
    Можно попробовать сделать усеченные библиотеки, сократить функциональность. Но это не даст ощутимого уменьшения результирующего размера приложения. 
     
    На сколько важен размер приложения для конкретной работы приложения каждый заказчик решает сам.
     
    P.S. Цель этого ответа дать подробный ответ о причинах такого размера, а не попытка вызвать обсуждение на тему сравнения сред разработки. Каждый framework обладает своими достоинствами и недостатками. И выбор средства разработки диктуется совокупностью требования заказчика. 
  9. Like
    AngryOwl получил реакцию от Евгений Корепов в [TListBox] Как отобразить итемы в виде панелей?   
    Не в первый раз вижу эту тему...
    TGridPanelLayout - далеко не предпочтительный вариант. Совсем.
    У ListBox с его Item'ами намного больше возможностей.
    С [xenon54] соглашусь, но не полностью. ListView действительно хорош (для мобильной платформы), однако он намного сложнее.
     
    Примеры применения стилей для ListBoxItem (не сочтите за рекламу, так проще было... нащелкал скринов для примера):
     

     
    Везде - ListBox.
    На последнем скрине - всплывающие сообщения на экране. Реализовано так же - прозрачная форма, ListBox и Item'ы со своим стилем В ВИДЕ ПАНЕЛЕК )
     

  10. Like
    AngryOwl отреагировална Andrey Efimov в Сервис, фоновый режим   
    Пожалуйста, научитесь пользоваться форумом и справкой, а также не забывайте про примеры, идущие вместе со студией.
    Вот вам для начала Сервис(служба)
    Остальное есть в моей подписи.
  11. Like
    AngryOwl получил реакцию от serjeek в Почему с каждой новой версией, размер изготавливаемого продукта становится все больше и больше?   
    Это не так просто описать "в двух словах". У меня, к сожалению, нет столько времени)
    Просто погуглите. В инете весьма много информации об этом. Например "delphi xe disable RTTI".
    Думаю, может кто-нибудь из наших гуру Вам подскажет где посмотреть более детально, или ссылки на статьи об этом даст.
     
    P.S. Тот же гугл по "RTTI" выдаст Вам море информации о том, что это такое и "с чем его едят"..
  12. Like
    AngryOwl получил реакцию от Andrey Efimov в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  13. Like
    AngryOwl получил реакцию от Равиль Зарипов (ZuBy) в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  14. Like
    AngryOwl получил реакцию от Rusland в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  15. Like
    AngryOwl отреагировална alexbirukov в [Статья] Аудио-плеер на Delphi для iOS с применением библиотеки BASS   
    Ссылка на статью. Автор: Александр Бирюков В статья я максимально подробно попытался описать работу с библиотекой Libbass под iOS для проигрывания сетевых потоков.
     
    Надеюсь кому-нибудь пригодится. Буду рад комментариям, обоснованной критике и доработкам.
  16. Like
    AngryOwl отреагировална alexbirukov в [Статья] Аудио-плеер на Delphi для Android с применением библиотеки BASS.   
    Ссылка на статью. Автор: Александр Бирюков В статья я максимально подробно попытался описать работу с библиотекой Libbass под Android для проигрывания сетевых потоков.
     
    Надеюсь кому-нибудь пригодится. Буду рад комментариям, обоснованной критике и доработкам.
  17. Like
    AngryOwl отреагировална alexbirukov в Использование BASS в FMX   
    Наконец-то у меня дошли руки дописать статью про использование Bass на iOS.
  18. Like
  19. Like
    AngryOwl получил реакцию от Вячеслав в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  20. Like
    AngryOwl получил реакцию от XXXXXX в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  21. Like
    AngryOwl получил реакцию от zairkz в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  22. Like
    AngryOwl получил реакцию от Alex Bozhko в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  23. Like
    AngryOwl получил реакцию от Maximus в Как задать windowborderstyle   
    Ответы есть, конечно.
    Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.
     
    По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.
     
    Что касается перемещения формы за любой элемент:
    - во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True
    - во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag
    - и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip
     
    все
  24. Like
    AngryOwl получил реакцию от Maximus в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
  25. Like
    AngryOwl получил реакцию от rustam_d в Поздравляю всех с Новым Годом!   
    Друзья!
    Поздравляю вас всех с Новым Годом!
    Желаю всем вам здоровья, счатья и благополучия в наступившем 2016 году!
    Пожелаю всем нам успехов в наших делах, проектах, разработках!
    Чтобы все у нас с вами сложилось)
     
    Отдельно хочу поздравить Бровина Ярослава и Ефимова Андрея!
    Пожелать Вам, ребята, и Вашим близким, успехов и благополучия!
     
    Еще раз - с Новым Годом!
     
    p.s. Надеюсь не забанят за то, что "не в тему" )))
×
×
  • Создать...