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

Brovin Yaroslav

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

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

  • Посещение

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

    391

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

  1. Этот компонент не поддерживает этой функциональность. Но вы можете реализовать это используя событие: TDateEdit.OnChange procedure TForm1.DateEdit1Change(Sender: TObject); begin if DateEdit1.Date < MinDate then DateEdit1.Date := MinDate; if DateEdit1.Date > MaxDate then DateEdit1.Date := MaxDate; end;
  2. Добрый день, Я ответил на вашу тему. Посмотрите, может вам уже не понадобиться. У нас нет регламента, как публиковать задание. Вы можете сделать это в любой удобной для вас форме. Опять же выбрать можете любого, кто откликнется. Все на ваше пожелание. Условия можете обсудить с каждым индивидуально в личных сообщениях или любым другим способом.
  3. Попробуйте при подписи класса через атрибут указать следующую подпись: [JavaSignature('android/hardware/Camera$Size')] JCamera_Size = interface(JObject) В Delphi уже транслирован этот класс. Находится в Androidapi.JNI.Hardware.pas.
  4. Добрый день, Для использования локальных картинок в локальной странице, всем картинкам нужно добавить приставку:
  5. Зачем использовать и таймер и Queen? Queen должно быть достаточно.
  6. Да, вы правы. Ошибся. StringOf использует текущую кодировку на платформе, на Windows - это ANSI, на мобильных платформах - это UTF8: function StringOf(const Bytes: TBytes): UnicodeString; begin if Assigned(Bytes) then Result := TEncoding.Default.GetString(Bytes, Low(Bytes), High(Bytes) + 1) else Result := ''; end; Поэтому лучше используйте TEncoding.ANSII: TEncoding.ANSI.GetString(BufferOfBytes, Low(BufferOfBytes), High(BufferOfBytes) + 1);
  7. На мобильных платформах по умолчанию используется Unicode. Как известно, символов занимает не байт, а два. Ошибка вам говорит о том, что для вашего массива символов в ASCII кодировки нету соответствующих символов в UTF. Решение Пишите массив с кодами символов специально под UniCode.
  8. Например так: const RequiredSclae = 1.0; var BitmapItem: TFixedBitmapItem; Bitmap: TBitmap; begin if OpenDialog.Execute then begin // Запрашиваем картинку для нужного Scale Bitmap := Image1.MultiResBitmap.Bitmaps[RequiredSclae]; // Проверяем, есть картинка или нет. if Bitmap = nil then begin // Если нет, то заводим контейнер для новой картинки BitmapItem := Image1.MultiResBitmap.Add; BitmapItem.Scale := RequiredSclae; Bitmap := BitmapItem.Bitmap; end; Bitmap.LoadFromFile(OpenDialog.FileName); end;
  9. Добрый день, Увы нет, это поведение определяется по умолчанию самой платформой: "Будет ли доступен эффект оттягивания или нет". AniCalculation есть в TListView, но он закрыт. Единственное решение, это при наличии исходников FMX, завести для TCustomListVIew открытое свойство для поля FAniCalc в файле FMX.ListView.pas. property AniCalculation: TAniCalculations read FAniCalc;
  10. Hello, I will fix it in a next version of this library. But now you can use next workaround: Create new custom action in TfgActionSheet.Actions Don't set Standart action to it throught Action property. Write Event Handler for OnClick event and manual invoke standart action. For example: procedure TFormMain.fgActionSheetActions6Click(Sender: TObject); begin TakePhotoFromCameraAction1.ExecuteTarget(Button1); end;
  11. Добрый день, Неправильно построили алгоритм. При скрытии стилизованных контролов, контрол выгружает (удаляет) свой стиль. Поэтому, когда вы из объекта стиля скрываете стилизуемый контрол (TListBoxItem), то он в свою очередь удаляет ваш стиль вместе с TSpinBox. В итоге управление возвращается у уже полностью разрушенный объект и вы получаете исключение. Чтобы в вашем варианте скрыть TListBoxItem есть триспособа: Сделать отложенное удаление штатными средствами FireMonkey: ListBoxItem1.Release; Явно запретить TListBoxItem выгружать стиль, когда он скрывается со сцены. Это можно сделать так: ListBoxItem1.DisableDisappear := False Поставить в очередь скрытие итема через TThread.Queen. В этом случае ваша процедура скрытия вызовется после всех действий. TThread.Queue(TThread.CurrentThread, procedure begin ListBoxItem1.Visible := False; end); Сделать отложенное скрытие. То есть после изменения значения TSpinBox, вы можете, например, запустить таймер на 500-600 мс и по истечении времени скрыть итем. Правда по мне так этот способ не надежный и я бы не советовал не использовать. P.S. Если хотите удалить итем из стилевого объекта, то лучше делать тогда вторым способом.
  12. Нет. Только RoadMap 2014 Если очень необходимо, сервис платежей можно реализовать самостоятельно.
  13. Добрый день, На текущий момент XE6, сервис встроенных платежей не реализован для OSX и Win
  14. Попробуйте перезапустить девайс.
  15. Добрый день, Определить, что TListBox (TScrollBox) прокручен до конца можно используя событие OnViewPortPositionChange. Это событие вызывается каждый раз при прокручивании контента. Этот метод возвращает текущее положение ViewPort - позиция окна, в котором отображаются текущие элементы TListBox. Об этом подробно описано в этой статье: "Платформонезависимый скроллинг в Fire Monkey" Ниже приведен код, который проверяет, что TListBox прокручен до конца. procedure TForm1.ListBox1ViewportPositionChange(Sender: TObject; const OldViewportPosition, NewViewportPosition: TPointF; const ContentSizeChanged: Boolean); begin if NewViewportPosition.Y > ListBox1.ContentBounds.Height - ListBox1.Height then ShowMessage('End!'); end;
  16. Добрый вечер, Багу проверили и завели. Workaround постараюсь посмотреть на неделе.
  17. Все контролы, которые вы кидаете в TScrollBox находятся в дополнительном промежуточном контроле TScrollContent. Когда вы удаляете все дочерние узлы TScrollBox, то вы удаляете все сами, стиль и контент, что делать нельзя. Похожее поведение есть и в TTreeView: При попытке создать дочерние итемы при разворачивании узла дерева, у меня возникает ошибка. В чем может быть проблема? Поэтому, удалять объекты нужно непосредственно у контента. Это можно сделать так: type TOpenScrollBox = class(TScrollBox); procedure ClearChildren(AScrollBox: TScrollBox); begin Assert(AScrollBox <> nil); TOpenScrollBox(AScrollBox).Content.DeleteChildren; AScrollBox.Repaint; end;
  18. Kitty, На счет появления руководства на русском языке я сомневаюсь. Английский международный язык и англоговорящих пользователь значительно больше, чем русских. Поэтому проще выучить английский язык... P.S. Могу лично поменять звание с "Продвинутый пользователь" на "Полный Zero" ;-)
  19. Название: RAD Studio Mobile Tutorial XE6 Язык: Английский Скачать: Doc Wiki Руководство хорошо описывает все фазы мобильной разработки: начиная от настройки среды и заканчивая использование мобильных сервисов.
  20. Спасибо за проект, завтра попробуем проверить, описанную вами проблему.
  21. Андрей, Для добавляемых картинок можно имя генирировать на основе индекса изображения. Как это сделано в VCL. И затем использовать индекс в других местах для выбора изображений. У меня есть прототип простой реализации TImageList на основе TStyleBook, там сделан специальный дизайнер картинок, который автоматически задает индекс загружаемым изображениям.
  22. Добавление своего объекта в стиль бук, на примере добавления TImage: var Image: TImage; begin Image := TImage.Create(nil); Image.StyleName := 'MyNewImage'; ImageBook.Style.AddObject(Image); end; На счет остальных вопросов нужно смотреть по факту. Если скорость загрузки изображения вас не устраивает (тормозит интерфейс), то делайте асинхронную загрузку изображения в потоках. Иначе не нужно усложнять себе жизнь. Если изображений очень много и они большие, то я бы не стал всех грузить в TStyleBook. Опять же все зависит от реального варианта использования.
  23. Добрый день, Такое поведение не предусмотрено.
×
×
  • Создать...