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

Rusland

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

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

  • Посещение

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

    26

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

  1. Like
    Rusland отреагировална rareMax в Производительность отрисовки текста на мобильных платформах   
    Тык тык https://github.com/zhaoyipeng/FMXComponents/blob/master/ComponentsSource/FMX.Graphics.NativeCanvas.pas
  2. Like
    Rusland отреагировална IVGSoft в Обработка анимированных GIF по рецепту китайского коллеги   
    В этом участке кода есть одна маленькая ошибка. Иногда это приводит к тому, что на некоторых кадрах теряется прозрачность.
    Я заменил на вот такое :
    GIF_DISPOSAL_BACKGROUND: begin LFrame.FDisbitmap.Clear(LLocalPalette[LGraphicsCtrlExt.ColorIndex].Color); MergeBitmap(tmp, LFrame.FDisbitmap, Bounds(0, 0, LFrameWidth, LFrameHeight), LFrame.FPos.x, LFrame.FPos.Y); end;  
  3. Like
    Rusland отреагировална Вадим Смоленский в Обработка анимированных GIF по рецепту китайского коллеги   
    Год назад в одной из веток проскочила ссылка на китайский сайт (http://www.raysoftware.cn/?p=559), где предлагалось готовое решение для показа анимированных гифок средствами FireMonkey на любых платформах. Сейчас эта ссылка, как и весь сайт raysoftware.cn, упорно не открывается; по счастью, контент сохранился в гугловском кэше. Я скопировал оттуда код юнита и перевел гуглом все китайские комментарии на английский, добавив их в скобках. Там был еще сопроводительный текст, в котором автор излагал мотивы, побудившие его взяться за эту проблему; каких-то важных технических деталей я в этом тексте не увидел.
    Привожу весь юнит ниже и очень надеюсь, что кто-нибудь из продвинутых коллег объяснит мне, как именно этим кодом можно воспользоваться, чтобы показать пользователю анимированный файл в формате GIF. Моей программерской квалификации, к сожалению, не хватает.
     
  4. Like
    Rusland отреагировална Sergiy_83 в Вывод личных сообщений   
    Мы с вами в одном окопе. Путь к ListView лежит через ListBox. т.e надо помучится с listbox что бы понять что без ListView не обойтись. 
    В чате как правило картинка и текст возможно не один. 

    Создайте в ListView в режиме dinamicAppearance свои поля со своими именами, Далее ПКМ по listView выбираете TogleDesignMode там двигаете свои добавленные поля как вам удобно. 
    Далее смотрите код. Чем смог тем помог!
    //Добавить итем в список void __fastcall TTabbedForm::add_item(int num_ico,UnicodeString *fname, UnicodeString *ext_name, unsigned int color)     {     TListItemText  *ext;     TListItemImage  *ico;     TListViewItem* item = ListView1->Items->Add();     item->Height = 30;     ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("extenssion_text"));     if (ext)         {         ext->PlaceOffset->X = ListView1->Width -  60;         ext->Text = *ext_name;         ext->TextColor = color;         }     ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("file_name_text"));     if (ext)         {         ext->Text = *fname;         ext->TextColor = color;         if (num_ico==0)    ext->Width = ListView1->Width - 10;   //длина до расширения.         else            ext->Width = ListView1->Width - 90;   //длина до расширения.         }     ico = dynamic_cast<TListItemImage*>(item->Objects->FindDrawable("Icon_Image"));     if (ico)         {         switch (num_ico)             {             case 0: ico->Bitmap = Image_64x64_ret->Bitmap;         break;             case 1: ico->Bitmap = Image_64x64_folder->Bitmap;     break;             case 2:    ico->Bitmap = Image_48x48_spk->Bitmap;         break;             case 3: ico->Bitmap = Image_64x64_play->Bitmap;     break;             case 4: ico->Bitmap = Image_64x64_pause->Bitmap;     break;             default:  break;             }         }     }  
  5. Like
    Rusland отреагировална r@di0 в Изменение стандартного звука а push-уведомлении   
    Дополнение: иногда нужно, чтобы уведомления не накапливались, а отображалось только последнее. Поправил класс NotificationPublisher (см. аттач), чтобы при наличии в данных параметра "unique": false обновлялось последнее сообщение, а не добавлялись новые.
    NotificationPublisher.zip
  6. Like
    Rusland отреагировална r@di0 в Изменение стандартного звука а push-уведомлении   
    В версии Берлин есть свои особенности.
    1. Берём берлиновские java-исходники: C:\Program Files (x86)\Embarcadero\Studio\18.0\source\rtl\androiddex\java\fmx\src\
    Далее в файле NotificationPublisher.java в buildNotification правим код, чтобы использовался переданный параметр Sound (если передан):
    if (msgSound == "") { //если не передан, используем стандартный звук уведомлений mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); } else { mBuilder.setSound(Uri.parse("android.resource://" + this.mContext.getPackageName() + "/raw/" + msgSound)); } Подключаете класс import android.net.Uri;
    Прокидываете параметр String msgSound выше до publishGCM, а в publishGCM нужно получить из бандла параметр Sound по аналогии с другими параметрами (см. приложенный файл NotificationPublisher.java).
    Можете так же прописать mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(msgText)); для MultiLine сообщений и сразу сделать обработку параметра icon для использования в пушах иконок отличных от иконки приложения.
    2. После того как Вы воссоздали структуру нужного пакета (в java иерархия классов определяется вложенностью папок) в нужном каталоге и внесли необходимые изменения в исходники, необходимо откомпилировать измененные классы, добавить их в исходный пакет (fmx.jar) и сформировать файл classes.dex (cм. приложенный файл install.bat):
    @echo off setlocal if x%ANDROID_SDK% == x set ANDROID_SDK="C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows" if x%JAVA% == x set JAVA="C:\Program Files\Java\jdk1.8.0_60\bin" set ANDROID_PLATFORM=%ANDROID_SDK%\platforms\android-22 set DX_LIB=%ANDROID_SDK%\build-tools\27.0.3\lib set EMBO_DEX="C:\Program Files (x86)\Embarcadero\Studio\18.0\lib\android\release\classes.dex" set FMX_JAR="C:\Program Files (x86)\Embarcadero\Studio\18.0\lib\android\release\fmx.jar" set PROJ_DIR="C:\fmx" echo COMPILLING NotificationPublisher.java %JAVA%\javac -d "%PROJ_DIR%" "%PROJ_DIR%\com\embarcadero\rtl\notifications\NotificationPublisher.java" -cp "%ANDROID_PLATFORM%\android.jar";"C:\Program Files (x86)\Embarcadero\Studio\18.0\lib\android\debug\android-support-v4.jar" pause echo COPY ORIGINAL fmx.jar copy %FMX_JAR% %PROJ_DIR%\fmx.jar" echo UPDATE FILE NotificationPublisher.class %JAVA%\jar uf "fmx.jar" com\embarcadero\rtl\notifications\NotificationPublisher.class echo CONVERTING FROM jar TO dex call %DX_LIB%\dx.jar --dex --verbose --output=%PROJ_DIR%\output\dex\test_classes.dex --positions=lines %PROJ_DIR%\fmx.jar echo MERGING dex FILES mkdir output\dex 2> nul java -cp %DX_LIB%\dx.jar com.android.dx.merge.DexMerger %PROJ_DIR%\output\dex\classes.dex %PROJ_DIR%\output\dex\test_classes.dex %EMBO_DEX% del output\dex\test_classes.dex echo Now we have the end result, which is output\dex\classes.dex pause :Exit endlocal Поправьте PROJ_DIR на свой каталог, в котором всё лежит (у меня в C:\fmx), а так же проверьте правильность остальных путей.
    3. После того как Вы получили новый пакет fmx.jar, а так же файл classes.dex, оба файла необходимо скопировать в каталог со своим Delphi-проектом.
    4. Добавьте новый файл classes.dex в Deployment и отключите старый файл classes.dex;
    5. У нового файла classes.dex пропишите Remote Path как у старого файла (classes\);
    6. Добавьте звуковой(ые) файл(ы) для уведомлений в Deployment и пропишите Remote Path: res\raw\
    На этом подготовка IDE завершена. Что-либо отключать в IDE в разделе Libraries (напр. fmx.dex.jar) не требуется. Добавлять так же ничего не требуется.
    Если Вы ранее подключали свой fmx.dex.jar, то удалите его и включите стандартный.
    7. При отправке Push с сервера параметр Sound передавать не в Notification!, а в Data:
    $fields['data'] = array('body' => $text, 'title' => $title, 'sound' => 'neworder');
    Имя звукового файла указывается без расширения.
    fmx.zip
  7. Like
    Rusland отреагировална dmokrushin123 в ANDROID не приходят PUSH Уведомления   
    Ну в общем как то заработало.  Сообщения доставляются только на токен для Android хотя в интерфейсе FCM есть общевещательная отправка на приложение (для IOS это работает).
    OnReceiveNotificationEvent  изменил
    FText := x['"gcm.notification.body"'].AsString
    FTitle := x['"gcm.notification.title"'].AsString;
    ..................................
    Есть пара вопросов:
    1. Как понять что токен устройства сменился, как то не очень хотелось бы сложно решать этот вопрос
    2. В версии IOS 10 убрали возможность группировки уведомлений по приложению, в итоге происходит загромождение.   В NotificationCenter есть СancelAll но что то ничего не происходит, как было несколько уведомлений так и остается
     
     
     
     
     
     
     
  8. Like
    Rusland отреагировална Savage в Уведомление о прочитанности PUSH уведомления   
    Для получения инфо о доставке пуша, надо использовать XMPP
    Вот гугломануал Firebase Cloud Messaging XMPP Protocol
    ПО для отправки сообщений (комп, сервер и т.д.)     <--   обмен по протоколу XMPP   --->      Сервер гугла FCM  <------->  Андроид устройство
    использовал IdTCPClient
     
      Host  fcm-xmpp.googleapis.com
      Port  5236
    IdTCPClient.Connect
    вот сценарий
    >>> - отправка на FCM 
    <<< - ответ от FCM
    >>> здороваемся (IdTCPClient1.IOHandler.WriteLn ) <stream:stream to="gcm.googleapis.com" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"> <<< (IdTCPClient1.IOHandler.Readln) <stream:stream from="gcm.googleapis.com" id="000000000000" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"> <<< <stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><mechanism>X-OAUTH2</mechanism><mechanism>X-GOOGLE-TOKEN</mechanism><mechanism>PLAIN</mechanism></mechanisms></stream:features> >>> логинимся <auth mechanism="PLAIN" xmlns="urn:ietf:params:xml:ns:xmpp-sasl">Base64Encode(sender_id@gcm.googleapis.com+ApiKey)</auth> <<< <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/> >>> отправляем обязательный пакет <stream:stream to="gcm.googleapis.com" version="1.0" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams"> <<< <stream:stream from="gcm.googleapis.com" id="000000000000" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client"> <<< <stream:features><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"/><session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features> >>> отправляем обязательный пакет <iq type="set"> <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"></bind></iq> <<< <iq type="result"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>sender_id@gcm.googleapis.com/000000</jid></bind></iq> >>> отправляем сообщение <message><gcm xmlns="google:mobile:data">{"message_id":"20","delivery_receipt_requested":true,"to":"DeviceToken","data":{"title":"Message title","message":"Message text"}}</gcm></message> <<< получаем подтверждение, что гуглосервер принл сообщение от нас <message><data:gcm xmlns:data="google:mobile:data">{"message_type":"ack","from":"DeviceToken","message_id":"20"}</data:gcm></message> <<< получаем подтверждение, что сообщение доставлено на андроид-устройство <message to="sender_id@gcm.googleapis.com" from="devices@gcm.googleapis.com" type="normal"><gcm xmlns="google:mobile:data">{"data":{"message_status":"MESSAGE_SENT_TO_DEVICE","device_registration_id":"DeviceToken","message_sent_timestamp":"1524141512313","original_message_id":"20"},"time_to_live":0,"from":"gcm.googleapis.com","message_id":"dr2:20","message_type":"receipt","category":"com.pushTest"}</gcm></message> Ключ АПИ и идентификатор отправителя надо брать в консоли Firebase https://console.firebase.google.com/u/0/project
    Подробно описано тут http://blog.rzaripov.kz/2017/02/firebase-android-ios.html
     

  9. Like
    Rusland отреагировална Savage в Изменение стандартного звука а push-уведомлении   
    Добавил многострочность в PUSH-уведомление
    Надо или нет пересобирать classes.dex точно не скажу. Говорят, что на 10.2.3 не надо
    Вначале просто подбросить в проект fmx.jar , если изменений нет, то и classes.dex
     
    NotificationPublisher.zip
  10. Like
    Rusland отреагировална Brovin Yaroslav в [Вебинар] FGX Native. Новейшая кроссплатформенная платформа для мобильной разработки на Delphi   
    Добрый вечер,
    Я подумаю об альтернативном средстве распространения новостей. Здесь отпишусь, как определюсь. Скорее всего буду публиковать новости на данном форуме в специальном разделе.
  11. Like
    Rusland отреагировална gonzales в Пуши в IOS   
    Еще доп. накину на вентилятор, вдруг кому пригодится. Чтобы в iOS появилась наклейка с цифрой на иконке программы нужно добавить в JSON запроса пуша в объект notification пару badge=цифра
  12. Like
    Rusland отреагировална ENERGY в Программа для конвертации стилей под другие платформы на основе указанного *.style   
    Набросал простенькую программу для создания стилей под все платформы на основе указанного. 
    Программа только меняет информацию о платформе, никаких других измений со стилем не делает.
    К примеру есть стиль для Android - указываем его программе, - она создает стили для Windows, Mac,  iOs на основе указанного.
    Затем их можно добавлять в StyleBook, запускать и отлаживать этот Android стиль под Windows, что сэкономит массу времени.
    Exe файл находится в \Win32\Release\Styles4Platforms.exe

     
     
    An app to convert current firemonkey style to other platforms based on the specified *.Style file. App only changes the information about the platform and does not do any other changes with the style.
     
     
     
    Styles 4 Other Platforms.7z
  13. Like
    Rusland отреагировална ENERGY в Что невозможно сделать на Delphi для Android?   
    Delphi хоронят уже лет 15, это все слова. Нет идеальных инструментов. У всех какие то косяки, втч и у нативных средств, ведь все это придумывают люди, люди не роботы.
    На деле Delphi отличное средство для мультиплатформенной разработки вполне сложных программ. Мне как фрилансеру вполне хватает. Производительность гораздо лучше чем у Angular\Ionic, которые по факту WebView - веб в браузере - очень тормозное решение и подходит только для формочки "логин\пароль".  Также по производительности и глюкам Delphi имхо лучше чем ReactJS, и Xamarin aka Mono. 
    Во фрилансе огромная конкуренция, в основном индусы, в этом плане с Delphi можно быстрее разработать ПО чем предлагают сроки остальные.
    Проблема Делфай в том что оно дорогое, и  не так распространено - (это взаимосвязанный фактор) - таким образом сложно найти команду и мало проектов на нем разрабатывается, меньше сообщество и меньше документации и библиотек с готовыми решения Поэтому для одиночек это больше подходит.
     
    Но конечно нужно смотреть на развитие - вот Токио получилась очень сырым продуктом, я до сих пор на Берлине пишу под 4 платформы, если следующая версия выйдет такой же ультраглючной, то следует задуматься.
    А вообще хороший программист - это тот кто знает несколько языков, не бойтесь учить новое - опыт ускорит разработку с любым инструментом.
  14. Like
    Rusland отреагировална Savage в Что невозможно сделать на Delphi для Android?   
  15. Like
    Rusland отреагировална Denis Vasilyev в Серия статей, как настроить Android, OS X, iOS Simulator, iOS с RAD Studio (Delphi, C++ Builder)   
    Серия статей с пошаговой инструкцией, как подключить и настроить Android, OS X, iOS Simulator, iOS для работы с RAD Studio.
     
    Как настроить Android и RAD Studio XE7 (Delphi, C++ Builder)
    http://habrahabr.ru/company/delphi/blog/253929/

     
    Как настроить Mac OS X, iOS-симулятор и RAD Studio XE8 (Delphi, C++ Builder)
    http://habrahabr.ru/company/delphi/blog/255721/

     
    Как настроить iOS-устройство и RAD Studio XE8 (Delphi, C++ Builder)
    http://habrahabr.ru/company/delphi/blog/265313/

  16. Like
    Rusland отреагировална Fedor K в Что невозможно сделать на Delphi для Android?   
    Очередные холивары из разряда "мои проблемы никто не хочет решить за меня, значит Delphi плохой инструмент, давайте все перейдем в другую песочницу...". Минусы FMX есть и будут, от этого никуда не денешься, но в последнее время весь soft и продукты катятся в яму с кучей bugs даже от крупных компаний и корпораций даже спустя многие releases. 
    Если на то пошло, то предлагаю все "невозможные" фишки периодически добавлять в первый пост и прикреплять решения, если они существуют.
    Проблемы FMX  в следующем:
    Жесткая привязка к версии SDK, возможно сделано целенаправленно, чтобы пользователи обновляли лицензии год за годом. Позволяет разработчику не углубляться в особенности операционной системы, и не меняя мышления клепать свой "первоклассно рабочий VCL стиль" код и тонны компонентов под все платформы. Пропаганда "возьмите свой старый код и сделайте мобильное приложение" - маркетологи, вы в своем уме? Отсутствие достойных плагинов для IDE. Тот же Cn Wizard давно пора включить по дефолту. Неужели сложно добавить плагин для создания wrappers для java классов сразу в IDE? Разве сложно загрузить приложение прямо в маркет без ручного копирования?  Отсутствует редактор manifest, plist как таковой. Вспоминается анекдот про танк и "доработать напильником". Многие достойные вещи делаются на голом энтузиазме сообществом, но почему-то только спустя много-много времени внедряются в коробку. Отсутствует нормальный debug на мобильных платформах, логами все не покроешь. Ограничения в ARM процессорах. Желание все хранить в .fmx, .dfm файлах, а не ссылками в ресурсы, как это принято в мобильной разработке. Это конечно обходится написанием своих менеджеров, но неужели сложно это продумать из коробки? Такое чувство, что пытаемся охватить как можно больше платформ по чуть чуть, чтобы кому-нибудь впарить свой продукт, а уже потом будем думать, как выкручиваться. FMX Canvas - ахиллесова пята. Не смотря на все это FMX является очень мощным инструментом и крайне приятным в умелых руках, если вы любите напильник (или мазохист). Средне статические проекты можно реализовывать не боясь, но для более серьезных вещей понадобятся знания нативной разработки, без этого никак. Если заказчик начинает разговор "я хочу такое, как в том-то приложении..." - значит без написания своей обертки или исправления исходников не обойдешься.
    FMX в последнее время активно развивается и спустя Х лет все будет у нас превосходно, просто не бегите за новыми версиями, а подождите Update 3 или используйте предыдущую версию (Berlin Update 2 все еще в соку).
    Другие кросплатформенные frameworks (Xamarin, Reac Native, RemObject, Native script, другие) тоже не лишены недостатков, но там слегка другие концепции и другая аудитория, кто лучше - покажет лишь время.
  17. Like
    Rusland отреагировална #WAMACO в Что невозможно сделать на Delphi для Android?   
    Сравнивать RAD надо не с нативными студиями разработки, а с Xamarin, например, там вообще тихий ужас...
    Есть 1С:Мобильная платформа, там тоже можно собирать под Android, iOS - правда все в желтом цвете (про toolbar), но знаю людей, кто на этом столько денег заработал, что авторы нативных приложений и не видели еще... 
    Дело в направленности приложений и ДА, некоторые типы приложений (например, корпоративные) делаются быстрее.
    Не надо рисовать виджет погоды на Delphi, не надо делать путеводитель по сортам кофе на Delphi. Делайте это нативными инструментами. 
    Востребованность в кроссплатформе есть и эта тенденция будет только усиливаться. 
     
    Сейчас это напоминает мне разговор в 1998 году о том, что все ПО под Windows надо писать на C++, потому что на других языках - НЕ НАТИВНО, МЕДЛЕННО РАБОТАЕТ, ПОДВИСАЕТ! 
    А потом, я пришел  в одну контору и руководство провозгласило: ТОРМОЗИТ? Добавьте Гигагерц и ОЗУ -  это дешевле и быстрее, нежели переписывать на нативных языках! Так вот, со временем так же будет и с мобилами! и уже очень скоро!
     
    НЕ РАБОТАЕТ НА КИТАЙСКИХ СМАРТФОНАХ? выбросьте их и купите уже нормальные аппараты!  это дешевле, нежели платить Kotlin разрабу!
  18. Like
    Rusland отреагировална FREEFAR в Что невозможно сделать на Delphi для Android?   
    Про красиво - вот наш прототип. Более менее UFriendly



  19. Like
    Rusland отреагировална Akad в Что невозможно сделать на Delphi для Android?   
    Между версиями 10.2-10.2.2 прошло более полугода. Ни одного известного ДАЖЕ на форуме бага не поправлено. Динамики не вижу в упор. На следующей неделе у нас будет приниматься окончательное решение: скорее всего будем уходить с FMX на VCL обратно, причём на какую-нибудь XE2, там хоть текстовый редактор рабочий. Так как то, что сейчас получается - оно вообще не рабочее, а ждать устали. 10.2.3 скорее всего снова перенесут какие-нибудь кнопки в новое место, и ещё что-нибудь важное сломают, как в 10.2.2 не работающий в половине случаев ctrl+пробел и всё, главное денег заносите.
    Ставишь 3-ю студию, выбираешь котлин (это +~50тыр к зарплате) и пишешь что-нибудь. За месяц основные фишки типа XML разметки и всех вьюшек изучишь. Ещё 2-3 недели - это  Dagger2, Relam  и  MVP . После того можно спокойно пройти любое собеседование. Главное демо-проект(ы) придумать по интереснее.
     
  20. Like
    Rusland отреагировална Andrey Efimov в Что невозможно сделать на Delphi для Android?   
    Не обманывай людей . Это что: procedure onReceivePermissionsResult(const ASender: TObject; const AMessage: TMessage); ?
     
  21. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в Что невозможно сделать на Delphi для Android?   
    1) Решение Андрея не полное, нет колбэка от выбранного действия. Неизвестно юзер разрешил или нет
    2) Не работают сервисы как положено
    3) Старый СДК, из-за чего мы не можем использовать
    новые темы (сейчас используется Holo Light) окраска статус бара, в делфе тспользуется костыль процы интел не поддерживаются (хотя уже и не выпускают новые, но все же) для того чтобы сделать мультилайн в уведомлениях нужно перекомпилить fmx.jar  4) Ограничение в делфи (в бридже) на создание джава классов, из-за чего FMX не может просто перейти на новый СДК
    5) Нет нативного рендеринга
    6) Невозможно использовать анимацию
    7) Работа с картой и браузером ужасна
    8) Работа с пуш уведомлениями тоже ужасна, нужно все самому
     
    И это скорее всего не всё, то что вспомнил  
  22. Like
    Rusland отреагировална DMS в Что невозможно сделать на Delphi для Android?   
    И куда? Пробовал и IDEA, и Eclipse, и Android Studio. Работа в Delphi - самая комфортная.
  23. Like
    Rusland отреагировална x11 в Что невозможно сделать на Delphi для Android?   
    На моей памяти Delphi уже 10+ лет умирает.
    Замкнутый круг: если все будут валить с Дельфи, то его и развивать не будут. Если будем продолжать, то и Дельфи будут развивать.
    К сожалению, цена на среду заоблачна для простых фрилансеров.
    А FMX вообще должна быть пока ещё бесплатна, как бета-версия.
  24. Like
    Rusland отреагировална Равиль Зарипов (ZuBy) в Что невозможно сделать на Delphi для Android?   
    Вот поэтому нужно валить с делфи, если хотите и дальше писать под андроид. Нам нельзя повышать СДК (андроид 6.0+ запрашивает разрешения в рантайм, чего мы не можем делать, хотя есть костыль у Андрея Ефимова)
  25. Like
    Rusland отреагировална x11 в Что невозможно сделать на Delphi для Android?   
    На данный момент столкнулся с тем, что нет нижеописанных  встроенных возможностей (из коробки, как говорится).
    4. Назначить (изменить) иконку у TNotification.
    5. Работать с Broadcast.
    6. Показать на переднем плане временное окно из службы, типа Toast, но дольше и с картинкой.
    7. Пролистывать картинки (нет слайдера).
    8. Работать с адресной книгой, звонками, другими данными (TAddressBook) не подходит. Вернее, есть возможность, но нет примеров и описаний совсем. Я о таких вещах, как TJContactsContract_PhoneLookup, TJNet_URI, getContentResolver.query, JCursor, TJavaObjectArray. Спасибо тем, кто помогает переводить код с Java на Delphi.
    9. Нельзя указать в настройках проекта, что приложение должно автоматически стартовать при перезагрузке смартфона.
    10. Нельзя создавать 64-битные Андроид-приложения. А в Гугломаркете их уже 40%.
    11. Нет списка, который бы можно было подключить к TDataSet с возможностью дозагрузки и автоматического уничтожения ненужных записей.
×
×
  • Создать...