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

Лидеры

  1. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      7

    • Постов

      2 517


  2. Andrey Efimov

    Andrey Efimov

    Модераторы


    • Баллы

      2

    • Постов

      842


  3. Satellite

    Satellite

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


    • Баллы

      2

    • Постов

      52


  4. Евгений Корепов

    Евгений Корепов

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


    • Баллы

      2

    • Постов

      738


Популярный контент

Показан контент с высокой репутацией 04.07.2016 во всех областях

  1. У меня всё сработало, внёс одно изменение (не считая изменений в путях sdk) Не правильно обновляется, потому что вы разместили класс в неправильной папке com.embarcadero\rtl\notifications\NotificationPublisher.class Должно быть com\embarcadero\rtl\notifications\NotificationPublisher.class и соответственно папка embarcadero должна лежать в папке com.
    2 балла
  2. Satellite

    StatusBar Color

    Исправление проблемы с обновлением бара на Android 5.1: В настройках проекта выбираем No TitleBar: Project -> Options -> Version Info -> Theme: No TitleBar. Код события Onresize необходимо переместить в конец Onshow, т.к. в Onresize перестанет возвращаться высота бара. D: После выполнения этих действий, должно работать нормально на любом устройстве.
    2 балла
  3. Предыстория была такая: Изначально такие плитки были сделаны на Button'ах (стиль) и TPresentedScrollBox. Но как только пошло дело в тест основательный идею тут же выбросил. 120+ элементов выключили телефон (samsung ace2 duos) при отрисовке, точней при динамической загрузке картинок. да и в целом вся эта беда работает медленней чем реализация на TListView Я не художник, но смысл вроде передал Пример: У нас есть 12 элементов,и 4 колонки Можно в LV отрисовывать дополнительные "контролы" и поместить в один реальный айтем, 4 виртуальные панельки (в нашем случае) Для того чтобы такое получилось: 1) ListView должна при ресайзе рассчитать сколько колонок она может иметь (ширина LV / на ширину одной панельки) 2) дальше Вам нужно будет разбить отрисовку Itema на 4 панельки 2.1) тоже самое проделать и при выделении 3) При таком подходе не будет стандартных элементов отображения (Text, Detail, Image и прочее нужно выключить) Добавление Itema будет проходить в два цикла: первый добавляет реальный Item (0-2), а второй заполняет данными наши поля в панельках (title1, price1, bitmap1, title2, price2, bitmap2 и тд...) 4) Ну и самое важное в OnUpdateObjects все это отрисовать Надеюсь вам это поможет!
    2 балла
  4. Доброго дня! Решил я побороть проблемку single-line в нотификациях (в частности push, т.к. локальные можно выводить в несколько строк) Почитал в интернете, набрел на такие статьи https://mobilefirstplatform.ibmcloud.com/blog/2015/11/24/multi-line-gcm-push-notifications/ https://github.com/vivinkrishnan/multi-line-push/blob/master/MultiLineNotifications/apps/MultiLineNotifications/android/native/src/com/MultiLineNotifications/GCMIntentService.java судя по ним нужно просто подменить библиотеку com.embarcadero.gcm.notifications.GCMIntentService на измененную как статье выше Вроде плёвое дело, но где найти эту библиотеку и чем скомпилировать исходник? Если у кого есть познания в этой области, подскажите в какую сторону рыть. Нам ведь всем такое пригодится fmx.zip (Seattle, Berlin) LocalMultiline.zip (Berlin) https://github.com/rzaripov1990/Multiline-Push-and-Local-Notifications
    1 балл
  5. Из PlatformSDK (PlatformSDKs\android-sdk-windows\sources\android-23\android\support\v4\content\) портировал в Delphi класс TJLocalBroadcastManager. Это очень полезный класс, если вы не хотите рассылать сообщения по всей системе, а есть необходимость общаться только внутри приложения или между хост-приложением и сервисом. Во вложении сам класс, в своем приложении убедитесь, что в Target Platforms (Android) → Android → Libraries включена библиотека android-support-v4.dex.jar. Прилагаю пример, для изучения и использования в работе, который демонстрирует работу обычного BroadcastReceiver и LocalBroadcastReceiver. В примере демонстрируется работа сообщений в приложении и сервисе. Сначала делаем build проекта LBCRService, потом будет доступна возможность собрать LocalBCR. Собираю в Berlin 10.1, но на младших версиях тоже должно работать, по крайней мере в Seatlle. В реализации методов procedure RegisterReceiver(); procedure UnRegisterReceiver(); необходимо снять комментарий с соответствующих строчек, в зависимости от того, какой тип ресивера вы хотите использовать. Androidapi.JNI.LocalBroadcastManager.pas.zip LocalBroadCastReceiver.zip
    1 балл
  6. Чтобы убить процесс нужной программы на андроид устройстве разработчикам java справка дает такую рекомендацию: Можно ли эту рекомендацию применить в Delphi/C++ Builder? Если да то, как будет выглядеть этот код? Я пробовала использовать альтернативную эту рекомендацию: Delphi Android ActivityManager ActivityManager.killBackgroundProcesses(String packageName) Но в С++ этот PAS файл у меня не заработал.
    1 балл
  7. Способов множество, вот один из них: function TFormMain.GetCheckedIndex : Integer; Var I : Integer; begin for I := 0 to ListBox.Count-1 do begin if Assigned(ListBox.ItemByIndex(I).Children.Items[0]) then if ListBox.ItemByIndex(I).Children.Items[0] is TRadioButton then if (ListBox.ItemByIndex(I).Children.Items[0] as TRadioButton).IsChecked Then begin Result:=I; Exit; end; end; Result:=-1; end; Или же можно назначить всем один обработчик изменения ARadioButton.OnChange:=RadioButtonChange; procedure TFormMain.RadioButtonChange(Sender: TObject); Var Index : Integer; begin if Sender is TRadioButton then Index:=((Sender as TRadioButton).Parent as TListBoxItem).Index; end;
    1 балл
  8. В два цикла или цикл + findcomponent И если задать имя радиобаттонам будет быстрее
    1 балл
  9. вот батник на исполнение с генерацией classes.dex (в идеале) @echo off setlocal if x%ANDROID_SDK% == x set ANDROID_SDK="C:\Users\Public\Documents\Embarcadero\Studio\17.0\PlatformSDKs\android-sdk-windows" if x%JAVA% == x set JAVA="C:\Program Files\Java\jdk1.8.0_66\bin" set ANDROID_PLATFORM=%ANDROID_SDK%\platforms\android-23 set DX_LIB=%ANDROID_SDK%\build-tools\23.0.3\lib set EMBO_DEX="C:\Program Files (x86)\Embarcadero\Studio\17.0\lib\android\release\classes.dex" set FMX_JAR="C:\Program Files (x86)\Embarcadero\Studio\17.0\lib\android\release\fmx.jar" set PROJ_DIR=%CD% set VERBOSE=0 echo. echo COPY ORIGINAL fmx.jar copy %FMX_JAR% %PROJ_DIR%\fmx.jar" echo. echo UPDATE FILE NotificationPublisher.class %JAVA%\jar uf "fmx.jar" "com.embarcadero\rtl\notifications\NotificationPublisher.class" echo. echo CONVERTING FROM jar TO dex mkdir output\dex 2> nul if x%VERBOSE% == x1 SET VERBOSE_FLAG=--verbose call %DX_LIB%\dx.jar --dex %VERBOSE_FLAG% --output=%PROJ_DIR%\output\dex\test_classes.dex --positions=lines %PROJ_DIR%\fmx.jar echo. echo MERGING dex FILES echo.com.android.dx.merge.DexMerger 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% echo. del output\dex\test_classes.dex del output\jar\test_classes.jar rmdir output\jar echo. echo Now we have the end result, which is output\dex\classes.dex :Exit endlocal распаковать архив проверить пути к java, android sdk, delphi что не работает: обновление JAR файла (с оригинальным fmx.jar все генерируется) directory.rar
    1 балл
  10. java файл NotificationPublisher(java).rar class файл NotificationPublisher(class).rar fmx.jar файл переименован в rar fmx.jar.rar откомпилил файл вот так cls&javac -d "c:\users\ZuBy" "NotificationPublisher.java" -cp "android-19.jar";"android-support-v4.jar" потом просто заменил в jar архиве файл NotificationPublisher.class на новый (незнаю, правильно или нет) так делать не правильно, пробовал такой командой (источник) cls&jar uf fmx.jar "com.embarcadero\rtl\notifications\NotificationPublisher.class" ошибок не выдаёт, но файл имеет не правильную иерархию а вот так должно быть уже незнаю что делать
    1 балл
  11. Alexander

    Eddystone

    Может это поможет
    1 балл
  12. Равиль Зарипов (ZuBy)

    StatusBar Color

    обновленная версия StatusBarColor_update.zip
    1 балл
  13. Фух! Вот уж воистину. Бьёшься-бьёшься — не получается. Спросишь в интернете — и наведут на решение. Всё, что GetShared… не работает. Android 5.1 без карты памяти не хочет сохранять туда файл. У меня по крайней мере. Но очередной просмотр доступных методов у TPath навёл меня на вот какой: GetPublicPath. Описание от Embarcadero у него следующее: http://docwiki.embarcadero.com/Libraries/Berlin/en/System.IOUtils.TPath.GetPublicPath Собственно, судя по описанию, то, что нужно. Пробую. Не работает. На эмуляторе GetPublicPath возвращает пустую строку. Из описания: Расстроился. Но на всякий случай попробовал на реальном устройстве под Android 5.1. И о, чудо! GetPublicPath возвращает «/storage/sdcard0/Android/data/com.<ХХХХ.myappname>/files» и установка apk оттуда через Intent замечательно работает. Проводник тоже видит эту папку и файлы в ней. На Android 4.2 тоже работает. Всем большое спасибо!
    1 балл
  14. Доброго дня. Было нечто подобное, подробностей уже и не помню, но - как собирается Dll в релизе и в дебаге? Имеется ввиду статическая или динамическая линковка. Если они разные, то при работе с динамическим рантаймом все нормально, а вот когда собираете статически - вылазит ошибка - может чего переоптимизирует, или версии рантайма отличаются. Или попробуйте, чем черт не шутит, сменить соглашения о вызове, на cdecl к примеру
    1 балл
  15. Тут главное не забыть RadioButton1.GroupName:='SelectDestiny' и так для всех RadioButton одинаковый GroupName, тогда выбираться будет только один. procedure TFormMain.CreateOpenComboEdit; Const GroupName = 'Select destiny'; Var I : Integer; ALisBoxItem : TListBoxItem; ARadioButton : TRadioButton; begin for I := 0 to 5 do begin ALisBoxItem:=TListBoxItem.Create(ListBox); ALisBoxItem.Text:=''; ARadioButton:=TRadioButton.Create(ALisBoxItem); ARadioButton.GroupName:=GroupName; ARadioButton.Text:=GroupName+' '+I.ToString; ARadioButton.Align:=TAlignLayout.Client; ALisBoxItem.AddObject(ARadioButton); ListBox.AddObject(ALisBoxItem); end; end;
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...