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

Лидеры

  1. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      4

    • Постов

      2 124


  2. rareMax

    rareMax

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


    • Баллы

      2

    • Постов

      553


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

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

    Модераторы


    • Баллы

      1

    • Постов

      2 517


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

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

  1. Автор: Зарипов Равиль (ZuBy) Ссылка на приложение: Офф. сайт Краткое описание: Приложение для скачивания и прослушивания музыки с сайта www.primemusic.ru Описание: Прослушивание песен Скачивание песен Работает как плеер Авторизация на сайте, для прослушивания собственных плейлистов звуковой движок BASS 2.4 for android
    1 балл
  2. TabPosition = TTabPosition.None;
    1 балл
  3. Всем привет. Небольшой вопрос по использованию эффектов для компонентов с вкладки Effects. На форме лежат компоненты(Кнопки, едиты и т.д.). Для них назначаю в дизайнере TShadowEffect. Устанавливаю для каждого эффекта свойство trigger: IsMouseOver=true. То есть мне надо что бы эффект проявлялся в момент когда курсор находится над контролом. В принципе все работает, но есть вот такой вот нюанс: при показе формы работают все эффекты, чего по-идее не должно быть. Нормальное поведение начинается только если навести предварительно мышь на контрол. Только после этого "тени" появляются в момент, когда курсор над компонентом. Вопрос таков - можно ли как то сделать, что бы "со старту" эффекты не показывались? Спасибо
    1 балл
  4. Ответ: Нужно было установить свойство для всех эффектов с заданными триггерами ​Enabled := False;
    1 балл
  5. Нужно помнить, что StylesData при запросе значения свойства какого-либо объекта стиля всегда возвращает TValue. Поэтому например в вашем случае вы допускаете сразу две ошибки по одной в каждом варианте: Ошибка 1 Не правильно: ListBoxItem.StylesData['text.width'].asInteger Свойство Width вещественного типа, поэтому при попытке конвертировать TValue в Integer этим способом приведет к ошибке "Invalid class typecast", так как представления вещественного и целого чисел отличаются. Правильно: ListBoxItem.StylesData['text.width'].AsExtended Ошибка 2 Не правильно: ListBoxItem.StylesData['text.text'].asString В этом случае вы пытаетесь представить содержимое TValue, как строка. Но при таком обращении через методы, начинающиеся с приставки "As", идет попытка конвертации чистого значения вещественного числа (указатель в памяти) в строку. Естественно, что такая конвертация пройдет не правильно и закончится все той же ошибкой "Invalid class typecast" Правильно: ListBoxItem.StylesData['text.text'].ToString
    1 балл
  6. Можно сделать так: Делаем поворот TTabControl на от 0 до 90 градусов, чтобы он повернулся к пользователю ребром. По окончании первой анимации меняем активную вкладку в TTabControl. Делаем поворот TTabControl еще на 90 градусов от 270 до 360. В итоге TTabControl поворачивается к нам уже новой вкладкой. Видео эффекта в действии: Проект: TTabControl_3DRotationDemo.zip
    1 балл
  7. Введение Появление экранов повышенной плотность физических точек, привело с одной стороны к проблеме адаптации графического интерфейса под разные разрешения экранов при их одинаковых физических размерах, с другой к увеличению четкости и качества картинки. Например, если раньше на iPhone 3 при размере экрана 3,5 дюйма позволял отобразить 320х480 точек, то на устройстве iPhone 4 при таком же физическом размере экрана, экран мог уже отображать 640х960 точек. Это хорошо видно на увеличенном изображении обычного экрана и ретина экрана на рисунке ниже (слева - не ретина, справа - ретина (2х)). Справа количество физических точек ровно в четыре раза больше, чем слева: Для разработчика это могло означать, что интерфейс привязанный к разрешению 320х480 на Retina экране будет занимать только четверть экрана. Естественно, что использование разрешения экрана в физических координатах не удобно с этой точки зрения. Именно по этому появились логические координаты, которые гарантируют, что тот же пользовательский интерфейс для iPhone 3, будет иметь такие же размеры (физические) и на экране с ретиной. FireMonkey работает в логических координатах. Это означает, что на iPhone 3 - 4 мы работаем с логическим разрешением 320x480 точек. Однако, при отображении интерфейса на iPhone 4 c (с двойной плотностью пикселей по сравнению с iPhone 3), интерфейс автоматически масштабируется на физическое разрешение 640х960 с коэффициентом масштабирования равным 2. Практика Теперь посмотрим, как получить всю эту информацию. Вся информация об экране (логический размер и коэффициент масштабирования) находится в сервисе IFMXScreenService. Чтобы получить физическое разрешение экрана, нужно логический размер умножить на коэффициент масштабирования. Код ниже показывает, как получить доступ к этому сервису и извлечь требуемые параметры: var ScreenService: IFMXScreenService; LogicScreenSize: TPoint; ScreenScale: Single; begin // Запрашиваем сервис экрана, для получения информации о размере и текущем коэффициенте масштабирования if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then begin LogicScreenSize := ScreenService.GetScreenSize.Round; ScreenScale := ScreenService.GetScreenScale; LabelLogicScreenSize.Text := Format('Логический размер: %d, %d', [LogicScreenSize.X, LogicScreenSize.Y]); LabelPhysicScreenSize.Text := Format('Физический размер: %f, %f', [LogicScreenSize.X * ScreenScale, LogicScreenSize.Y * ScreenScale]); LabelScreenScale.Text := Format('Коэффициент масштабирования: %f',[ScreenService.GetScreenScale]); end; end; Результат кода приведен на снимке экранов ниже для iPad устройств с ретиной экраном и без:
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...