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

Kitty

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

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

  • Посещение

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

    16

Активность репутации

  1. Like
    Kitty отреагировална Равиль Зарипов (ZuBy) в TUITabControl   
    обновите вот эту процедурку
    procedure TUITabControl.PaintChildren; var Tab: TTabItem; begin inherited; if FSlide then for Tab in TransitionTabs do begin TMyTabItem(Tab).PaintInternal; TMyTabItem(Tab).PaintChildren; // fix end; end;
  2. Like
    Kitty отреагировална Brovin Yaroslav в TVertScrollBox+Android+Delphi_XE10   
    Попробуйте еще использовать новый скролл бокс TPresentedScrollBox. Он лучше настраивается и у него есть новый режим без вычисления размера контента автоматически. Это позволяет немного ускорить его работу в случае, когда вы добавляете или двигаете контролы внутри.
  3. Like
    Kitty отреагировална Равиль Зарипов (ZuBy) в TVertScrollBox+Android+Delphi_XE10   
    проблема со стилями, нельзя использовать стили от xe8 в проекте seattle, попробуйте заменить похожим из 10-ки
  4. Like
    Kitty отреагировална AngryOwl в Поворот стрелки как на часах   
    вдогонку, кому интересно

    SampleCPUUsage.zip
  5. Like
    Kitty отреагировална Равиль Зарипов (ZuBy) в [Android] Технология NFC   
    обоснованный ответ я вам не дам, скажу почти со 100% уверенностью вы не включите эту опцию.
    т.к. андроид в последнее время заботится о безопасности, а именно через NFC сейчас строят бесконтактную оплату и тут никак нельзя допускать "третьего" между телефоном и терминалом.
     
    в ранних версиях не было оплаты и сервисов которые бы работали на этой технологии, думаю с этим и связано доступность мульти режима
  6. Like
    Kitty отреагировална Равиль Зарипов (ZuBy) в [Android] Технология NFC   
    а NFC поддерживает multi режим?
    это ведь современный аналог irDa
    просто я сам пользуюсь NFC и передавать через него жесть. только если обмен ссылками удобно
  7. Like
    Kitty получил реакцию от xenon54 в Кому нужны программисты Fire Monkey?   
    >Дай бог, допилят до конца,
    А что делать атеистам если он не даст? Размытый родмат, отсутствие полной встроенной справочной системы, перепродажи с не понятными перспективами - мало вселяет уверенности в дальнейшем правильном развитии продукта. У нормального продукта при нажатии F1 надо получать ответ, а не пустоту как в C++ Builder и не выпращивать из-за этого книгу у автора этого форума!
  8. Like
    Kitty отреагировална Равиль Зарипов (ZuBy) в TidHTTP не работает в Android 6   
    давайте проект, протестю
     
     
    на счёт Exception нужно использовать EidException для отлова
    try except    on E: EIdException do end; посмотрите ошибку, что отлавливается
  9. Like
    Kitty отреагировална Brovin Yaroslav в Получаем разрешение экрана устройства, логические и физические размеры экрана в FireMonkey   
    Введение
    Появление экранов повышенной плотность физических точек, привело с одной стороны к проблеме адаптации графического интерфейса под разные разрешения экранов при их одинаковых физических размерах, с другой к увеличению четкости и качества картинки.
     
    Например, если раньше на 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 устройств с ретиной экраном и без:

  10. Like
    Kitty отреагировална Евгений Корепов в Действие при открытии через Push-cообщение [Android]   
    Как то так: procedure TFormMain.NotificationCenterReceiveLocalNotification(Sender: TObject;   ANotification: TNotification); begin   If ANotification.Name.Equals('Взгляни на третью вкладку') Then     TabControl.ActiveTab:=TabItem3;   NotificationCenter.CancelNotification(ANotification.Name); end;
  11. Like
    Kitty отреагировална Brovin Yaroslav в Подмена платформенного стиля через ресурсы   
    Это поведение ожидаемо. Так как при переключении стиль бука, у вас уже загружен стиль в память.
    При загрузке стиля из ресурсов, вы вначале тратите время на загрузку в память (десирелизация), а потом уже использование.
  12. Like
    Kitty отреагировална Равиль Зарипов (ZuBy) в DeviceInfo - модуль для получения информации о девайсе   
    Android 6.0 и выше, не выдаёт Bluetooth, Wi-Fi MacAddress
    по дефалту 02:00:00:00:00:00
    подробней
  13. Like
    Kitty получил реакцию от Pulsarius в C++ Builder и BORLNDMM   
    Это баг. Обсуждалось здесь:
    https://forums.embarcadero.com/thread.jspa?threadID=117351&tstart=15
    Может исправят в первом апдейте, а может и нет.
  14. Like
    Kitty отреагировална Андрей в [Android] Как очистить буфер обмена в С++ Builder XE7?   
    Вот рабочий код:
    #include <FMX.Platform.hpp> #include <System.IOUtils.hpp> //очистка буфера обмена if (TPlatformServices::Current->SupportsPlatformService(__uuidof(IFMXClipboardService))) { _di_IFMXClipboardService ClipboardService = TPlatformServices::Current->GetPlatformService(__uuidof(IFMXClipboardService)); ClipboardService->SetClipboard(TValue::Empty); } Но в буфере все равно остается (empty). Как же все таки очистить полностью?
  15. Like
    Kitty отреагировална Brovin Yaroslav в [Android] Как убрать "Вставить" и подчеркивание при фокусе?   
    Подчеркивание текста - это результат работы проверки текста. Ее можно отключить через:
    TEdit.CheckSpelling = False Кнопка 'Вставить" системная и появляется по системным правилам. Управлять ее поведением увы не удастся.
  16. Like
    Kitty отреагировална Brovin Yaroslav в Rad Studio   
    Запускаете проект с отладкой. Когда среда поменяет свой вид на Debug, перетаскиваете среду на требуемый монитор. Сохраняете выбранное расположение, путем нажатия на кнопку Save current desktop .png]
  17. Like
    Kitty отреагировална Brovin Yaroslav в [RX] [FGX] Описание версии 0.7.0.69   
    Ссылка на скачивание (Только для RAD Studio RX): fgx_0.7.0.69.zip
    Инструкция по установке: "Инструкция по установке набора компонентов FGX"
    Описание
    Эта версия включает в себя следующий набор компонентов:
    Дизайнер итемов (NEW) - дизайнер итемов. TfgToast (NEW) - класс отображения быстрых сообщений TfgFlipView (UPDATED) - слайдер изображений. Поддерживает несколько способов переключения фотографий при помощи эффектов и сдвигов. При первом использовании ОБЯЗАТЕЛЬНО прочитать инструкцию "TfgFlipView - Инструкция загрузки стиля" TfgPositionAnimation - анимация свойств типа TPosition TfgPosition3DAnimation - анимация свойств типа TPosition3D  TfgBitmapLinkAnimation - анимация свойств типа TBitmapLink  TfgProgressDialog (UPDATED)- Компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения фоновой операции можно оценить. TfgActivityDialog (UPDATED)- компонент для отображения диалогового окна в момент выполнения длительной фоновой операции, когда время выполнения операции не возможно адекватно оценить. TfgActionSheet - Аналог контекстного меню для мобильных платформ. TfgColorsPanel (UPDATED)- Палитра цветов с возможностью выбора цвета. TfgGradientEdit - Компонент выбора градиента. TfgLinkedLabel  - Метка поддерживающая открытие Web ссылки в браузере по умолчанию. TfgApplicationEvents - компонент с возможностью легко задать обработчики на основные события приложения: Отслеживание смены состояния приложения, простой, обновление и выполнение действий Actions, Изменение ориентации устройства и тд. TfgVirtualKeyboard - компонент облегчающий работу с виртуальной клавиатурой. Позволяет задать пользовательские кнопки над виртуальной клавиатурой под iOS, а так же отлавливать события по отображению и скрытию клавиатуры. Зарегистрированы все стилевые объекты на вкладке "FGX: Style objects" Список изменений
    TfgActionSheet: Исправлена ошибка не позволяющая использовать действия TTakePhotoFromCameraAction и TTakePhotoFromLibraryAction под iOS. Исправлена ошибка приводящая к AV, если экшен не имел обработчика OnExecute (Android, iOS) Исправлен внешний вид под iOS. Раньше, если TfgActionSheet не содержал заголовка, сверху система все равно оставляла под него пустое место. Теперь если заголовка нет, то место не выделяется. Обновлен пример ActionSheetDemo TfgProgressDialog, TfgActivityDialog: Добавлено свойство Cancellable, позволяющее сделать диалог отменяемым по нажатию на экран или кнопку Back. Добавлено событие OnCancel, вызываемое, если пользователь отменил диалог. Обновлен пример. Теперь все операции выполняются в отдельном потоке, асинхронно. Добавлен метод IsShown, позволяющий определить, показан диалог или нет Добавлено свойство TfgOrigressDialog.Max, позволяющее указать максимальное значение прогресса. Улучшена генерация имени действия. Если прикрепляется системный экшен TSysCommonAction, то имя берется из CustomText  TfgFlipView: Добавлено пролистывание при помощи жестов. Добавлена опция ShowNavigationButtons, позволяющая скрыть кнопки смены слайдов Добавлено событие OnImageClick, позволяющее отследить нажатие пользователем на слайд Обновлен пример для корректной работы на всех платформах. Исправлена ошибка слайдшоу, приводящая к невозможностью контролировать и менять параметры слайдшоу. Изменен курсор на руку TfgColorsPanel, TfgGradientEdit: Добавлены пропущенное свойство Size в секции published.
  18. Like
    Kitty отреагировална Brovin Yaroslav в Описание TfgToast - Быстрые уведомления   
    Описание:
    Назначение: Быстрые уведомления, появляющиеся в нижней части экрана, предназначенные для отображения короткой текстовой информации и опционно изображения Поддерживаемые платформы: Android, iOS Демо проект: Samples\ToastsDemo\ToastsDemo.dproj Доступен с версии: RX (R100) Возможности:
    Несколько быстрых способов отображения уведомления: TfgToast.Show(Message) - только текст TfgToast.Show(Message, Icon) - текст и картинка TfgToast.Show(Message, Duration)  текст + настройка длительности отображения TfgToast.Show(Message, Duration, Icon) - текст + картинка + длительность отображения Доступно редактирование цвета заднего фона (TfgToast.BackgroundColor) Доступно редактирование цвета сообщения (TfgToast.MessageColor). Возможность добавить к сообщению иконку (TfgToast.Icon) Доступно редактирование длительности отображения уведомления (TfgToast.Duration) Возможность менять глобальные параметры отображения всех тостов в рамках приложения (TfgToast.DefaultBackgroundColor, TfgToast.DefaultMessageColor и TfgToast.DefaultPadding) Примеры вызова:
    // Быстрое отображение, только текст TfgToast.Show('Message'); // Быстрое отображение, текст + картинка TfgToast.Show('Message', Bitmap); // Настраиваемое отображение var Toast: TfgToast; begin Toast := TfgToast.Create(EditToastMessage.Text, TfgToastDuration(ComboBoxDurationType.ItemIndex)); try if SwitchShowIcon.IsChecked then Toast.Icon.Assign(Image1.Bitmap); Toast.MessageColor := ColorComboBoxMessage.Color; Toast.BackgroundColor := ColorComboBoxBackground.Color; Toast.Show; finally Toast.Free; end; end; Скриншоты:


  19. Like
    Kitty отреагировална Равиль Зарипов (ZuBy) в ListView Color Helper   
    Привет Всем!
    Много тем на форуме про раскраску TListView, нашел в интернете решение и доработал его
    Вот что получилось
       
    LV_Helper.zip                                                                  ColorListView.zip
    Доступно для Seattle
    ListView1.SetColorItemSelected(TAlphaColorRec.Orangered); //выделенный ListView1.SetColorItemFill(TAlphaColorRec.Gray); // обычный цвет Item ListView1.SetColorItemFillAlt(TAlphaColorRec.Lightgrey); // альтернативный цвет Item ListView1.SetColorBackground(TAlphaColorRec.Black); // цвет самого TListView ListView1.SetColorItemSeparator(TAlphaColorRec.Lightgray); // Линия разделения Item'ов ListView1.SetColorText(TAlphaColorRec.Red); // Обычный текст ListView1.SetColorTextSelected(TAlphaColorRec.White); // выделенный текст ListView1.SetColorTextDetail(TAlphaColorRec.Yellow); // текст доп. инфы ListView1.SetColorTextHeader(TAlphaColorRec.Green); // текст заголовка ListView1.SetColorTextHeaderShadow(TAlphaColorRec.Lightgray); // тень текста   ListView1.SetColorButtonText(TAlphaColorRec.Orange); // цвет текста кнопки   ListView1.SetColorButtonTextPressed(TAlphaColorRec.Orangered); // цвет нажатой кнопки добавлено в Berlin
    ListView1.SetColorPullRefresh(TAlphaColorRec.Orange); ListView1.SetColorPullRefreshIndicator(TAlphaColorRec.Orangered); ListView1.SetColorStretchGlow(TAlphaColorRec.Lime); ModernListView.rar
  20. Like
    Kitty отреагировална Brovin Yaroslav в Семисегментный индикатор   
    Добрый день, Юрий,
     
    Красота. Хороший компонент. Возможно вам пригодятся пара замечаний по портированию с VCL на FMX, которые помогу вам сделать ваш компонент еще лучше.
    Когда вы выполняете отрисовку в перекрытом методе TControl.Paint, не надо вызывать BeginScene и EndScene. Так как этими методами руководит сцена, обычно это форма.
    procedure TSeparator.Draw(px1, py1, px2, py2: Single; pColor: TAlphaColor; Opac: Single); var MyRect: TRectF; begin MyRect := TRectF.Create(px1, py1, px2, py2); with Canvas do begin [b] BeginScene; // <!--- Не нужно[/b] Fill.Kind := TBrushKind.Solid; Fill.Color := pColor; FillRect(MyRect, 0, 0, AllCorners, Opac); [b]EndScene; [/b][b]<!--- Не нужно[/b] end; Canvas end; Дополнительно:
    1. Инициализацию точек для полигона можно сделать сразу на прямую. 
    Было:
    // Установить точки, определяющие многоугольник p1 := TPointF.Create(px1, py1); p2 := TPointF.Create(px2, py2); p3 := TPointF.Create(px3, py3); p4 := TPointF.Create(px4, py4); p5 := TPointF.Create(px5, py5); p6 := TPointF.Create(px6, py6); // Создать полигон SetLength(MyPolygon, 6); MyPolygon[0] := p1; MyPolygon[1] := p2; MyPolygon[2] := p3; MyPolygon[3] := p4; MyPolygon[4] := p5; MyPolygon[5] := p6;  Стало:
    MyPolygon := [TPointF.Create(px1, py1), TPointF.Create(px2, py2), TPointF.Create(px3, py3), TPointF.Create(px4, py4), TPointF.Create(px5, py5), TPointF.Create(px6, py6)]; При этом для динамических массивов перед присваивание не нужно  вызывать функцию SetLength. Экономия места и 6 переменных.
     
    2. Сравнение вещественных чисел должно осуществляться при помощи функции System.Math.SameValue. Это касается всех мест в этом юните. В противном случае у вас могут быть фантомные ложные срабатывания условий, которые найти будет сложно.
    Было:
    procedure TSevSeg.SetCellSpace(const Value: Single); begin if Value = CellSpace then exit; FCellSpace := Value; end; Стало:
    procedure TSevSeg.SetCellSpace(const Value: Single); begin if SameValue(Value, CellSpace) then exit; FCellSpace := Value; end;
  21. Like
    Kitty отреагировална Tera в Семисегментный индикатор   
    Спасибо Brovin Yaroslav за советы. Все исправил. Я совсем недавно стал изучать FireMonkey.
    SevenSegment.zip
  22. Like
    Kitty отреагировална Tera в Семисегментный индикатор   
    Компоненты TSevSeg - семисегментный индикатор и TSeparator - разделитель.
    Переписал компоненты с VCL. Может, кому пригодится. Пример использования:
     

     
    Для разового использования можно просто подключить к проекту как модуль.
     
    SevenSegment.zip
  23. Like
    Kitty отреагировална Brovin Yaroslav в Есть ли возможность посмотреть значение длинной строки?   
    Какая у вас версия среды?
    По идеи ничего больше не нужно:

    Да, это работает только для Windows, для остальных платформ посмотрите: Средства логирования в FireMonkey
  24. Like
    Kitty отреагировална Brovin Yaroslav в Thoma Bravo Announces Sale of Embarcadero to Idera, Inc.   
    Я так скажу, пока ничего не ясно, что да как. И даже в этой статье кроме упоминания о продажах ничего нет конкретного. Я имею в виду про развитие продуктов.
  25. Like
    Kitty отреагировална Brovin Yaroslav в Как узнать номер телефона ?   
    А вот и ответ: Programmatically obtain the phone number of the Android phone
×
×
  • Создать...