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

Brovin Yaroslav

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

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

  • Посещение

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

    390

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

  1. Я вам не советую в цикле задавать стиль для всех итемов. Я предложил вам изменить стиль итема по умолчанию и задать ему по умолчанию перенос строк. При этом этот стиль по умолчанию не нужно вручную прописывать всем итемам.
  2. Чтобы в рантайме (runtime) работал перенос, нужно просто сбросить настройку: ListBoxItem.StyledSettings := ListBoxItem.StyledSettings - [TStyledSetting.ssOther]; В дизайн тайме, при установке свойства WordWrap y TListBoxItem, автоматически сбрасывается опция TStyledSettings.ssOther у StyledSettings, которая означает, что настройки переноса нужно брать из контрола, а не из стиля. В рантайме - нет. Свойство TListBoxItem.StyledSettings отвечает за то, какие настройки брать из стиля, а какие из самого контрола. Так отсутствие значения ssOther говорит о том, что значение варианта переноса будет браться из контрола, а не из стиля. Обратите внимание еще на тему: Почему не изменяется Font.Style и Font.Size?
  3. В случае с LiveBinding, можно просто в стиле итема указать, что текст внутри стилевого "text:TActiveStyleTextObject" объекта должен переносится (WordWrap = True). Для этого: 1. Создаем новый стиль на базе стиля по умолчанию или правил стиль по умолчанию: 2. Находим в структуре элемент стиля Текст и выбираем его. 3. Меняем у него свойство WordWrap
  4. Добрый день, Работа с DLL в Windows одинакова для всех фреймворков (VCL, FMX) и ни каким образом не зависит от используемого фреймворка (VCL или FireMonkey). Только по описанию проблемы тяжело что-то сказать. Согласно пункту 5 правил нужен тестовый проект, на котором воспроизводится ошибка. Без этого вероятность того, что кто-то вам сможет здесь помочь, увы минимальна... Спасибо
  5. Открытие любого файла в подходящем приложении в операционной системе Андроид выполняются одинаковым способом. Путем посылки намерения (Интент) с указанием файла и типа данных. Далее система ищет по указанному типу файла, какие приложения зарегистрированы на обработку файлов этого типа, Если приложение, которое может обработать этот файл, одно, то запускает активити приложения и передает туда ваш файл/данные. Если приложений несколько - запускает диалоговое окно выбора приложения, которое будет выполнять обработку вашего файла. Резюмируя это, смотрим на код: uses System.IOUtils, FMX.Helpers.Android, Androidapi.JNI.Net, Androidapi.JNI.GraphicsContentViewText; procedure TForm7.btnOpenPDFClick(Sender: TObject); const SAMPLE_PDF_FILENAME = 'example.pdf'; var Uri: Jnet_Uri; OpenLinkIntent: JIntent; PDFFileName: string; begin PDFFileName := TPath.Combine(TPath.GetDocumentsPath, SAMPLE_PDF_FILENAME); { Внутренний доступ} Uri := StrToJURI(PDFFileName); // Формируем намерение об открытии файла в стандартном приложении OpenLinkIntent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW, Uri); // Устанавливаем тип данных OpenLinkIntent.setType(StringToJString('application/pdf')); OpenLinkIntent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP); // Запускаем приложение и передаем ему наше намерение try SharedActivity.startActivity(OpenLinkIntent); except on E: Exception do ShowMessage('Не удалось открыть PDF. В системе нет доступных приложения для просмотра pdf'); end; end; В этом код pdf файл берется из самого пакета приложения (я включил pdf файл в пакет приложения). Если вам нужно вытащить файл в любом другом месте, просто укажите в PDFFileName полный путь к файлу в файловой системе вашего устройства. Проект доступен тут: OpenPDF.zip
  6. Все написано в тексте ошибки. А именно, файл provision не правильный. Пропущена подпись вашим сертификатом. Смотрите внимательнее Distribution Certificate
  7. Это предупреждение и оно не влияет на запуск приложения dSYM - это файл с отладочными символами. Он нужен для выполнения отладки вашего приложения. Чтобы вы могли видеть не просто набор адресов, а понятные названия методов и тд. dSYM файл повышает размер вашего приложения. В Release отладка не нужна, поэтому этот файл не генерируется. Если очень нужно, в настройках проекта можно включить генерацию этого файла: Project -> Options... -> Delphi Compiler -> Linking. Ставим галку напротив Debug Information
  8. Означает, что файл, созданный для отладки не найден. Скорее всего он есть в Deployment Manager, но его нету физически и поэтому при попытке развернуть проект, появляется это предупреждение. Лечение: Восстановить список файлов в Deploymeny Manager по умолчанию. В Deployment Manager нажимаем кнопку Revert To Default Иногда может помочь перезагрузка среды. Без точного описания с вашей стороны, больше сказать ничего не могу.
  9. Опять же, создай отделную тему на новый вопрос. Поскольку первоначальный был о другом.
  10. Если внимательно прочитать всю страницу, то там же указано, что такое UIRequiredDeviceCapabilities и какие значения он (ключ) может принимать. Среди этих значений нет ни одного упоминания о моделях устройств. Этот ключ используется для указания наличия фич телефона, которые будут использованы вашим приложением. Например: Архитектура процессора, Акселерометр, Вспышка камеры, камера и тд.
  11. Можно, нужно создать TWTweetComposeViewController, заполнить его текстом и изображением и затем отобразить. Документация TWTweetComposeViewController Class Reference
  12. Такого понятия, как "минимально поддерживаемое устройство" Apple еще не придумало. Но додумалось до указания требуемой минимальной версии iOS. Вся информация о параметрах запуска пакета есть тут.
  13. TCheckListBox легко делается на основе TListBox. Это по сути просто настроенный TListBox, у которого включено отображение галок и все.
  14. Добрый день, На мобильных платформах Drag/Drop не реализован. За его реализацию отвечает сервис IFMXDragDropService. Если вы его реализуете для мобильных платформ, то Drag and Drop будет работать.
  15. Исходный код примера для RAD Studio XE5: ShareSheet Описание: Taking and Sharing a Picture (iOS and Android) В FireMonkey реализованы стандартные действия для выполнения автоматической отправки данных другим приложениям телефона. Например, такие как: Отправка поста в Twitter или FaceBook Отправка письма Отправка SMS и другие Чтобы воспользоваться этой функцией в FireMonkey создано специальное стандартное действие TShowShareSheetAction, которое открывает стандартное системное окно выбора действия (постинг в Twitter или Facebook и тд). 1. Кидаем на форму TActionList. 2. Двойным кликом на компонент TActionList, открываем дизайнер действий. 3. В левом верхнем углу выбираем создание стандартного действия 4. Среди стандартных действий выбираем в группе "Media Library" действие TShowShareSheetAction. 5. Для созданного действия указываем текст сообщения или изображение (можно указывать как по отдельности эти данные, так и по частям). В зависимости от указанных данных (текст и изображение) действие откроет системное окно выбора действий приложений, которые могут обработать ваши данные. На картинке ниже, я указал текст сообщения и картинку через свойства TextMessage и Bitmap: 6. Подвязываем созданное действие к любой кнопке. 7. На ios и андроид нажатие на кнопку с действием приведет к отображению окна выбора действия: Подробный о том, как пользоваться этой функцией продемонстрирован в этом видео:
  16. Для осуществления вызова какого-то кода по расписанию, даже, если приложение выгружено из памяти в Андроиде есть специальный механизм. Он называется AlarmManager. Суть его проста. Вы задаете в какое время или как часто нужно послать отложенное намерение (PendingIntent) получателю. Система приняв ваш запрос, складывает его в системную очередь. Когда наступает время отправки вашего намерения с данными, система: Если приложения нет в памяти, запускает его и передает ему интент. Если приложение в памяти, передает ему интент. Этот менеджер работает совместно с механизмом широковещательной рассылки BroadcastReceiver. Так же он не требует создания отдельного сервиса. И на мой взгляд является хорошей альтернативой. P.S. Этот механизм успешно работает и в FireMonkey для реализации отложенных уведомлений. Которых как известно в андроиде нету.
  17. Подключение Скачиваем эмулятор с официального сайта для Windows или OSX Устанавливаем эмулятор Перезагружаем компьютер (сразу после установки, у меня среда не захотела увидеть этот эмулятор) Запускаем эмулятор идем в настройки и разрешаем отладку. Жмем на кнопку All Apps -> Настройки -> Для разработчиков -> Отладка по USB. После запуска RAD Studio XE5, эмулятор появится в списке доступных устройств. У него замысловатое название "emulator-5554 (5554)" или производное от этого. Далее идет обычная работа, как с любым андроид устройством в RAD Studio XE5. Выбираем устройство в списке в Project Manager и запускаем проект (обязательно прочесть Резюме, так как наблюдаются некоторые проблемы с этим эмулятором). Резюме Проект находится на стадии бетта версии, поэтому ожидать от него 100% работоспособности я бы не стал. Работает быстрее, чем официальный эмулятор от Google. Запуск из среды проходит. Но отладка у меня не заработала. Иногда приложение не запускается из среды. Помогает перезагрузка эмулятора. Или старт вашего приложения вручную с эмулятора (так как приложение обычно устанавливается) Работает даже сервис получения фотографий с системной галереи. Контролы работают, и реагируют на нажатия. Текст вводится и тд. Наблюдаются некоторые проблемы с использованием физической клавиатуры в эмуляторе. Но виртуальная работает хорошо. Поэтому в критичных местах, где была нужна английская раскладка пользовался виртуальной клавиатурой самого эмулятора.
  18. В RAD Studio XE5 был добавлен новый компонент TTImeEdit для удобного ввода времени. Возможности Использование короткого и полного формата времени Адаптивный ввод времени. Под Windows и OSX ввод времени по частям, как принято в операционных система. В Android и iOS ввод осуществляется при помощи системных диалогов (Андроид) и барабанов (iOS). Поддержка встроенного TCheckBox, позволяющего на уровне дизайнера сделать встроенный выбор поля. Поддержка пользовательского формата времени. При этом все одинаковые части времени в разных вариантах отображения редактируются одновременно Возможности отображения текущего времени Демонстрация Возможности этого компонента приведены на видео ниже:
  19. Увы, автор не публиковал приложение в Google Play. По крайней мере этого факта на его сайте я не нашел...
  20. Автор: Александр Андрощук Обзорная статья: http://mirsovetov.net/pic-to-word.html
  21. Небольшая статья о использовании есть на японском языке в официальном японском блоге Embarcadero http://blogs.embarcadero.com/teamj/2014/01/20/4227/. Воспользуйтесь переводчиком Google. Этого автоматического перевода будет достаточно для понимания сути статьи. Еще обратите внимание на Robert Lawrence Он в своем аккаунте в Google+ публикует успешные результаты использования этого эмулятора с делфи. Просмотрите его посты или свяжитесь с ним напрямую. Я думаю не будет против дать совет, как его подключить к Делфи.
  22. Визуальные контролы VCL будут работать только на одной платформе - Win32 и Win64. Так же TRadioGroup и TCheckListBox проще написать самостоятельно в FireMonkey, поскольку встраивание VCL компонентов в FMX очень сложная задача, так как архитектура и природа библиотек на столько различная, что соединить их вместе будет очень сложно, но возможно только при очень глубоком понимании архитектуры FMX. Резюме: Эту затею лучше сразу бросить, и просто реализовать два новых компонента TRadioGroup и TCheckListBox. Это будет и проще, и удобнее, а так же хорошая наработка для других работ.
  23. Андрей, Интересно, а каким способом вы собираетесь без изменения размера контейнера картинки вписать картинку с сохранением размеров, да еще так, чтобы она не обрезалась? Вы уж определить, что вы хотите в конечном итоге.
×
×
  • Создать...