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

Андрей Рулин

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

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

  • Посещение

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

    1

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

  1. Like
    Андрей Рулин отреагировална estra в Динамическое изменение цвета TProgressBar   
    Можно ди будет в следующей версии (или ближайшем hotfix) добавить прогрессбару свойство Color (или Fill, или еще какое-то), для изменения цвета в RunTime?
  2. Like
    Андрей Рулин отреагировална Andrey Efimov в Запретить помещать приложение во всплывающем окне(Android)   
    Посмотрите эту страницу документации: Configuring your app for multi-window Mode
  3. Like
    Андрей Рулин получил реакцию от Ingalime в О публикации приложения в магазине   
    Попробовал ещё раз. Самсунг публикует, но и в этот раз на тестировании завернул приложение, правда в этот раз тут моя вина, как разработчика.  Huawei маринует, где-то 4 дня и больше, но потом публикует. 
    Вот пример , как он опубликовал мой проект - https://appgallery.huawei.com/#/app/C104694755
     
     
    Самсунг вроде не требует, но я год назад регистрировался может не помню уже . Huawei точно требует.  Ещё они требуют политику конфиденциальности. Но её можно генератором наклепать. 
    Amazon appstore  - скорее всего не требует. 
  4. Like
    Андрей Рулин получил реакцию от Ingalime в О публикации приложения в магазине   
    Amazon appstore  довольно демократичный магазин, публиковался в нём. Жалко, что пользователей у него, похоже немного.
    Магазин Samsung требует фактически Google аккаунта - если просто выложить, то заблокирует как ненадёжный источник. 
  5. Like
    Андрей Рулин отреагировална haword в Delploy проходит на 10.0 , и портит придоложение на 10.4   
    100% правильная мысль. андроид + файрмонкей = глюки в проекте серьезнее калькулятора. я уже пытаюсь переписать на java свой проект. плюсы огнеобезьяны для меня в том что можно базу данных шифровать и достать от туда данные простому человеку будет очень и очень трудно. на андроиде то же можно шифровать, НО только сторонними библиотеками, а из-за них могут быть проблемы совместимости с новыми версиями андроида. минусы, из тех что я обнаружил, причем на последней версии - попробовал передать в ватсап или телегу текст из своей программы, да текст ушел но после возвращения в программу шрифт у листвью резко изменился почему-то, стал какой то странный, одна буква большая другая маленькая, хз от куда такой шрифт прицепил. из-за нехватки памяти что ли такое произошло, но произошло. скорость прорисовки - раза в три хуже чем на java, хотя странно, тут код нативный, и работает медленнее чем java. да на новых телефонах не заметно но у меня есть старый телефон с 7 андроидом и там это все заметно. ну и самое веселое - новые версии андроида часто несовместимые со старыми версиями делфи. программа написанная на java пашет и не падает, на делфи просто перестала запускаться на 11 андроиде. 
    для меня лично огнеобезьяна хороша только для десктопных приложений, да никакой там красоты современной не получишь, гридов нормальных нет, бесплатных именно, редакторов текста типа ричедита так же нет нормальных, есть два варианта, от tms но у него картинку можно только в один ряд поставить с текстом, обтекать нельзя, ну и htmlcomponent использовать, все что надо есть, но цена у него кусачая. под линукс только через стороннюю библиотеку крюкова, которая без исходников. генератор отчетов только один - фастрепорт. в остальном более-менее рабочее ПО кросплатформенное написать можно. 
     
  6. Like
    Андрей Рулин отреагировална krapotkin в Движущееся изображение   
    onPaint вызывается не когда вы хотите, а когда система считает нужным 
    а чтоб она посчитала нужным, вызывайте Invalidate.
  7. Like
    Андрей Рулин отреагировална Barbanel в Динамическое изменение массива записей   
    Большое количество - это сколько?
    100, 100 000, 100 000 000?
    Каждый раз увеличивая размер на один элемент, менеджер памяти ищет непрерывный незанятый кусок памяти такой длины, чтобы уместить все элементы. Хорошо если место под уже выделенный массив позволяет увеличить размер, не упираясь в участики памяти занятые другими данными.
    Иногда после очередного увеличения массива, уже выделенного участка памяти более не хватает. В таком случае менеджеру приходится искать новый, и копировать старые данные в новый участок памяти, а старый участок помечать как свободный.
    Разумеется это занимает время. Именно это и приводит к "не так быстро, как хотелось бы".
    Чтобы избежать этого:
    1 Способ курильщика, простой: Увеличиваем размер массива не на 1 элемент, а сразу на 16/32/128/1024 элемента (вам виднее, в зависимости от того сколько у вас может быть элементов в массиве). Также заводим счетчик - номер последнего занятого элемента в массиве, и после каждого добавления - увеличиваем этот счетчик на единицу. Этот способ не избавит от проблемы, но будет приводить к менее частому перераспределению памяти.
    2 Способ здорового человека, чуть сложнее: используйте указатели. Заведите массив указателей (либо TList), выделяйте место под каждую новую запись (ваш record) вручную, и помещайте указатель на него в ваш массив указателей (или в TList). Не забывайте освобождать выделенную память, когда ваши обьекты больше не нужны. Этот спобоб более правильный, так как в этом случае перераспределение происходит очень редко.
    Кстати, реализация TList использует внутри себя первый способ.
  8. Like
    Андрей Рулин отреагировална krapotkin в Отрисовка прямоугольника.   
    Если вы хотите на чем-то рисовать, не надо портить стены, возьмите бумагу, холст там..
    Специально придуман PaintBox именно для ваших целей.
    Но для демо ровно то же самое вместо PaintBox.OnPaint сделал на Form.OnPaint
    Работает одинаково, на windows и android. Уверен, что ровно так же все будет на всех остальных ОС.
    type TForm1 = class(TForm) procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); private FCrd: TPointF; public end; var Form1: TForm1; implementation {$R *.fmx} procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin FCrd := PointF(X,Y); end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin Invalidate; end; procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); begin Canvas.Fill.Color := TAlphaColorRec.Wheat; Canvas.FillRect(rectf(FCrd.X, FCrd.Y, FCrd.X+100, FCrd.Y+100), 0,0,[], 1); end; там в проекте еще дофига разных странных решений и ошибок. Но это уже оффтоп...
  9. Like
    Андрей Рулин отреагировална krapotkin в Отрисовка прямоугольника.   
    потому что нельзя рисовать где попало когда захочется
    есть событие OnPaint - его и используйте
  10. Like
    Андрей Рулин получил реакцию от Ingalime в пример отправки данных через USB   
    Вот например есть https://github.com/LongDirtyAnimAlf/Delphi-Android-USB-HID  . К сожалению библиотека старая , не использует возможности последний версий API . И, подозреваю, глючная. 
  11. Like
    Андрей Рулин отреагировална Barbanel в Установить две версии программы на один Android-планшет   
    Нужно в настройках проекта изменить имя пакета.
    В 10.3 это в Project -> Options -> Application -> Version Info -> Key: ProgramID
×
×
  • Создать...