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

Alex7wrt

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

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

  • Посещение

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

    31

Весь контент Alex7wrt

  1. Здравствуйте. Задаю высоту и размер шрифта в TEdit. Под Windows все нормально. Под Android размер шрифта меняется, но высота TEdit нет. На рисунке во вложенном файле видно, как усекается текст. Хотя высота TEdit задана в 2 раза больше, чем размер шрифта. эффект такой же, даже если сделать Edit на всю высоту окна. В чем может быть причина?
  2. Всем здравствуйте. Интересует есть ли в FM опция для автоматического изменения размера шрифта в TText таким образом, чтобы текст заполнил всю площадь контрола. Включая и случаи отображения текста в несколько строк. Просто есть контрол стандартного размера, и текст, отображаемый в нем, может быть разным, в том числе и длинным. Нужно сделать, чтобы его шрифт уменьшался для полной вместимости текста.
  3. Большое спасибо! Теперь все понятно. Единственно, интересно, для чего нужно вводить отдельно логическое и физическое разрешение?
  4. Добрый день. На устройстве Android с реальным разрешением экрана 960 на 540 пикселей Delphi выдает 640 на 360. определяю следующим образом. if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(SS)) then begin w:= round(SS.GetScreenSize.X); h:= round(SS.GetScreenSize.Y); end; или w:=screen.Width; h:=screen.Height; При этом на работе приложения это никак не сказывается, все отображается как надо во всех частях экрана. Скажу больше - если бы не принудительное отображение разрешения на экране, никогда бы не догадался, что определяется неправильно. Под Windows определяется верно. Среда: XE7 P.S. Возможно, такой вопрос уже обсуждался, однако я не нашел его обсуждения на форуме.
  5. Всем здравствуйте. Интересует, есть ли в FMX относительно простой механизм сделать так, чтобы если какая-либо часть контрола выходит за границы родителя или формы, отобразить ее в другой части этого родителя или формы. Что-то наподобие старых игрушек типа Марио, когда заходишь за один конец экрана и появляешься с другого. Знаю, что можно сделать дублированием контрола и отображением его двойника в нужном месте, но, быть может, есть что-то более простое, уже доступное в функциях FMX?
  6. Добрый день! На относительно старом смартфоне Lenovo A390, который был куплен 2 года назад, но только сейчас начал использоваться (пролежал 2 года без работы, только музыку слушали несколько раз), почему-то не отображается реклама - не подгружется TBannerAd (не происходит событие onload). Смартфон под управлением Android 4.0.4, правда с фирменной оболочкой. На двух других устройствах с Android 4.0.3 все нормально отображается. При этом Google Play в смартфоне работает, приложения устанавливаются. Время и дата выставлены правильно (читал, что такое может быть из-за их неправильных значений, но тогда и Play Market не работает, и значок WiFi серый), но на этом смарте все ОК, только вот рекламы нет. Кто догадывается о причине, прошу подсказать. UPD. Проверил сторонние приложения - результат тот же. Но Adblock или чего-то вроде того нигде на смартфоне не заметил.
  7. Не могу сказать, в чем причина. Но можете попробовать Form.Invalidate для принудительной отрисовки формы после загрузки данных. Или TStringGrid.Repaint для принудительной отрисовки грида.
  8. Да чего там )) Все точно подмечено. Напишу немного не в тему, тоже извините... Я вот удивляюсь, почему относительно несложные приложения на андроиде после установки на устройство занимают около 30 МБ, когда нативные могут и меньше мегабайта весить. Неоспоримый плюс FMX - возможность практически одним кодом писать для нескольких платформ, из-за чего страдает качество в каждом из них. Здесь однозначно есть к чему стремиться.
  9. Раз в 50 миллисекунд или 50 раз в миллисекунду? Если второе, то не получится технически из-за ограничения по частоте экрана (60 Гц), если первое, то обычной прорисовкой канваса можно сделать.
  10. Используйте свойство TImage.Wrapmode и настраивайте размеры. Можно поместить TImage в контейнер и указать свойство Align:=TAlignLayout.Center
  11. Если я правильно понял смысл вопроса, то вместо bkSolid нужно писать Solid. bkSolid - это устаревший (deprecated) вариант. Он еще работает для совместимости, но его использование в новых версиях студии не рекомендуется.
  12. Эмулятор да тормозит, жесть против ИОС эмулятора. Лучше Андроид устройство какое нить по юсб или вафле (последнее сложнее в реализации). Компиляция я бы сказал - невыносимая, даже по юсб. Сделайте следующее: - установите делфи и проекты ваши на SSD диск скажем 250гб (у меня самс ево 500 и операционка на нем) - поставьте процессор core i7 после всего этого у вас компиляция будет всего на 95% отставать от VCL, против текущих 550%. Соглашусь, что скорость компиляции во многом обусловлена именно дисковой подсистемой. Поэтому эмулятор не может быть быстрее - разница с устройством только в том, что в одном случае после компиляции приложение копируется и устанавливается на устройство, а в другом запускается на эмуляторе. Но скопировать приложение на устройство - это дело от силы нескольких секунд. При этом сам эмулятор при медленном диске тоже будет долго запускаться и сильно ограничивать доступную оперативную память на компьютере, чем вызывать замедление работы той же студии. 4 ГБ в этом случае совсем не много. А вообще использование эмулятора имеет больший смысл, так как позволяет оценить работоспособность приложения на разных версиях ОС, различном количестве памяти и разрешений экрана. Но удобным это будет при наличии быстрого SSD, хорошего процессора и большого объема ОЗУ.
  13. Не помогает, но спасибо за совет! UPD. Возникла идея - зачем указывать прозрачность в FillColor, если можно указать ее в FillPolygon. Так вот, если не указывать прозрачность цвета в Fill.Color (то есть она равна 255), а в FillPolygon она равна 1, то рисует нормально, в остальных случаях - так, как на рисунке. То есть не получается задать прозрачность при отрисовке полигона без артефактов.
  14. Здравствуйте. Есть проблема с закрашиванием полигона каким-либо цветом. Скриншот прилагается: Не пойму, в чем причина появления лучей от начальной точки. Цвет заливки определяется кодом: with canvas do begin beginscene; fill.Kind:=tbrushkind.Solid; stroke.Kind:=tbrushkind.None; fill.Color:=MakeColor(0,0,200,180); FillPolygon(pol,1); endscene; end; Где в pol (TPolygon) заданы координаты точек, начиная с той, от которой на рисунке идут лучи, далее по рисунку вправо, и заканчивая двумя точками - нижним правым и нижним левым углами рисунка.
  15. На телефоне открылся прямым щелчком. Программой ES проводник. Android 4.0.3
  16. Такое предположение - возможно, на телефоне нет ни одного приложения, которое может открыть ini-файл?
  17. При работе с текстами на разных языках, есть несколько правил в зависимости от того, что Вам нужно: 1. Пользуйтесь string 2. Используйте функции AnsiToUTF8, UTF8ToAnsi 3. Используйте кодировку UTF8 в текстовых файлах.
  18. Добрый день. Хочу для себя окончательно разобраться в таких вопросах: 1. При запуске приложения ресурсы сразу же помещаются в оперативную память или только после их извлечения в соотв. переменную? 2. В чем принципиальная разница между доступом к содержимому файлов через TResourseStream и посредством Deployment? Спасибо!
  19. Для Android: uses FMX.Platform; ......... var ls: IFMXLocaleService; lang: string; begin if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(ls)) then lang:=ls.GetCurrentLangID; В зависимости от языка переменная lang примет значения 'en', 'ru' и т.д. либо просто: lang:=copy(SysLocale.DefaultLCID,1,2); В этом случае нужен модуль System.SysUtils. Первый вариант, насколько я помню, выводит региональный код, а второй - код языка. В большинстве случаев они совпадают, но для стран, в которых говорят на одном языке, они отличаются. Первый вариант возвратит код страны, второй - код языка.
  20. Если приложение ничего не делает, то и на паузу, естественно, ставить нечего. Универсальный совет для оптимизации использования ресурсов - выгружать из памяти ненужные объекты, переменные, особенно много в этом плане занимают картинки.
  21. Здесь можно почитать про обработку мультитача в Delphi XE7
  22. От себя добавлю, что приложения в фоне продолжают работать, хотя и с меньшим приоритетом. Специально исследовал этот вопрос - запускал приложение в активном режиме и в свернутом, с блокировкой экрана. Результат - определенный набор действий выполняется и в том, и в другом случае, но во втором ощутимо медленнее. Думаю, для того, чтобы полностью остановить выполнение приложения в фоне, достаточно ставить его на паузу при определенных состояниях Activity.
  23. Можно выводить текст в ячейках графически в методе OnDrawColumnCell, после чего методом TGrid.Repaint обновлять содержимое.
×
×
  • Создать...