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

Brovin Yaroslav

Администраторы
  • Постов

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

  • Посещение

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

    390

Весь контент Brovin Yaroslav

  1. Всем добрый день, К каждой версии RAD Studio я добавляю по одному компоненту к Open Source библиотеке FGX. Если у вас есть предложения, какие компоненты, функции, возможности хотелось бы увидеть в новой версии, прошу не стесняться и отписаться в этой теме. Спасибо
  2. Проект прикрепите, чтобы попробовать по шагам?
  3. Добрый вечер, А вы эту тему читали? Как Получить текст по TCP (Indy) в нужной кодировке?
  4. Добрый день, Это нативный диалог выбора значения. В текущей реализации нету такой поддержки. Поэтому если вы хотите все-таки добиться уменьшения высоты итема, то вам стоит взглянуть в сторону самостоятельного создания диалога на базе DialogFragment
  5. Добрый день, Соответствующий аниматор TfgBitmapLinkAnimation добавлен к FGX для XE8. Версия будет доступна с выходом XE8.
  6. Добрый день, Стандартный эмулятор поддерживает указание гео координат. Но для этого нужно подключиться к симулятору через telnet и прописать ему ручками местоположение. 1. Включаем поддержку клиента Telnet для Windows 7-8 Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов windows - Клиент Telnet (ставим галочку) 2. Подключаем к эмулятору через telnet Запускаем командную строку cmd: 3. Задаем координаты эмулятора задаем координаты и смотрим, как в сенсоре срабатывает событие смены геопозиции: Подробности тут: Using the Emulator Console Geo Location Provider Emulation
  7. Рисовать средствами iOSapiVoreGraphics можно только на нативном UIView. Поэтому для начала нужно создать на форме нативный UIView. Рисование возможно только в перекрытом методу UIView.drawRect. Поэтому создаем отдельный класс UIView и перекрываем метод DrawRect. Ниже приведен код, оболочки UIView, который выполняет отрисовку, через событие OnPaint. unit FMX.DrawableView; interface uses System.Types, System.TypInfo, iOSapi.CoreGraphics, iOSapi.UIKit, Macapi.ObjectiveC; type IMyView = interface(UIVIew) ['{A7145466-B0FA-42C1-A588-E73D03FFEBF1}'] procedure drawRect(rect: CGRect); cdecl; end; TOnPaint = procedure (Sender: UIView; Context: CGContextRef; const Rect: CGRect) of object; TDrawableView = class(TOCLocal) private FOnPaint: TOnPaint; function GetView: UIView; protected function GetObjectiveCClass: PTypeInfo; override; public constructor Create(const AFrame: TRectF); procedure drawRect(rect: CGRect); cdecl; public property View: UIView read GetView; property OnPaint: TOnPaint read FOnPaint write FOnPaint; end; implementation { TMyView } constructor TDrawableView.Create(const AFrame: TRectF); var V: Pointer; begin inherited Create; V := View.initWithFrame(CGRectMake(AFrame.Left, AFrame.Top, AFrame.Width, AFrame.Height)); if GetObjectID <> V then UpdateObjectID(V); end; procedure TDrawableView.drawRect(rect: CGRect); var context: CGContextRef; begin context := UIGraphicsGetCurrentContext(); try if Assigned(FOnPaint) then FOnPaint(View, context, rect); finally CGContextClearRect(context, rect); end; end; function TDrawableView.GetObjectiveCClass: PTypeInfo; begin Result := TypeInfo(IMyView); end; function TDrawableView.GetView: UIView; begin Result := UIView(Super); end; end. После того, как у нас есть нативное UIView, мы должны его создать и повесить на наше введенное событие OnPaint обработчик отрисовки: private FView: TDrawableView; protected // Декларация обработчика рисования procedure DoPaint(Sender: UIView; Context: CGContextRef; const Rect: CGRect); uses FMX.Platform.iOS; constructor TForm1.Create(AOwner: TComponent); var iOSHandle: TiOSWindowHandle; begin inherited; FView := TDrawableView.Create(TRectF.Create(0, 0, 200, 200)); FView.OnPaint := DoPaint; iOSHandle := WindowHandleToPlatform(Handle); iOSHandle.View.addSubview(FView.View); end; // Пример отрисовки красного прямоугольника procedure TForm1.DoPaint(Sender: UIView; Context: CGContextRef; const Rect: CGRect); begin CGContextSetRGBFillColor(context, 255, 0, 0, 1); CGContextFillRect(context, CGRectMake(20, 20, 100, 100)); end; В итоге получаем встроенное представление в форму, с отрисованным красным квадратом: Демо проект: iOS_Draw_Rect.zip Подробности отрисовки: Введение в Core Graphics на iOS
  8. Для андроида градиентная заливка линий пока не реализована до XE7 включительно
  9. Добрый день, Нет, такого аниматора нету. Я постараюсь добавить его в следующую версию FGX для XE8
  10. В корне архива лежит группа: FGXGroup.groupproj В нее включены дизайн и рантайм пакеты и все демо проекты.
  11. Как использовать один экземпляр TStyleBook для нескольких форм? P.S. Одна тема - один вопрос.
  12. Добрый день, Какая платформа интересует?
  13. Сдается мне, что у вас конфликт типов. И где-то вместо ожидаемого подставляется такой же тип из другого места. Проверил локально ваш пример. Оставил только одни заглушки. Код собрался на ура. Так что для полноты картины, нужен проект с минимумом кода, на котором это воспроизводится.
  14. Поддержка есть, но только для C-Lang основных компиляторов C++11 Features Supported by RAD Studio Clang-based C++ Compilers Clang-based C++ Compilers
  15. Стандартный TCube не позволяет этого. Он использует одну текстуру для всех граней. Вы можете сделать модель, которая будет строить куб из 6 плоскостей с разными текстурами. Как вариант. Еще можно просто повесить обработчик на событие OnRender и там выполнить вручную отрисовку куба с вашими текстурами.
  16. В качестве догадки. Мне кажется, что компилятор не может решить, какую функцию вы присваиваете. У вас метод GetList перегружен. Попробуйте для проверки, переименовать один из методов в другое, чтобы не было перегрузки.
  17. Спасибо, подправил. Разместил вашу ссылку, у Сарины Дю Пон лучше описано.
  18. Отредактировать стиль по умолчанию для эдита и из стиля удалить стилевой объект "Background" 1. В контекстном меню эдита выбирает Edit Default Style или Edit Custom Style для создания отдельного стиля без замены стандартного: 2. Удаляем в стиле editstyle объект background (Для удаления нужно нажать кнопку в тулбаре окна Structure): 3. Получаем результат:
  19. Ваша ошибка в том, что вы используете не тот список. Вы используете TList, который не удаляет свои элементы в момент разрушения списка. Поэтому ваша утечка - это не распущенные экземпляры TSurvey. Вместо этого нужно использовать TObjectList, который при установке ownsObjects = True, удаляем свои элементы. Итого, код создания списка должен быть таким: function GetList: IList<TSurvey>; var list : IList<TSurvey>; i : Integer; item : TSurvey; begin list := TCollections.CreateObjectList<TSurvey>(True); // <-- !!! for i := 0 to 10 do begin item := TSurvey.Create (); item.Id := Random(100); item.Name := I.ToString; list.Add ( item ); end; Result := list; end; Можно поиграться с проектом в Windows MemoryLeak.zip
×
×
  • Создать...