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

Кривяков Виталий

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

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

  • Посещение

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

    12

Весь контент Кривяков Виталий

  1. Добрый день! Недавно столкнулся с похожей проблемой, картинки не всегда подгружались, проблема была в том, что любые действия с TBitmap (загрузка, изменение размера и т.п.) должны обязательно выполнятся в основном потоке. Проверьте, нет ли у вас работы с изображением не в основном потоке?
  2. Используйте на здоровье, я не против, но претензии не принимаю .
  3. Добрый день! Столкнулся с проблемой некорректного отображения текста под Андроид. Длинный текст выводится через TLabel, перенос включен, обрезка по словам. Вот как это должно выглядеть: А вот как это смотрится на экране телефона: Проявляется на XE7 и XE8 триал. Может кто проверить на XE8 Update1? Была ли у кого такая проблема и как удалось решить? Спасибо! В архиве демо-пример. TextOutError.zip
  4. Простого выхода я не знаю, а так исходники FMX и вперед, отлавливать жесты, разбираться с их хождением и передачей в контролы. Может Ярослав что подскажет?
  5. Это ограничение платформы - события и жесты ловит тот, кто сверху. Как только HitTest устанавливается в Ложь, то события проваливаются до TUITabControl. Не разбирались мы с тем, как это обойти.
  6. Добрый день! В теме про наш продукт http://fire-monkey.ru/topic/1519-1c-papyc-mobilnoe-prilozhenie-dlia-masterov-priemschiko/ меня просили поделиться исходным кодом компонента TabControl с поддержкой слайда табов пальцем. С удовольствием делюсь В составе архива сам компонент и пример его использования. FMXUI.zip
  7. Добрый день! Для слайда пришлось писать своего потомка над TTabControl, все в нем реализовано. Правда пришлось часть кода "некрасиво" реализовать, некоторые сущности и объекты не было возможности достать из стандартного TTabControl.
  8. Добрый день! Firemonkey имеет много отличий в работе от VCL. Одно из них связано с порядком создания форм. Когда в модуле проекта вы видите код: Application.CreateForm(TfrmDM, frmDM); То это не означает, что форма или модуль будут созданы в в момент исполнения этого вызова, вместо этого программа запомнит, что нужно создать такую форму TfrmDM и поместить указатель на нее в frmDM. Реальное создание форм произойдет при выполнении Application.Run. Поэтому, все обращения к "созданным" формам и модулям в модуле проекта приведет к ошибке. Чем еще FM занимается до реального создания основной формы - одним разработчикам известно, и я бы поостерегся выполнять какие либо действия связанные с отрисовкой форм в модуле приложения. Набросал пример, посмотрите, возможно такое решение вам подойдет. SplashDemo.zip
  9. Добрый день! Подход имеет право на жизнь, как быстрая реализация. Со своей стороны я бы рассмотрел в качестве основы TListBox, нарисовал стили элемента и в наследнике TListBox реализовал управление сверткой разверткой.
  10. Небольшой комментарий - если вы используете прозрачную форму, и рисуете красивый интерфейс - то, увы, веб броузер не отобразится.
  11. Добрый день! Честно сказать, не смог понять алгоритма, посему набросал простой пример, как проверять пересечение контролов стандартными средствами. function TForm1.OpponentVSHero: TAttacMode; var RcOpponent, RcHero : TRectF; Pt : TPointF; begin Result := TAttacMode.None; // Получим абсолютные размеры оппонента RcOpponent := Opponent.AbsoluteRect; // Получим абсолютные размеры героя RcHero := Hero.AbsoluteRect; // Получим центр героя Pt.X := Hero.Width / 2; Pt.Y := Hero.Height / 2; // Переведем его в абсолютные координаты PT := Hero.LocalToAbsolute(PT); // Проверим, не пересекаются ли габариты героя и оппонента if RcOpponent.IntersectsWith(RcHero) then begin Result := TAttacMode.Next; end; // Проверим, попадает ли центр героя в область оппонента if RcOpponent.Contains(Pt) then Result := TAttacMode.Attacked; end; Hero.zip
  12. Добрый день! TColor и TAlphaColor - несовместимые типы, они по разному хранят цветовые составляющие. TColor = $00BBGGRR TAlphaColor = $AARRGGBB И как следствие, если Свойство объявлено как TAlphaColor, то при присвоении ему обычного TColor будет цветовая ошибка.
  13. Добрый день! Приложения, собираемые под мобильную платформу содержат отличие в работе со строками - нумерация символов идет с 0. Возможно дело в этом. for i:=Low(exc) to High(exc) do begin delete(cl,Pos(exc[i],cl),1); end; Такой код должен работать одинаково на всех платформах. Подробнее можно почитать здесь: http://docwiki.embarcadero.com/RADStudio/XE6/en/Migrating_Delphi_Code_to_Mobile_from_Desktop
  14. Контроль состояния WIFI. Контроль передачи данных через мобильную связь.
  15. Добрый день! Судя по всему - проблема достаточно серьезная и исправить ее нелегко. Для примера - можно убрать сообщение об ошибке "Access violation..." для этого достаточно указать модификатор [weak] переменной vActiveCaret в модуле FMX.Types. было var vKBTimer: TTimer = nil; vActiveCaret: TCustomCaret = nil; vOldDisplayed: boolean = False; vShowVKProc: TShowVirtualKeyboard = nil; стало var vKBTimer: TTimer = nil; [weak] vActiveCaret: TCustomCaret = nil; vOldDisplayed: boolean = False; vShowVKProc: TShowVirtualKeyboard = nil; В ней залипает объект TCaret при уничтожении фрейма. Но далее происходят другие чудеса, причем, под iOS и Android чудеса разные. Судя по всему, хоть Ярослав и рекомендует динамическое создание фреймов, платформа на это пока неспособна. Для себя остановился на динамическом создании фреймов и их повторное использование, вместо уничтожения и последующего создания по необходимости.
  16. Добрый день! Как правильно проверить состояние wifi адаптера, включен он или нет? Есть готовая возможность в FM, или нужно для каждой платформы писать свой код?
  17. Добрый день! Элементы стиля создаются в момент первой отрисовки любого компонента, соответственно, как только компонент первый раз визуализируется, то происходит создание объектов стиля. Отсюда и тормоза. Как только вы проскролите от начала и до конца, то анимация станет плавнее. Так что избавиться от такого эффекта невозможно (практически). Это несколько упрощенное описание работы стилей, но оно показывает корни проблемы. Возможны способ решения состоит в принудительной отрисовки всех элементов сразу после запуска приложения. Похожая методика используется в TTabControl-е в методе SetActiveTabWithTransition в нем есть процедура PreloadContent которая отрисовывает таб на битмап, перед тем, как он будет анимирован.
  18. Какие симптомы "несоздания"? Сталкивался с такой проблемой: создаю каталог, а из под Windows его не видно, пока физически не переподключу устройство.
  19. Отвечу сам, следующие изменения позволили нормально просматривать PDF: 1. Открыть PDF удалось только из внешнего хранилища, иначе PDF Reader ругался на недопустимое имя файла. 2. Имя файла должно начинаться с file: 3. setType сбрасывал установленный Uri на файл данных, поэтому нужно использовать setDataAndType
  20. Добрый день! При выполнении вышеуказанного проекта наблюдаю следующую картину - открывается PDF Reader, но не открывает сам запрашиваемый файл. С чем может быть связано такое поведение. Описанная ситуация наблюдается на телефоне и планшете.
  21. TlistView не позволяет встраивать контролы ввода. А так да - шустрый.
  22. Добрый день! В аттаче небольшое приложение с использованием TListBox и специальным стилем на итемы. При запуске его под Андроид и iOS наблюдается заметное торможение и лаги при работе. Вопрос, можно ли повысить плавность скролла и приблизить его к нативным приложениям? Как правильно реализовывать списки с элементами редактирования? xe7.zip
  23. Не соглашусь - это глюк платформы. К тому же он четко связан с методом SetActiveTabWithTransition у TTabControla/ если его не вызывать,то никаких сбоев нет, сколько не переключайся. А вот если один раз вызвать, то все, хана.
  24. Добрый день! Глюка нет и в XE6. Да, я из 1С-Рарус. К сожалению, сейчас есть возможность использовать только XE5 и глюк не пропал, после использования приведенного выше совета. Точнее он пропал в демо примере, а в полном приложении даже усилился по сообщению тестеров. Так что буду "копать" дальше.
×
×
  • Создать...