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

x11

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

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

  • Посещение

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

    13

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

  1. Like
    x11 отреагировална Равиль Зарипов (ZuBy) в Что невозможно сделать на Delphi для Android?   
    С++ ваше всё, наше всё Делфи
  2. Like
    x11 получил реакцию от FREEFAR в Что невозможно сделать на Delphi для Android?   
    Видео с новой платформой FGX Native уже все посмотрели?
    Очень хочется пощупать, аж ручки чешутся
     
    https://www.youtube.com/watch?time_continue=2&v=iYaECY1DHZo
     
  3. Like
    x11 получил реакцию от FREEFAR в Файловая система Android и Embarcadero   
    к сожалению, без знания английского в программировании будет тяжко
  4. Like
    x11 отреагировална Brovin Yaroslav в [Вебинар] FGX Native. Новейшая кроссплатформенная платформа для мобильной разработки на Delphi   
    FGX Native полностью независимый от FMX фреймворк на мобильных платформах. Однако, все невизуальные компоненты будут доступны (уведомления, работа с БД, REST API и тд). Прежде всего это сделано, поскольку архитектура FMX не рассчитана для производительной работы с нативными контролами. Под этим я подразумеваю ряд взаимодействий с системой, которые жестко сидят в ядре FMX (работа с текстом, система событий OnMouseXXX, принцип отрисовки, завязка на старое API и многое другое). Помимо этого, разработка мобильного приложения кардинально отличается от разработки приложения для настольных платформ из-за разных подходов к проектированию интерфейсов и заканчивая принципиально разными и специфичными компонентами. 
    Кстати, первая экспериментальная версия FGX Native (которая так и осталась не опубликованной) была построена мною на базе FMX. Однако эксперименты на практике показали, что такой подход тупиковый и ведет к значительному усложнению системы без адекватной выгоды для пользователей. А большая зависимость от FMX является для меня потенциальным риском быть связанным по рукам от ошибок. Поэтому было принято решение сделать FGX Native полностью независимым. За год работы была реализована (и продолжает реализовываться) платформа и совершенно новый и дизайнер форм с нуля. Это дает мне большую гибкость в расширение функционала, как самой библиотеки, так и дизайнера. Имея свой дизайнер, я могу реализовать любую идею, которая повысит удобство пользователя при работе с библиотекой.
    А вообще это тема интересная и я постараюсь немного рассказать про это на вебинаре.
    Частично информация освещается на официальном телеграмм канале https://t.me/cross_delphi, где я с недавнего времени стал публиковать процесс текущий разработок по библиотеке.
  5. Like
    x11 отреагировална Brovin Yaroslav в [Вебинар] FGX Native. Новейшая кроссплатформенная платформа для мобильной разработки на Delphi   
    Тема: FGX Native. Новейшая кроссплатформенная платформа для мобильной разработки на Delphi Дата и время: 27 марта 2018 года в 12:00 Участники: @Brovin Yaroslav, Андрей Совцов Регистрация: ссылка Ссылка на официальный телеграмм канал: https://t.me/fgx_native Участие бесплатное На вебинаре познакомимся с текущей разработкой новой кроссплатформенной платформы, позволяющей создавать нативные приложения с быстрым откликом, плавной анимацией, продвинутой системой выраванивания, поддержкой RTL языков, оптимизированной работой с изображениями, быстрой канвой и многим другим. RAD Studio, Android/iOS В вебинаре принимает участие автор разработки Ярослав Бровин
     





  6. Like
    x11 получил реакцию от Rusland в Управление окном заставки   
    Может кому пригодится.
    1. В приложении по умолчанию главной формой, т.е. формой, которая автоматически создается при старте, является форма логина. Т.е. именно она появляется первой.
    2. В форме логина уже во время исполнения программы, подменяем форму логина на ту, которая должна теперь считаться главной.
     
    procedure SetAsMainForm(aForm:TForm); var P: Pointer; begin P := @Application.Mainform; Pointer(P^) := aForm; end;  
    когда проверили логин/пароль и убедились, что пользователь авторизован, создаём форму и делаем её главной, а форму логина закрываем:
    procedure TfmLogin.btnOkClick(Sender: TObject); begin if edPass.Text = qUserspassword.AsString then begin UserData.ID := qUsersid.AsInteger; UserData.Name := qUsersname.AsString; UserData.Group := qUsersid_group.AsInteger; fmMain := TfmMain.Create(Application); fmMain.Show; SetAsMainForm(fmMain); close; end else begin lbInfo.Text := 'Ошибка. Пароль неверный.'; end; end;  
  7. Thanks
    x11 отреагировална FREEFAR в Что невозможно сделать на Delphi для Android?   
    В андроиде нет пока вроде. На иос да
  8. Like
    x11 получил реакцию от Sergionn в Что невозможно сделать на Delphi для Android?   
    да за 5-7 лет FMX уже можно было так вылизать, а они до сих пор в режиме бета-версии
  9. Like
    x11 получил реакцию от Voron в Что невозможно сделать на Delphi для Android?   
    Минус других языков в том, что в глазах рябит от скобочек и другой пунктуации.
  10. Thanks
    x11 отреагировална Andrey Efimov в Что невозможно сделать на Delphi для Android?   
    Не обманывай людей . Это что: procedure onReceivePermissionsResult(const ASender: TObject; const AMessage: TMessage); ?
     
  11. Like
    x11 отреагировална DMS в Что невозможно сделать на Delphi для Android?   
    И куда? Пробовал и IDEA, и Eclipse, и Android Studio. Работа в Delphi - самая комфортная.
  12. Like
    x11 получил реакцию от Rusland в Что невозможно сделать на Delphi для Android?   
    На моей памяти Delphi уже 10+ лет умирает.
    Замкнутый круг: если все будут валить с Дельфи, то его и развивать не будут. Если будем продолжать, то и Дельфи будут развивать.
    К сожалению, цена на среду заоблачна для простых фрилансеров.
    А FMX вообще должна быть пока ещё бесплатна, как бета-версия.
  13. Thanks
    x11 отреагировална Равиль Зарипов (ZuBy) в Что невозможно сделать на Delphi для Android?   
    https://developer.android.com/distribute/best-practices/develop/runtime-permissions.html?hl=ru
    https://habrahabr.ru/post/278945/
     
    Решение на делфи
  14. Thanks
    x11 отреагировална Равиль Зарипов (ZuBy) в Что невозможно сделать на Delphi для Android?   
    Вот поэтому нужно валить с делфи, если хотите и дальше писать под андроид. Нам нельзя повышать СДК (андроид 6.0+ запрашивает разрешения в рантайм, чего мы не можем делать, хотя есть костыль у Андрея Ефимова)
  15. Thanks
    x11 отреагировална Равиль Зарипов (ZuBy) в Удаление похожих старых версий SDK Build-Tools   
    Для FMX это почти неважно, студия заточена под старые SDK, так что смена SDK/NDK почти ничего не даст.
    Только проблем наберетесь, если будете править версии SDK в манифете
  16. Thanks
    x11 получил реакцию от DMS в Что невозможно сделать на Delphi для Android?   
    Как правило, это со всеми приложениями так, если есть исключение (exception). Виндовое приложение, как правило, покажет исключение, хоть какой-нибудь AV, но не закроется. Например, у меня приложение закрывалось без 3D. Подключил LogCat, оказалось, что текст Андроид ничего не позволяет показывать, но в логах видно место, посмотрел исходники, добавил обработку исключения и приложение стало запускаться.
  17. Like
    x11 получил реакцию от Rusland в Что невозможно сделать на 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 с возможностью дозагрузки и автоматического уничтожения ненужных записей.
  18. Like
    x11 получил реакцию от S_007 в TeeGrid для всех платформ   
    Бесплатная сетка для некомерческого использования. Я так понял, что без исходников.
    For Embarcadero RAD Studio 2009 and up to Tokyo 10.2 update 2, Delphi and C++, VCL and Firemonkey frameworks (all platforms: Windows 32 and 64 bit, Mac OSX, Android and iOS), and Lazarus FreePascal (Windows, Linux, etc)
    https://github.com/Steema/TeeGrid

  19. Thanks
    x11 отреагировална Fedor K в TNotificationCenter. Можно ли изменить иконку?   
    Иконка изменится внутри приложения в рамах текущего контекста до ее завершения. С других приложений и в системе ничего не поменяется (см. прикрепление).
    Чтобы не влиять на другой функционал, достаточно сделать следующее:
    //запоминаем ид по умолчанию lDefaultId := TAndroidHelper.Context.getApplicationInfo.icon; //устанавливаем нашу кастомную иконку TAndroidHelper.Context.getApplicationInfo.icon := lId; //создаем локальное уведомление NotificationCenter.PresentNotification(lNotification); //возвращаем обратно TAndroidHelper.Context.getApplicationInfo.icon := lDefaultId; п.с. Если такой вариант не устраивает, всегда можно написать class helper for TBaseNotificationCenter и использовать классы JNotificationCompat_Builder, JNotificationManager, JNotification. Справка из developer.android.com.

  20. Thanks
    x11 получил реакцию от inoprox в Delphi не видит мой телефон   
    В первую очередь нужно проверить, видит ли утилита adb.exe ваше устройство.
    в консоли CMD нужно зайти в папку "C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows\platform-tools"
    И выполнить adb devices, появится строка: List of devices attached и под ней все подключенные смартфоны (устройства). Если там ничего не будет, то не установлены USB-драйверы, либо на устройстве не включен режим разработчика.
    Когда установите драйверы и перезапустите ПК, то adb может всё равно не увидеть устройство, тогда поможет создание файла adb_usb.ini и нужно будет прописать в нём ID устройства: http://digphone.ru/esli-android-adb-ne-vidit-smartfon/
     
    После этого перезапустить ПК.
    Снова запустить в CMD: adb.exe devices
    после этого может появиться строка, говорящая о том, что устройство подключено, но не авторизовано, т.е. код устройства и unauthorized:
    Переподключите смартфон к компьютеру и на экране смартфона должно появиться окно авторизации, где нужно нажать ОК и, возможно, перед этим сперва поставить галочку "Всегда разрешать подключение с этого ПК".
    Снова выполните adb.exe devices и увидите, что вместо unauthorized, будет слово device.
    Вместо перезапуска ПК, можно перезапускать службу adb
    adb kill-server adb start-server
  21. Like
    x11 получил реакцию от Tarik Live в Toast для Android Service   
    Это не вопрос. Просто подумал, что кому-нибудь может пригодится.
    https://forums.embarcadero.com/thread.jspa?threadID=118465
    Используем 2 файла: Androidapi.JNI.ToastForService.pas + FlyUtils.Android.PostRunnableAndTimer.pas.
    Пример вызова:
    Androidapi.JNI.ToastForService.PostToast('текст сообщения', LongToast); Проверил - работает.
    Есть ещё третий параметр "UseLastToastObj", но я так и не понял, для чего он. Документации нет.
  22. Like
    x11 получил реакцию от #WAMACO в Управление окном заставки   
    Может кому пригодится.
    1. В приложении по умолчанию главной формой, т.е. формой, которая автоматически создается при старте, является форма логина. Т.е. именно она появляется первой.
    2. В форме логина уже во время исполнения программы, подменяем форму логина на ту, которая должна теперь считаться главной.
     
    procedure SetAsMainForm(aForm:TForm); var P: Pointer; begin P := @Application.Mainform; Pointer(P^) := aForm; end;  
    когда проверили логин/пароль и убедились, что пользователь авторизован, создаём форму и делаем её главной, а форму логина закрываем:
    procedure TfmLogin.btnOkClick(Sender: TObject); begin if edPass.Text = qUserspassword.AsString then begin UserData.ID := qUsersid.AsInteger; UserData.Name := qUsersname.AsString; UserData.Group := qUsersid_group.AsInteger; fmMain := TfmMain.Create(Application); fmMain.Show; SetAsMainForm(fmMain); close; end else begin lbInfo.Text := 'Ошибка. Пароль неверный.'; end; end;  
  23. Like
    x11 получил реакцию от Ingalime в Управление окном заставки   
    Может кому пригодится.
    1. В приложении по умолчанию главной формой, т.е. формой, которая автоматически создается при старте, является форма логина. Т.е. именно она появляется первой.
    2. В форме логина уже во время исполнения программы, подменяем форму логина на ту, которая должна теперь считаться главной.
     
    procedure SetAsMainForm(aForm:TForm); var P: Pointer; begin P := @Application.Mainform; Pointer(P^) := aForm; end;  
    когда проверили логин/пароль и убедились, что пользователь авторизован, создаём форму и делаем её главной, а форму логина закрываем:
    procedure TfmLogin.btnOkClick(Sender: TObject); begin if edPass.Text = qUserspassword.AsString then begin UserData.ID := qUsersid.AsInteger; UserData.Name := qUsersname.AsString; UserData.Group := qUsersid_group.AsInteger; fmMain := TfmMain.Create(Application); fmMain.Show; SetAsMainForm(fmMain); close; end else begin lbInfo.Text := 'Ошибка. Пароль неверный.'; end; end;  
  24. Thanks
    x11 отреагировална Andrey Efimov в Как узнать версию приложения под Android?   
    Например, вот так:
    {for Delphi XE6/XE7: Add to "uses" module "Androidapi.Helpers"} uses   Androidapi.JNI.JavaTypes, FMX.Helpers.Android,   Androidapi.JNI.GraphicsContentViewText; var   PackageManager: JPackageManager;   VersionPackage,PackageName: JString; begin   PackageManager := SharedActivity.getPackageManager;   PackageName := SharedActivityContext.getPackageName;       VersionPackage := PackageManager.getPackageInfo(PackageName, 0).versionName;   Label1.Text := JStringToString(VersionPackage); p.s. Для подобных вопросов, у меня в блоге есть страничка "JNI Code Snippet"
  25. Thanks
    x11 отреагировална Равиль Зарипов (ZuBy) в Зависает при старте   
    procedure CloseApp; begin {$IFDEF ANDROID} TAndroidHelper.Activity.moveTaskToBack(true); // MainActivity.finish; {$ELSE} Application.Terminate // Application.MainForm.Close; {$ENDIF} end;  
     
    procedure TFormMain.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin inherited; if Key in [vkEscape, vkHardwareBack] then begin CloseApp; Key := 0; end; end;
×
×
  • Создать...