-
Постов
2 124 -
Зарегистрирован
-
Посещение
-
Победитель дней
390
Весь контент Brovin Yaroslav
-
Давайте тогда еще раз вы озвучите полностью ситуацию использования и ваш вопрос. Так как первоначальный вопрос был про одно и на него был дан ответ. Потом всплыли подробности использования, что вам нужно гарантировать, что форма не закроется в момент работы аниматоров. На нее тоже был дан ответ, что нужно использовать компоненты анимации и при закрытии формы проверять факт запущенных аниматоров. Или закрыть форму после завершения аниматоров в TAnimation.OnFinish. Теперь третий уже вопрос, якобы исходная задача (смотрим на первый вопрос). Отдельно ответ на третий вопрос - можете использовать TForm.PaintRects
-
Поставьте задержку 100 мсек (или 24 кадров в секунду). Я попробовал это на стандартном виндовом примере MediaPlayerHD и там я не вижу проблемы черного экрана (Даже при интервале таймера в 1 секунду).
- 7 ответов
-
- CurrentTime
- Duration
-
(и ещё 1 )
C тегом:
-
Согласно правилам нужен чистый тестовый проект, на котором вы это делаете. Хотя бы потому, что за фразой: может скрываться куча реализаций и способов.
-
Да, вы правы. При любом блокировании главного потока, будет происходит блокирование обработки сообщений - это базовый принцип работы настольных приложения для многих операционных систем. Анимация не будет дерганной, она просто полностью зависнет на время блокирования потока. Однако, аниматор в FireMonkey не просто изменяет значение через указанные интервалы, а анализирует ситуацию с возможностью блокировки потока, и основывается на текущем времени. То есть, если анимация должна пройти за 4 секунды и началась в 0:00:00, а у вас на 1 секунду заблокировался основной поток, то анимация все равно закончится в 00:00:04. И будет задавать значение свойства таким, каким оно должно быть равно в момент времени t. Поэтому правилом хорошего тона является вынесение тяжелых операций в отдельные потоки. Как это сделать, есть ответ в статье: Фоновое выполнение операции без "замораживания" отрисовки Еще есть более быстрый вариант решения в случаях, когда длительную операцию можно разбить на маленькие итерации, Это форсировать вызов: Application.ProcessMessage; Однако, я не рекомендую этот способ, так как он может привести к другим неприятным последствиям. Так же, когда меняется значение свойства, которое должно привести к перерисовки сцены, автоматически запрашивается от системы перерисовку сцены.
-
Самый простой вариант реализации воспроизведения аудио/видео по кругу является использование таймера: procedure TFormPlayer.PlayerTimerTimer(Sender: TObject); begin // Выполнять таймер с интервалом 1 секунда if MediaPlayer.State = TMediaState.Stopped then begin MediaPlayer.CurrentTime := 0; MediaPlayer.Play; end; end;
- 7 ответов
-
- CurrentTime
- Duration
-
(и ещё 1 )
C тегом:
-
Требуемая версия среды: Выше RAD Studio XE5, включительно Чтобы поменять цвет фона системного статус бара под iOS 7, нужно установить цвет фона у формы, не забыв указать, что мы будем использовать тип кисти Solid. Обратите внимание, что цвет текста выбирается в зависимости от типа цвета. Если цвет фона темный, то для заголовка будет выбран белый контрастный цвет. Иначе черный, что хорошо проиллюстрировано на рисунках ниже: Если нужно, чтобы цвет фона формы не менялся, нужно поместить в корень формы TRectangle, указать ему цвет заливки и отключить отрисовку границы Stroke.Kind = TBrushKind.None;
- 1 ответ
-
- System Status Bar
- TForm.Fill
- (и ещё 2 )
-
StatusBar [iOS] Как поменять цвет фона системного статус бара?
Brovin Yaroslav опубликовал вопрос в Системный статус бар
Как поменять цвет фона системного статус бара?- 1 ответ
-
- System Status Bar
- TForm.Fill
- (и ещё 2 )
-
Да, вы правы.
-
Не знаю, как вы создаете итемы (в следующий раз нужно прикреплять тестовый проект, согласно правилам форума). Но у меня работает: Создаю итемы для TListView с дополнительным текстовым полем так: procedure TForm1.Button1Click(Sender: TObject); var Item: TListViewItem; TextObject: TListItemText; I: Integer; begin for I := 0 to 10 do begin Item := ListView1.Items.Add; Item.Text := 'Item ' + I.ToString; TextObject := TListItemText.Create(Item); TextObject.Name := 'SubCaption'; TextObject.PlaceOffset.Point := TPointF.Create(100, 0); TextObject.Font.Size := Random(20) + 5; TextObject.Height := Item.Height; TextObject.Text := 'Sub caption'; end; end; Обновляю размеры под текста и цвет так: procedure TForm1.ListView1UpdateObjects(const Sender: TObject; const AItem: TListViewItem); var TextObject: TListItemText; begin TextObject := AItem.Objects.FindObject('SubCaption') as TListItemText; if TextObject <> nil then begin TextObject.Font.Size := 20; TextObject.TextColor := TAlphaColorRec.Red; end; end; Результат ниже: Без обновления размера и с кодом коррекции размера и цвета:
-
Добрый день, TMediaPlayer пока не умеет этого делать. Он работает только с файлами. Поэтому в вашем случае решений здесь может быть два: Использование напрямую API операционной системы для воспроизведения потока. Сохранение потока в файл и потом воспроизведение файла (если в вашем случае это возможно).
-
Delphi атрибуты не поддерживаются в С++ Builder. Поэтому не получится на уровне одного компонента указать, на каких платформах он будет работать. Однако, есть другой способ указания этого (правда для всех компонентов пакета). При добавлении новой платформы в список целевых платформ пакета, все компоненты пакета считаются полностью рабочими на этих платформах. (после сборки пакета на каждую платформу). Что проиллюстрировано на рисунках ниже: Если у вас пакет содержит компоненты, как рассчитанные на одну платформу, так и на несколько, то я вижу пока только единственных выход - создание отдельных пакетов для таких компонентов.
-
Добрый день, Ответ на этот вопрос практически полностью совпадает с ответом на вопрос Можно ли уменьшить размер приложения для андроида? с единственным отличием в составе файлов приложения. Спасибо
-
Для RAD Studio XE7 Начиная с RAD Studio XE7 Доступ к хендлу приложения можно получить так FMX.Platform.Win.ApplicationHWND Для версий < XE7 Для всех, у кого среда <= XE6 делаем следующее: Открываем исходный файл FMX.Platform.Win.pas (Предполагаемое место расположения файла "/Program Files(x86)/Embarcadero/Studio/14.0/Source/fmx/") В секцию interface модуля объявляем функцию: function ApplicationHWND: HWND; В секцию implementation модуля добавляем ее реализацию (лучше в конец модуля либо после объявления глобальной переменной PlatformWin): function ApplicationHWND: HWND; begin if PlatformWin <> nil then Result := PlatformWin.GetApplicationHWND else Result := 0; end; Добавляем модифицированный файл FMX.Platform.Win.pas в ваш проект. P.S. Исходники коммерческих продуктов выкладывать запрещено. Поэтому выше приведено руководство.
-
Можно проверить двумя способами: Проверить доступность системной командной оболочки Bash Проверить наличие установленного приложения Cydia. uses System.SysUtils, iOSapi.Foundation, MacApi.Helpers; function SharedFileManager: NSFileManager; begin Result := TNSFileManager.Wrap(TNSFileManager.OCClass.defaultManager); end; function IsBashAccessible: Boolean; var FileBashHandle: THandle; begin FileBashHandle := FileOpen('/bin/bash', fmOpenRead); try Result := FileBashHandle <> INVALID_HANDLE_VALUE; finally FileClose(FileBashHandle); end; end; function IsCydiaInstalled: Boolean; begin Result := SharedFileManager.fileExistsAtPath(StrToNSStr('/Applications/Cydia.app')); end; function IsJailbroken: Boolean; begin {$IF Defined(IOS) AND Defined(CPU386) } Result := False; {$ELSE} Result := IsBashAccessible or IsCydiaInstalled; {$ENDIF} end;
-
Нет, будет скорее всего осенью.
-
Я не знаю, но постараюсь узнать. Одно могу сказать, что скорее всего возобновим серию вебинаров, посвященных мобильной разработке с FireMonkey.
-
Места проведения: Минск, Санкт-Петербург, Воронеж Сроки проведения: Минск (27 мая), Санкт-Петербург (5 июня), Воронеж (10 июня) Ссылка на мероприятие: http://www.delphitour.ru/ Регистрация: http://forms.embarcadero.com/EM14Q2RUDeveloperDirectLive Будьте первым, кто увидит и услышит о новых возможностях RAD Studio XE6 — долгожданной версии от компании Embarcadero. На мероприятии вы сможете не только ознакомиться с новыми возможностями, но и своими глазами увидеть, почему комплексная среда RAD Studio XE6 является универсальным решением для разработчика, позволяющим заниматься быстрым созданием приложений, обладающих всем необходимым функционалом по взаимодействию с практически любыми источниками данных и популярными облачными сервисами. Вы узнаете, как с помощью основных новых возможностей RAD Studio XE6: Улучшить свои Windows приложения с помощью новых стилей VCL, меню, компонентов для поддержки работы с датчиками. Расширить существующие Windows приложения для сопряжения с новыми мобильными приложениями; Перевести ваши мобильные приложения на новый уровень с помощью интеграции с облачными BaaS сервисами, включая аутентификацию, Push — уведомлениями и монетизацию приложений с использованием встроенных покупок и рекламы; Разрабатывать Delphi и C++ приложения для Android и переносных гаджетов Кроме этого вы сможете задать все ваши вопросы экспертам, поделиться впечатлениями о продуктах и узнать о планах по дальнейшему развитию портфеля решений компании. Ни один вопрос не останется без внимания!
-
Установите: TComboBox.DropDownKind = TDropDownKind.Custom;
- 1 ответ
-
- TListBox
- TListBoxItem
-
(и ещё 2 )
C тегом:
-
Чем не устраивает TGrid и TStringGrid, входящий в состав FireMonkey? Начиная с версии XE6 скорости работы TGrid и TStringGrid была значительно увеличена и на текущий момент не зависит от количества отображаемых данных. Так же эти гриды имеют поддержку LiveBinding, что позволяет в дизайнере выводить данные из TDataSet подобных компонентов.
-
AndroidAPI Полностью транслированное Android API 7-23 уровня
Brovin Yaroslav опубликовал тема в Android
Автор: FMXExpress Тип лицензии: Open Source Ссылка на проект android-object-pascal-wrapper (OpenSource): https://github.com/FMXExpress/android-object-pascal-wrapper Скачать: ZIP