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

Alex7wrt

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

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

  • Посещение

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

    31

Весь контент Alex7wrt

  1. У Canvas есть много методов для отрисовки различных объектов. Сетку и отрезки рисую с помощью DrawLine, подписи - FillText, сам график - FillPolygon либо FillPath. Если обычная диаграмма - FillRect, круговая - FillArc.
  2. Предлагаю рисовать на канве. По-моему это более универсальный вариант. Я, например, так и рисую графики.
  3. Да нет, таймер не походит. Нужен прямой подход.
  4. Спасибо за совет, но это смахивает на костыль )) И в каком событии проверять координаты? Кстати, есть ли способ узнать координаты курсора мыши в пределах всей формы с учетом дочерних компонентов?
  5. Добрый день Столкнулся со следующей задачей, и пока не могу ее решить: Есть заполненный ListBox, в общем случае он с вертикальной полосой прокрутки. Нужно отработать для него событие OnMouseLeave. Точнее говоря, нужно сделать так, чтобы, когда курсор мыши покидает его пределы, то делаем ListBox.Visible:=False. Но дело в том, что, во-первых, событие OnMouseLeave в общем случае не сработает, так как в заполненном ListBox-е это событие перехватывается его дочерними элементами, а во вторых вертикальная полоса прокрутки не учитывается в событиях мыши ListBox-а. К тому же, даже если я сделаю какую-нибудь внешнюю рамку, и буду обрабатывать OnMouseLeave для нее, то все равно при быстром движении мыши событие не происходит. Потому прошу подсказать оптимальный и надежный способ, как сделать ListBox невидимым, когда курсор мыши находится за его пределами. Наверно этот вопрос относится к любому компоненту, который полностью заполнен по площади дочерними компонентами, и в комплекте со скролбоксом.
  6. ИМХО, можно разместить версию с Target SDK 14, чтобы собрать как можно большую аудиторию, а в ноябре обновить приложение до 26.
  7. Не уверен, что в этом дело, но попробуйте в Deployment снять галку с одной строки, где встречается libnative-activity.so и library\lib\armeabi\
  8. TInteractiveGesture.Zoom
  9. Если вы имеете ввиду, что событие OnClick (точнее говоря OnMouseUp) не наступает, когда палец находится за пределами контрола, то попробуте установить для контрола свойтсво AutoCapture:=True, чтобы он мог реагировать на события за его пределами.
  10. Да, такой подход допустим, его рассматривал среди прочего. Но хочется узнать, есть ли более "прямолинейный подход" в FMX.
  11. Ваш пример с фреймом немного из другой оперы, поскольку TObjectList нельзя указать в качестве Owner. Это список, а не комонент, иначе все было бы гораздо проще. А для управления жизненным циклом обьектов как раз и установлен в True параметр AOwnsObjects.
  12. Вряд ли. Списков может быть очень много. Нужно у каждого спрашивать, есть ли в нем нужный объект? Есть ли способ у самого объекта получить ссылку на тот ObjectList, к которому он принадлежит?
  13. Добрый день Столкнулся с такой задачей: Существует несколько TObjectList<TRectangle>. При создании каждого из них AOwnsObjects задано как True. RectList[i]:=TObjectList<TRectangle>.Create(True); ............ Nrect:=TRectangle.Create(nil); Nrect.Parent:=Form1; RectList[i].Add(Nrect); Существует ли способ определить, к какому из TObjectList принадлежит элемент?
  14. Выше правильно написали о глюках в Tokyo под Android. Также учтите, что событие таймера, также как и анимации, обрабатываются в главном потоке. При этом вы задали достаточно маленький интервал для таймера. Поэтому, лучше перенести действия над визуальными компонентами за пределы таймера (если они там есть), а сам таймер сделать на основе потоков.
  15. В событии OnResize формы проверять width > height и для каждого из двух вариантов переприсваивать позиции и размеры тех контролов, которые должны меняться.
  16. Насчёт 10.2.2 не знаю, наверно так, раз у вас это наблюдается, но у меня вообще в этой версии под Андроид вылазят артефакты, иногда мерцают части отрисовки примерно как у вас в Пятнашках. В результате вернулся на 10.1.2. А в ней с ProcessMessages ничего такого не замечал, да и вы тоже пишите, что использовали раньше. Прочитал ваш пост. Приблизительно понял, что вы имеете в виду. Но лично у меня ProcessMessages никогда не приводил к сбоям. Возможно потому, что использовал ее всегда в простых ситуациях вроде тех, о которых писал в посте выше.
  17. Ну, даже Ярослав считает это плохим стилем. )) Тогда объясните плз, почему это плохой стиль. Я так понимаю, плохой стиль называется плохим, если он может привести к непредвиденному сбою. Но если инструмент не приводит к сбою и решает поставленную задачу, то, как мне кажется, он не обязательно является плохим стилем.
  18. Зависит от контекста. Можно найти много полезных применений. Помню, первый раз пользовался еще на Delphi 7 (там немного по-другому называлась), когда рисовал график по точкам и нужно было, чтобы график появился не сразу, а как бы анимацией. Или например, когда нужно подсветить выбранный Item (пункт меню), перед тем как скрыть само меню, если после этого сразу выполняются какие-то действия.
  19. Там же написано следующее: Прежде чем проводить тестирование, убедитесь, что ваше приложение готово к публикации в Google Play.Пользователи могут принять участие в тестировании, выбрав соответствующий параметр на странице приложения. Однако предварительная версия доступна для всех и появляется в результатах поиска в Google Play. Поэтому она должна быть максимально готова к публикации. https://developer.android.com/distribute/best-practices/launch/beta-tests.html?hl=ru То есть даже при бета тестировании приложение все равно доступно для всех?
  20. Всем здравствуйте! Можно ли в Google Play опубликовать приложение не для всех, а только для небольшой группы людей? Приложение должно легко обновляться и поддерживать PUSH уведомления. Поэтому удобно использовать Google Play. Но при этом оно не должно быть доступным для каждого,. Есть ли такая возможность в Google Play?
  21. Зависит от механизма реализации. Как вы реализовываете механизм проверки, отправили ли пользователю сообщение? Если путем частых запросов на сервер от каждого клиента, то могут быть проблемы, если таких пользователей будет много. Но у меня, например, есть приложение (не чат) на PHP+MySQL, где происходит обращение к серверу с последующей обработкой данных из базы и получением ответа в среднем с частотой 50 раз в секунду. Полет нормальный.
  22. Не в курсе насчет версии 10.2.3, но по roadmap следующей версией должна быть 10.3 и в ней планируют Z-order Вот фотка с дорожной карты. https://community.embarcadero.com/uploads/376/2017roadmap/RADRoadmapSept2017_5.png https://community.embarcadero.com/uploads/376/2017roadmap/RADRoadmapSept2017_8.png А вот поддержки 64-битных приложений для Android на ней нет...
  23. В вашем случае несколько TButton, у каждого из них меняются две координаты, и все это зависит от одного параметра. Поэтому нет особого смысла в TAnimation, здесь проще воспользоваться Таймером. Сделал простой пример, во вложении. Buttons.zip
  24. Задать для тех TButton, которые должны вращаться по окружности значение Position.Point:=PointF(Xc+R*cos(A+D[i]), Yc+R*sin(A+D[i])), где Xc, Yc - координаты центра, вокруг которого движется TButton, R - расстояние от этого центра до центральной точки TButton, A - параметр (угол), который линейно меняется (если нужна постоянная скорость) с помощью таймера либо TAnimation. Если элементов TButton несколько, то сдвигом A+D задается угловое смещение TButton относительно друг друга. Например, если всего N штук TButton, то Di=2*Pi/N*i. Xc, Yc и R легко выражается через координаты и размеры центра и TButton. P.S. Задача аналогична круговому вращению планет вокруг Солнца
×
×
  • Создать...