Alex7wrt

Пользователи
  • Публикации

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

  • Посещение

  • Days Won

    2

Alex7wrt last won the day on 27 февраля 2016

Alex7wrt had the most liked content!

О Alex7wrt

  • Звание
    Продвинутый пользователь

Информация

  • Пол
    Мужчина

Посетители профиля

577 просмотров профиля
  1. Добрый день. Есть такая проблема - скорость прокрутки ListView в Tokyo происходит с заметно большими тормозами, чем в Berlin. С чем это может быть связано? И можно ли это как-то исправить? Проверялось на нескольких устройствах, причем это справедливо как для ListView из коробки, так и для ModernListView. Можно ли это исправить параметрами TAniCalculations в ModernListView или это тормоза принципиально иного рода? А в целом, мне кажется, что под Tokyo интерфейс приложения более отзывчивый, хотя есть и странные глюки, о которых уже много писали. Но мне в Tokyo пока критична именно скорость прокрутки ListView.
  2. Хочу поделиться картинкой с помощью ShowShareSheetAction. При выборе отправки на gmail получаю сообщение "Permission Denied for the attachment" и отправляется только текст, в facebook и facebook messenger отправляется только картинка без текста. Можно ли это исправить? Чтобы отправлялся текст с картинкой? И можно ли заменить заголовок в окошке выбора способа отправки - отображается как "Send text/image using", не зависимо от языка. А хотелось бы что-то покрасивее. Delphi 10 Berlin
  3. Жаль, конечно. Особенно жаль снова лишаться возможности загрузки изображений в потоке. Чрезвычайно удобная вещь...
  4. При переходе на Tokyo обнаружил проблемы с правильной отрисовкой на канве, которых ранее не наблюдалось.В произвольных местах канвы появляются мигающие артефакты, которые периодически исчезают и снова появляются. Под Berlin и в более ранних версиях все было нормально. Кто-нибудь уже сталкивался с подобным и как это можно устранить?
  5. Сам задаюсь этим вопросом. Насколько я понимаю, TBannerAD для iOS работал под iAd, который прикрыли... Поэтому TBannerAD под iOS бесполезен. Можно использовать AdMob под iOS, для этого нужно либо самому подключать Java библиотеки Admob к проекту (у гугла есть специальная версия Admob API под iOS), либо использовать готовые проекты. Например, вот это Но было бы хорошо, чтобы эта возможность была из коробки Delphi, включая межстраничные объявления
  6. Добрый день Как под Windows программно переключать состояния мониторов (Дублировать, Расширить, использовать только 1 или 2) ?
  7. Спасибо. А где можно почитать, как его использовать?
  8. var times: TStopwatch; ........ freq:=times.Frequency; Есть cчетчик в OnPaint if times.GetTimeStamp-curtime>freq then begin fps:=round(frames*freq/(times.GetTimeStamp-curtime)); curtime:=times.GetTimeStamp; frames:=0; end; inc(frames); Запускаю программу, которая делает вычисления и отрисовывает результаты в OnPaint. На компе Win может быть и более 300 кадров в секунду, на Android - макс. 60. Если сильно усложнить задачу - везде меньше 60 к/с, если облегчить - в Win увеличится, в Android останется 60.
  9. Интересная идея насчет interlocked. Буду пробовать. Спасибо.
  10. Спасибо, но возможно это подходит для "одноразовых задач" - когда нужен один проход потоков, потому что иначе приходится каждый раз после отрисовки создавать потоки заново, из-за этого теряется производительность (я писал об этом в первом посте). Было бы лучше, если всю конструкцию можно было поместить в бесконечный цикл, не прерывая потоков.
  11. Возможно в файле манифеста нужно дописать android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
  12. Создается отдельный поток на какую-то часть от общего числа шариков (количество шариков на каждый поток зависит от их количества и количества потоков). В потоке просчитывается изменение координат и скоростей этого массива шариков на 1 итерацию. После просчета всех потоков должен обновиться экран - естественно, в главном потоке. Вопрос как синхронизировать завершение всех потоков с отрисовкой на экране и при этом получить как можно более высокую производительность.
  13. При измерении частоты кадров (отрисовок холста) в событии OnPaint под Android значение не поднимается выше 60 Гц. При этом под Windows такого ограничения нет. Как это можно исправить? Поскольку это мешает оценить реальную картину быстродествия на устройстве.
  14. Добрый день. Не знаю как правильно синхронизировать потоки. Выполняю математические расчеты. Нужно использовать все ядра процессора и после каждого полного прохода выводить результат на экран, после вывода на экран нужно сразу же начинать новый проход и тд. И при этом нужна максимальная производительность. Процедура распределения задачи на разное количество ядер есть. Но не получается совместить синхронизацию с максимальной производительностью. Сама задача - расчёт столкновений шариков в двумерном пространстве. Цель - макс количество кадров в секунду. Делал разными способами, но каждый раз получается не то, что нужно. Если в качестве синхронизации использовать TThread.OnTerminate, где по счетчику определять все ли потоки завершены и потом уже выводить на экран и создавать потоки заново, то получается очень медленно. 2 ядра дают 10% преимущества перед 1 ядром. Наверно потому что много времени уходит на создание потоков и ожидание выполнения всех. Если каждый поток выполнять бесконечным циклом, не давая ему завершиться и в конце итерации осуществлять вывод на экран, то получается максимально быстро но вместо одного вывода на экран число выводов равно числу потоков и невозможно правильно отследить частоту кадров. И получается рассинхронизация потоков. И много промежуточных вариантов пробовал тоже. Как правильно нужно организовать взаимодействия потоков, чтобы была максимальная производительность?