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

Barbanel

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

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

  • Посещение

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

    36

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

  1. Like
    Barbanel отреагировална Евгений Корепов в Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию   
    Где моё блюдечко!!! И чтоб с голубой каёмочкой!!! ? Просто никогда с этим не связывался, да и времени погружаться в нюансы просто нет ( 
    Связал. Мой косяк. Дебильный путь от Эмбы сбил с толку. Вот первый раз решил SDK решил оставить по умолчанию (обычно он у меня в D:\PlatformSDKs) и теперь пожинаю плоды...
    Теперь гораздо-гораздо лучше! Куча предупреждений, но кто их читает ? 
    D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>D:\Embarcadero\fmx.jar-rebuild.cmd D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>set JAVA_HOME=C:\Program Files\Java\jre1.8.0_121 D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>set SDK=C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>if "xD:\Embarcadero\Studio\20.0" == "x" set BDS=D:\Embarcadero\Studio\20.0 D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>cd D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>PATH C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;C:\Program Files\Java\jre1.8.0_121\bin\;d:\Embarcadero\Studio\20.0\bin;d:\Embarcadero\Studio\20.0\bin64;D:\Embarcadero\ Studio\20.0\bin;C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl;D:\Embarcadero\Studio\20.0\bin64;C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Win64;C:\Program Files\Microsoft MPI\Bin\;C:\ProgramData\Oracle\Java\javapath;D:\PlatformSDKs\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\Java\jdk1.7.0_71\bin;C:\WINDOWS\s ystem32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\OpenSSL-Win32\bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\OpenVPN\bin;C:\WINDOWS\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\PHP\;C:\ProgramData\ ComposerSetup\bin;C:\ProgramData\ComposerSetup\bin;C:\Users\ekore\AppData\Local\Microsoft\WindowsApps;C:\Users\ekore\AppData\Local\GitHubDesktop\bin;C:\Users\ekore\AppData\Local\Microsoft\WindowsApps;C:\PHP\;C:\Users\ekore\AppData\Roaming\Composer\vendor\bin;C:\ProgramData\ComposerSetup\bin; & javac com\embarcadero\firemonkey\webbrowser\* .java -cp "C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar" warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/graphics/Bitmap.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/net/http/SslError.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/os/Message.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/KeyEvent.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/HttpAuthHandler.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/SslErrorHandler.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/WebView.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/content/Context.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/WebChromeClient.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/GeolocationPermissions.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/GeolocationPermissions$Callback.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewTreeObserver.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewTreeObserver$OnGlobalFocusChangeListener.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewGroup.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewGroup$OnHierarchyChangeListener.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewParent.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewManager.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/View.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/graphics/drawable/Drawable.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/graphics/drawable/Drawable$Callback.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/KeyEvent$Callback.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/os/Parcelable.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/InputEvent.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/accessibility/AccessibilityEventSource.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/widget/AbsoluteLayout.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/webkit/WebViewClient.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug$ExportedProperty.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug$IntToString.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewDebug$FlagToString.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/view/ViewGroupOverlay.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. warning: C:\Users\Public\Documents\Embarcadero\Studio\20.0\CatalogRepository\AndroidSDK-2525_20.0.33219.4899\platforms\android-26\android.jar(android/util/SparseArray.class): major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. Note: com\embarcadero\firemonkey\webbrowser\WebClient.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. 32 warnings D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>rem copy "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar" "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar.bak" D:\Embarcadero\Studio\20.0\source\rtl\androiddex\java\fmx\src>jar -vuf "D:\Embarcadero\Studio\20.0\lib\android\debug\fmx.jar" com\embarcadero\firemonkey\webbrowser\OnWebViewListener.class com\embarcadero\firemonkey\webbrowser\WebBrowser.class com\embarcadero\firemonkey\webbrowser\WebBrowser$1.class com\embarcadero\firemonkey\webbrowser\WebClien t.class adding: com/embarcadero/firemonkey/webbrowser/OnWebViewListener.class(in = 1183) (out= 482)(deflated 59%) adding: com/embarcadero/firemonkey/webbrowser/WebBrowser.class(in = 1023) (out= 508)(deflated 50%) adding: com/embarcadero/firemonkey/webbrowser/WebClient.class(in = 2881) (out= 1151)(deflated 60%) adding: com/embarcadero/firemonkey/webbrowser/WebBrowser$1.class(in = 861) (out= 454)(deflated 47%) И в конце приз - все заработало! Геолокация в браузере работает. Браузер даже не спросил разрешения на геолокацию - в приложении разрешения есть, и как я понимаю теперь браузер использует разрешения приложения. 
  2. Like
    Barbanel отреагировална Alexey Shumkin в Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию   
    major version 52 is newer than 51, the highest major version supported by this compiler. It is recommended that the compiler be upgraded. это, вроде, убирается  by
     
    javac -source 1.7 -target 1.7 ...
    похоже, либы в android.jar скомпилены Java 7,  а тут Java 8
     
  3. Like
    Barbanel отреагировална Евгений Корепов в Андроид, WebBrowser, Geolocation - запрос разрешения на геолокацию   
    Бедные программисты java, сколько странных и не очевидных нюансов ((( 
    А для release достаточно поменять пути? Никаких дополнительных опций не нужно?
  4. Like
    Barbanel отреагировална krapotkin в Переезд на 10.3 Rio   
    сколько бед принесла уже стрельба в ногу под названием ProcessMessages
    как хорошо, что в Андроиде наконец всех отучат от этого крайне вредного трюка
    давайте формально 
    все что там у вас "высоконагруженное" выносите в потоки и пусть они работают. Ваши "потоки" пасутся в главном (Synchronize) и никакого толка нет
    концепцию надо поменять. запустили поток и занимайтесь своим делом. например покажите Splash
    а вернется поток - вот по возвращению и сделаете то, что этот Splash закроет.
    и уж точно потоки не должны ничего общего иметь с формами
    я писал статью про потоки, там про сплеши тоже есть в блоге и про ProcessMessages отдельная боль...
    http://www.cyberforum.ru/blogs/469693/blog4875.html
     
  5. Like
    Barbanel отреагировална mazayhin в api KeyStore как реализовать в с++ Builder   
    Пример во вложении. Первым делом надо сделать Init.
    Пример написан как попало, все надергано кусками, к сожалению.
    Если кто-нибудь доведет до ума, и выложит на форум - будет замечательно!
    Обратите внимание - операция CreateRSAEntry - длительная, чем больше ключ, тем дольше. В тесте после нажатия на кнопку подвиснет на пару секунд.
    Шифрованные строки в примере надо смотреть в logcat. Так же для AES туда выведен вектор IV.
    Преобразование в/из base64 - нативное.
     
     
    KeyStore.zip
  6. Like
    Barbanel отреагировална krapotkin в Фреймворк для стандартного ListView   
    вторая версия демо
    -работа над ошибками
    -устранил утечки памяти
    -расширил функционал
    -добавил картинки
    -совместимость с Android
    Приложил EXE и APK
    Скорее всего, для 100500 записей не потянет, т.к. слишком много арифметики для раскладки каждого элемента на каждом итеме, но для сотни - хватает.
    ListViewTest2.7z
    pasFiles.rar
  7. Like
    Barbanel отреагировална mazayhin в api KeyStore как реализовать в с++ Builder   
    Ок! А если кто нибудь листнер на java для сканера отпечатков напишет, что б колбэк в делфи прокинуть, то покажу и работу со сканером....
  8. Like
    Barbanel отреагировална IVGSoft в Скроллинг на канве   
    Первым делом FMX пытается использовать аппаратное ускорение (DirectX на Windows), при невозможности - GDI+.
    Посмотрите исходники и увидите на каком канвасе все рисуется.
  9. Like
    Barbanel отреагировална mazayhin в Ориентация на Север и углы наклона телефона   
    После получения матрицы, определяете поворот устройства через IFMXScreenService.GetScreenOrientation к примеру, или опять же, напрямую через api.
    Получаете углы (var x, y: integer; OutMatrix: TJavaArray<single>(16)):
    0: ничего не делаем, в т.ч. ремап
    90: X := TJSensorManager.JavaClass.AXIS_Y; Y := TJSensorManager.JavaClass.AXIS_MINUS_X;
    180: X := TJSensorManager.JavaClass.AXIS_X; Y := TJSensorManager.JavaClass.AXIS_MINUS_Y;
    270: X := TJSensorManager.JavaClass.AXIS_MINUS_Y; Y := TJSensorManager.JavaClass.AXIS_X;
    TJSensorManager.JavaClass.remapCoordinateSystem(FMatrix(изначальная матрица), x, y, OutMatrix)
    TJSensorManager.JavaClass.getOrientation(OutMatrix, FOrientation)
  10. Like
    Barbanel отреагировална mazayhin в Ориентация на Север и углы наклона телефона   
    Да, все верно, именно об этом и писал.
  11. Like
    Barbanel отреагировална Bob32 в Ориентация на Север и углы наклона телефона   
    конечно выложу, если ума хватит ))))
    откомпилировал Ваше приложение = все работает, получаем данные акселерометра, магнитного датчика и углы (их я перевел в градусы для большей наглядности).
    но тут наступает вот какой момент (возможно, Вы именно о нем писали, когда упоминали об ориентации экрана)…
    когда телефон горизонтально (смотришь на экран сверху) - четко видно, что в первом углу = Азимут на север, который меняется от -180 до +180. 0 - север.
    когда поднимаешь телефон вертикально (смотришь на телефон сбоку) - этот угол  "едет" - те он начинает показывать что-то, но не азимут на север.
    предыдущая статья на хабре этого автора (я тоже читал обе эти статьи когда пытался разобраться сам), где он использует устаревший метод и потом выкладывает апк-шку - так вот в этой предыдущей версии (в ее апк-шке) углы определяются исключительно верно- поднимай телефон, крути, а азимут на север показывается четко. аналогично по двум другим углам. тем этот метод меня и зацепил....
    Вы об этом говорили, когда писали про "ориентацию экрана" или имели ввиду что-то другое?
  12. Like
    Barbanel отреагировална mazayhin в Ориентация на Север и углы наклона телефона   
    Все на скорую руку. Никаких проверок не делал. Вообще, за основу брал статью с хабра https://habr.com/ru/post/137820/
    Так же учтите, что необходимо проверить наличие магнитного датчика, т.к. без него getRotationMatrix всегда будет возвращать false, т.о. не получится определить положение устройства. Так же, еще, getOrientation вернет неправильные значения при повороте телефона, для этого надо определять текущую ориентацию экрана, и на основании этого делать remapCoordinateSystem, и только после этого уже определять положение.
    Смотрите, принцип понятен.
    Обертки взял от FMXExpress, немного подчистил, что бы не тянуть лишнего.
    Если будете брать сами, то обратите внимание:
    android.hardware.SensorManager:
    надо изменить JavaSignature на [JavaSignature('android/hardware/SensorManager')] для интерфейса JSensorManager (убрать $ и что после него, иначе, EJNIFatal)
    android.hardware.SensorEventListener:
    неправильно унаследованы интерфейсы (от JObject), а так как SensorEventListener это интерфейс, наследуемся от IJavaClass и IJavaInstance соответственно.
     
    SensorManager.zip
  13. Like
    Barbanel отреагировална gonzales в Рабочая комбинация программ для публикации в 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.
  14. Like
    Barbanel получил реакцию от Tumaso в Скроллинг на канве   
    Доброго времени.
    Я не могу вам сказать где именно ошибка (я даже не уверен что она есть), вы пишете я С++, а у меня лишь Delphi под руками. Я скачал ваш проект и запустил ехе. К сож. он не запустился на моей матине из-за отсутсвующих библиотек rtl250.bpl
    Соотв. я не вижу как работает приложение, и как выглядят ваши фризы.
    Судя по всему вы пытаетесь сделать игрушку, либо что-то аналогичное. Делать игрушку используя один лишь FMX или VCL имхо нелогично, т.к. эти платформы не предназначены для быстрой и плавной отрисовки графики.
    Если вам реально необходима плавная отрисовка - используйте либо OpenGL либо DirectX. Вот здесь то и будет на все 100% "аппаратный скролл".
    Это и есть тот совет, "как" написать.
    Этот форум как раз для этого предназначен, и количество постов как раз тому подтверждение. Есть только одно НО:
    никто здесь не обязан сразу броситься и настрочить вам готовое решение. Если человек имеет представление где может быть проблема, и что еще более важно - имеет время и желание писать ответ - он вам ответит.
    Далеко не каждый из тех кто прочитал тему может или хочет вам (или мне, или кому-либо еще) отвечать.
    Ярослав же и так имеет чем заняться и совершенно не обязан отвечать в каждой теме. Вы не спрашиваете на форуме MSDN почему вам лично мистер Гейтс не отвечает.
    Ок, это было отступление.
    Если вы хотите примеры как использовать графические библиотеки - вам на немного другие специализированные форумы типа gamedev.ru
    Конкретно для Delphi и OpenGL я могу дать такую ссылку sulaco Здесь множество простейших примеров использования OpenGL, я в свое время именно здесь его и осваивал. 
  15. Like
    Barbanel получил реакцию от Maximus в Скроллинг на канве   
    Доброго времени.
    Я не могу вам сказать где именно ошибка (я даже не уверен что она есть), вы пишете я С++, а у меня лишь Delphi под руками. Я скачал ваш проект и запустил ехе. К сож. он не запустился на моей матине из-за отсутсвующих библиотек rtl250.bpl
    Соотв. я не вижу как работает приложение, и как выглядят ваши фризы.
    Судя по всему вы пытаетесь сделать игрушку, либо что-то аналогичное. Делать игрушку используя один лишь FMX или VCL имхо нелогично, т.к. эти платформы не предназначены для быстрой и плавной отрисовки графики.
    Если вам реально необходима плавная отрисовка - используйте либо OpenGL либо DirectX. Вот здесь то и будет на все 100% "аппаратный скролл".
    Это и есть тот совет, "как" написать.
    Этот форум как раз для этого предназначен, и количество постов как раз тому подтверждение. Есть только одно НО:
    никто здесь не обязан сразу броситься и настрочить вам готовое решение. Если человек имеет представление где может быть проблема, и что еще более важно - имеет время и желание писать ответ - он вам ответит.
    Далеко не каждый из тех кто прочитал тему может или хочет вам (или мне, или кому-либо еще) отвечать.
    Ярослав же и так имеет чем заняться и совершенно не обязан отвечать в каждой теме. Вы не спрашиваете на форуме MSDN почему вам лично мистер Гейтс не отвечает.
    Ок, это было отступление.
    Если вы хотите примеры как использовать графические библиотеки - вам на немного другие специализированные форумы типа gamedev.ru
    Конкретно для Delphi и OpenGL я могу дать такую ссылку sulaco Здесь множество простейших примеров использования OpenGL, я в свое время именно здесь его и осваивал. 
  16. Like
    Barbanel отреагировална #WAMACO в Скроллинг на канве   
    В RAD есть GetIt, там есть примеры игрушек. В частности, в одной из них плавно движется фон и еще объекты летают шустро достаточно.
    посмотрите...
    есть еще открытый движок (сделан на Delphi)
    https://github.com/castle-engine
    тоже интересный. 
  17. Like
    Barbanel отреагировална #WAMACO в Скроллинг на канве   
    Приходите в чат в Telegram., там был человек, который пишет игрушки на Delphi (по крайней мере был)
    Там если что, старожилы подскажут!
  18. Like
    Barbanel отреагировална POV в Скроллинг на канве   
    Лет 10 назад делал проект по 3Д измерения (vcl проект). Массив точек был на гигабайт. Он сам в память минуту грузился. Но далее я его в вершины (opengl) перегружал и все манипуляции с отражениями (поворот, сдвиг) делались уже силами ОСи и аппаратной части. Прекрасно работало.
    Неужто какой-нибудь mash в FMX иначе работает? Лет 5 назад FMX приложение делал - с солнышком, планетой Земля (с текстурами), с метеоритом по эллипсу летающему - всё порхало. Под виндой... хотя вроде разок на мобиле запустили и там тоже летало.
    Ну так и сделать - попиксельно картинку в mash толщиной в 1 пиксель загрузить и двигать как угодно.
     
    update: я это баловство даже нашел - кучу вершин крутит FMX прекрасно. 

  19. Like
    Barbanel отреагировална krapotkin в Фреймворк для стандартного ListView   
    ага тоже столкнулся. не профилировал пока, но в целом логично, он там выражения парсит непрерывно, размеры-то динамические, зависят от каждой строки данных
    надо попробовать установить жесткие, посмотреть, как изменится нагрузка
  20. Like
    Barbanel отреагировална krapotkin в Фреймворк для стандартного ListView   
    Всем привет!
    После долгого творческого запоя я запилил альфу либы, которая позволяет юзать обычный, не-генномодифицированный ListView.
    Данные подаются в виде модели данных, описание раскладки итема лежит в JSON.

    Для работы пишется примитивный наследник класса-адаптера, который биндит данные модели на элементы из JSON. Я решил, что руками делать это дешевле чем через RTTI
    { TMyAdapter } procedure TMyAdapter.SetupDrawableContent(const ADrawable: TListItemDrawable; const AData: TMyData); begin if SameText( ADrawable.Name, 'text') then begin (ADrawable as TListItemText).Text := AData.Text; end else if SameText( ADrawable.Name, 'detail') then begin (ADrawable as TListItemText).Text := AData.Detail; end else if SameText( ADrawable.Name, 'balance') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Balance); end else if SameText( ADrawable.Name, 'reserved') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Reserved); end end; Главная хитрость и отличие от стандартного DynamicAppearance+LiveBinding - переменная высота итемов ListView и использование арифметики в описании раскладки.
    Можно указать Detail.Y  = Text.Bottom + 5, ItemHeight = Detail.Bottom + 10, Detail.W = ItemWidth/2 - X
    {"Kind":"rect","Name":"BonusRect","Value":"", "Place":{"X":"itemwidth*3/4","Y":"Text.Y","W":"ItemWidth/4-5","H":"50"}, "BorderColor":"#FF005500", "Color":"lime", "LineWidth":3}, {"TextHAlign":2,"TextVAlign":1,"Kind":"text","Name":"Balance","Value":"", "Place":{"X":"BonusRect.x+5","Y":"Text.Y","W":"BonusRect.w-10","H":"50"}, "WordWrap":true, "Color" :"Black", "Font":{"Size":18,"Style":""}} ], "ItemHeight":"detail.bottom+10", Это дает довольно гибкую систему. Не на все случаи жизни, но все, что нужно, можно после автоматической раскладки дополнительно приписать в OnUpdateObjects 
    Код для работы примерно такой
    procedure TForm1.FormCreate(Sender: TObject); begin data:= TMyDataList.CreateFromFile(ExePath()+'data.json'); // загрузка в модель данных Adapter := TMyAdapter.Create(lvWallets, data.Items, ExePath()+'pattern.json'); // создание адаптера и загрузка шаблона Adapter.Pattern.SetupListView(lvWallets); // задать отступы и разную мелочь Adapter.ResetView(); // здесь в цикле из модели данных создается нужное количество итемов ListView end; procedure TForm1.lvWalletsUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin Adapter.SetupContent(AItem); // загрузить текст, картинки и другое содержимое в элементы итема Adapter.Pattern.DoLayout(AItem); // поправить раскладку в соответствии с содержимым элементов итема end; Для использования кроме стандартных - текст, картинка, кнопка - создано несколько дополнительных элементов итема - прямоугольник, круг, уголок, линия.
    Отличие от ModernLV - , 
    1) все происходит без правки системных файлов
    2) пока нет колонок и других особых изысков.
    На результат работы смотреть тут. Исходники пока не причесаны, будут чуть позже
    UPD.
    ссылки на репозитории ниже
     
  21. Like
    Barbanel получил реакцию от Dev в Runtime permissions in Delphi 10.3 Rio   
    В поставке 10.3 есть примеры работы с правами.
    Один из них можно найти по такому пути:
    C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Media\PhotoEditorDemo
    Что интересно, этот же код можно без изменений использовать под любой другой платформой.
    На других платформах приложение будет считать что ему выдали все права, и соответственно запускать все коллбеки без каких-либо вопросов.
  22. Like
    Barbanel отреагировална x11 в Как добавить «ярлыки приложения» для Android в приложении FMX   
    Может кому пригодится
    https://blog.andreamagni.eu/2019/02/how-to-add-android-app-shortcuts-to-a-fmx-application/

  23. Like
    Barbanel отреагировална mmover в Рамка вокруг объекта/текста/изображения   
    TSelection?
  24. Like
    Barbanel получил реакцию от Сергей Сергеев в Редизайн, создание стиля, существующего приложения   
    Ну так вы спрашивайте, здесь много людей могут ответить на такие вопросы.
    Также уверен, здесь есть люди, прошедшие эти курсы ?
  25. Like
    Barbanel получил реакцию от Brovin Yaroslav в Runtime permissions in Delphi 10.3 Rio   
    В поставке 10.3 есть примеры работы с правами.
    Один из них можно найти по такому пути:
    C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Media\PhotoEditorDemo
    Что интересно, этот же код можно без изменений использовать под любой другой платформой.
    На других платформах приложение будет считать что ему выдали все права, и соответственно запускать все коллбеки без каких-либо вопросов.
×
×
  • Создать...