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

gonzales

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

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

  • Посещение

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

    27

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

  1. Haha
    gonzales получил реакцию от #WAMACO в Переезд на 10.3 Rio   
    Чего Вы привязались к прогрессбару, это никак не связано с потоками, я просто уточнял, нужно ли обращаться к форме, созданной в потоке через синхронизацию. 
    Прочитайте посты выше, вроде как уже больше недели это обсуждаем.
     
    У вас очень странное представление о UI. Вы правда считаете, что я демонстрирую пользователю одновременно Сплэш, две формы, и повергающий его в экстаз прогрессбар??
  2. Like
    gonzales получил реакцию от Ingalime в Как отловить нажатие на кнопку "Домой" на android   
    Тоже столкнулся с необходимостью запретить пользователю нажимать на кнопку Домой. Нашел достаточно простое решение (для себя), заставить приложение быть Лаунчером, при этом доступна шторка и кнопка включения. Но основные фишки работают: после перезагрузки автоматически стартует моя программа, она не висит в списке задач, ее нельзя выгрузить, не работает кнопка Домой.
    Суть в изменении манифеста. В файле AndroidManifest.template.xml находим строки
    <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> И добавляем
    <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> Пересобираем приложение, запускаем. На 6-ом Андроиде при нажатии на кнопку Домой система предложит выбрать Лаунчер, выбираем нашу программу и нажимаем Всегда. Чтобы изменить, через шторку входим в настройки - выбор системного интерфейса. На 8-ом Андроиде также через настройки принудительно выставляем лаунчер на нашу программу.
  3. Like
    gonzales получил реакцию от Евгений Корепов в Переезд на 10.3 Rio   
    Спасибо!
    До меня начало доходить, нужно полностью отойти от метода программирования, когда в коде основной формы пишутся все процедуры и функции, все выносить в отдельные юниты, в которых в потоках (потоке) обрабатывается вся логика и лишь через синхронизацию выдает информацию в главный поток. А главный поток по сути свободен, занят лишь перерисовкой форм и получением событий мыши. 
  4. Like
    gonzales отреагировална krapotkin в Переезд на 10.3 Rio   
    научили конечно ))) все придумано до нас
    вот статья
    вот так в грубом приближении должно это быть 
    p.s. Забыл удалить из ваших форм эти циклы, которых там быть не должно
    Форма - это интерфейс взаимодействия с пользователем. Данные должны жить отдельно.
    test10.3.zip
  5. Like
    gonzales получил реакцию от Ingalime в Переезд на 10.3 Rio   
    Прошу прощения за долгое отсутствие
    Вот накидал простой исходникtest10.3.zip. В проекте 3 формы, первой создается SplashForm. Остальные формы имеют в OnCreate высоконагруженные вычисления, поэтому после каждого создания формы отображаю на SplashForm статус формы. Дабы все это отрисовывалось использую Application.processmessages.
     
  6. Thanks
    gonzales отреагировална IVGSoft в обновление визуальных компонентов   
    По умолчанию - да. Но можно указать флаг Suspended при создании. Тогда метод Execute будет запущен после снятия єтого флага.
    Синхронизация нужна при обращении к визуальным компонентам. И то только при обновлении (перерисовке) их свойств. Для чтения не надо.
    Да, именно так. Если есть изменения визуальных компонентов - надо использовать синхронизацию.
  7. Like
    gonzales получил реакцию от Alex Bozhko в Переезд на 10.3 Rio   
    Есть подозрение, что в 10.3. перестала работать функция Application.ProcessMessages. В 10.1 для Андроид она прекрасно работала, а теперь, как будто ее нет. Формы не перерисовываются, вовремя не отображаются те или иные вещи. На что можно заменить ее. Пример такой, создаю форму в рантайме и показываю ее пользователю. 
    Application.CreateForm(TForm27, Form27); Form27.ProgressBar1.Visible := false; Form27.StartUpLabel.Text := 'Ждите...'; Form27.Visible := true; Application.ProcessMessages;  На андроид в 10.3. форму не вижу, хотя остальной код отрабатывает.
  8. Like
    gonzales получил реакцию от Barbanel в Рабочая комбинация программ для публикации в AppStore   
    Продолжаем разговор...
    Вчера радостные мужеложцы из Apple повизгивая сообщили, что с марта 2019 перестают принимать приложения с SDK ниже 12.1. Ну, думаю, какие проблемы, скачал новый пакет SDK, запускаю, получаю file not found: /usr/lib/system/libcache.dylib for architecture arm64
    Гугления и педалирования темы показали, что проблема была пофиксена каким-то там хотфиксом к 10.2. 
    Но проблема в том, что пока не могу использовать ни 10.2, ни 10.3, в силу того, что под новые стандарты придется переписать половину кода. А выложить новую версию необходимо.
    Проблема решилась достаточно просто, вдруг кому пригодится. Фокус в том, что SDK для всех версий Delphi хранятся в одном месте. Соответственно сначала скачал SDK для 10.1, а затем тоже самое для 10.3. Делфа спросила, заменять ли ей файлы, соглашаемся. После чего все компилируется на ура с SDK 12.1.
  9. Like
    gonzales получил реакцию от Ingalime в PUSH и Android8   
    Нашел причину, в API 26 формирование уведомления строится по другому. https://startandroid.ru/ru/uroki/vse-uroki-spiskom/515-urok-190-notifications-kanaly.html
    Перевел приложение на API 25 и все заработало как надо.
    Подозреваю, что для работы пушей в API 26 нужно обновить саму делфу. (у меня сейчас берлин) 
  10. Like
    gonzales получил реакцию от #WAMACO в Рабочая комбинация программ для публикации в AppStore   
    Такой же рецепт для XCode 10.1, который работает в MacOS Mojave (10.14)
  11. Like
    gonzales получил реакцию от Anatoliy в Рабочая комбинация программ для публикации в AppStore   
    В связи с требованием Apple выкладывать в AppStore программы с SDK не ниже 11.0 опять возникла необходимость использовать XCode выше 8.2.
    По итогу все срослось, конфигурация такая
    Delphi 10.1 Up2
    Xcode 9.2
    SDK 11.2
    Для того, чтобы все компилилось необходимо сделать две вещи.
    1. В SDK добавить FileProvider
    2. В XCode добавить PackageApplication (https://stackoverflow.com/questions/43068608/xcrun-error-unable-to-find-utility-packageapplication-not-a-developer-tool)
  12. Like
    gonzales получил реакцию от Anatoliy в Сортировка элементов Скроллбокса   
    Решил вот так, если вдруг кому надо
    procedure TForm1.SortGroup; var i, j: integer; elementscount: byte; begin elementscount := Form1.RoomsScrollBox.Content.Children.Count; for i := 1 to elementscount do for j := 0 to elementscount - 1 do begin if (Form1.RoomsScrollBox.Content.Children.Items[j] as TEssence).SortIndex = i then begin (Form1.RoomsScrollBox.Content.Children.Items[j] as TEssence).Position.Y := 10000; break; end; end; end; соответственно элементы с самым низким индексом будут наверху. Единственное ограничение, что индексы элементов должны быть подряд, без пропусков. Это не очень удобно, надо будет переделать
  13. Like
    gonzales получил реакцию от Alisson R Oliveira в Сортировка элементов Скроллбокса   
    Решил вот так, если вдруг кому надо
    procedure TForm1.SortGroup; var i, j: integer; elementscount: byte; begin elementscount := Form1.RoomsScrollBox.Content.Children.Count; for i := 1 to elementscount do for j := 0 to elementscount - 1 do begin if (Form1.RoomsScrollBox.Content.Children.Items[j] as TEssence).SortIndex = i then begin (Form1.RoomsScrollBox.Content.Children.Items[j] as TEssence).Position.Y := 10000; break; end; end; end; соответственно элементы с самым низким индексом будут наверху. Единственное ограничение, что индексы элементов должны быть подряд, без пропусков. Это не очень удобно, надо будет переделать
  14. Like
    gonzales получил реакцию от Anatoliy в Пуши в IOS   
    Так а в чем конкретно проблема?
    В коде есть OnReceiveNotificationEvent - вызывается когда придет пуш. Соответственно вместо ShowMessage(aText); пишите вызов новой формы. Если она уже создана, то просто FormB.visible:=true;, если не создана, то вызов конструктора, (примерно так FormB:=TForm.Create;, соответственно конструктор должен быть описан) 
  15. Like
    gonzales получил реакцию от Ingalime в Пуши в IOS   
    Так а в чем конкретно проблема?
    В коде есть OnReceiveNotificationEvent - вызывается когда придет пуш. Соответственно вместо ShowMessage(aText); пишите вызов новой формы. Если она уже создана, то просто FormB.visible:=true;, если не создана, то вызов конструктора, (примерно так FormB:=TForm.Create;, соответственно конструктор должен быть описан) 
  16. Like
    gonzales получил реакцию от Kitty в Пуши в IOS   
    Все правильно, так и работает. При публикации в аппсторе sandbox (песочница) надо снять
  17. Like
    gonzales получил реакцию от Равиль Зарипов (ZuBy) в Пуши в IOS   
    Все правильно, так и работает. При публикации в аппсторе sandbox (песочница) надо снять
  18. Like
    gonzales получил реакцию от Anatoliy в Пуши в IOS   
    Все правильно, так и работает. При публикации в аппсторе sandbox (песочница) надо снять
  19. Like
    gonzales получил реакцию от Rusland в Пуши в IOS   
    Еще доп. накину на вентилятор, вдруг кому пригодится. Чтобы в iOS появилась наклейка с цифрой на иконке программы нужно добавить в JSON запроса пуша в объект notification пару badge=цифра
  20. Like
    gonzales получил реакцию от Kitty в Пуши в IOS   
    Еще доп. накину на вентилятор, вдруг кому пригодится. Чтобы в iOS появилась наклейка с цифрой на иконке программы нужно добавить в JSON запроса пуша в объект notification пару badge=цифра
  21. Thanks
    gonzales получил реакцию от #WAMACO в Пуши в IOS   
    Еще доп. накину на вентилятор, вдруг кому пригодится. Чтобы в iOS появилась наклейка с цифрой на иконке программы нужно добавить в JSON запроса пуша в объект notification пару badge=цифра
  22. Like
    gonzales отреагировална kami в Как убить кнопку кликнув на нее саму   
    Зачем вообще указывать имя компоненту, создаваемому в runtime? Они прекрасно живут и без этого, а для идентификации конкретного - есть куча свойств TagXXX
  23. Like
    gonzales получил реакцию от MAD_EVAL в Вылетает приложение для Андроид   
    Сам нашел!!!
    program Project1; uses //System.StartUpCopy, FMX.Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. закоментировал модуль System.StartupCopy и все заработало. Странно, попробывал на других, полноценных приложениях, тоже все завелось. Зачем вообще этот модуль нужен?????
  24. Like
    gonzales получил реакцию от UFatueks в У меня перестает работать фокус после смены фокуса с TWebBrowser на TEdit   
    Доброе время суток!
    Среда: RAD Studio Delphi XE5 Устройство: Android 4.0.4, HTC Incredible S Столкнулся со следующей проблемой, необходимо использовать браузер для аутентификации пользователя. Как Вы наверное знаете, компонент TWebBrowser не имеет фокуса ввода, то есть виртуальная клавиатура не отображается при клике на поле ввода в браузере. лечится такая фигня строками кода
    webbrowser1.canfocus := true; webbrowser1.SetFocus; НО!!!
    оказывается после таких строк фокус ввода не переходит на обычные поля вводя, типа TEdit. Даже строки
    edit6.canfocus := true; edit6.SetFocus; не помогают. 
    Что делать???
     
    Да, забыл сказать, что прога под Андроид
  25. Like
    gonzales получил реакцию от UFatueks в WebBrowser и фокус ввода   
    Начало вопроса http://fire-monkey.ru/topic/193-u-menia-perestaet-rabotat-fokus-posle-smeny-fok/
     
    В XE6 WebBrowser действительно работал правильно, с выходом апдейта опять начались проблемы, имеется тело Samsung Galaxy S3, при вызове клавиатуры в WebBrowser не отображаются вводимые буквы в поле ввода браузера. С телом HTC Incredible S работает правильно.
    Вот такая незадача, придется видимо откатываться обратно на XE6
×
×
  • Создать...