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

Barbanel

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

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

  • Посещение

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

    36

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

  1. Like
    Barbanel отреагировална krapotkin в Модальное окно логина небольшого размера   
    эта проблема с диалогами решалась уже 100500 раз
    MyDialogs от ZuBy где то тут на сайте болтается
    вот мой текущий вариант этой же задумки тут https://bitbucket.org/vkrapotkin/vkdialogs/src/master/
    видел в наборах компонентов тоже диалоги примерно так же реализованные
  2. Like
    Barbanel получил реакцию от Ingalime в Модальное окно логина небольшого размера   
    Ну здаров, сталкер!
    Это нормально для мобильных платформ.
    Чтобы это обойти придется кидать на Form1 прямоугольник (TRectangle емнип) и присваивать ему полупрозрачную заливку. Соост в центр твоего ректангла кидаешь еще одну непрозрачную панель и уже на ней размещаешь свои контролы.
    100%-го аналога ShowModal не получишь, придется логику чуть-чуть поправить.
     
    Скорее всего это масштабирование для конкретно твоего устройства, усугубленное тем что ты не используешь Align или Anchors. Используй их и будет тебе счастье.
    Можно еще почитать про масштабирование чтобы лучше понимать что конкретно происходит.
     
    Не сталкивался с таким, не могу сказать. Возможно баг самой FMX, возможно баг в файле стиля (даже не баг, а внутренняя область гроупбокса неправильно описана). Я бы начал проверку со стиля.
    Есть костыльное решение - установи Margins.Top побольше))))))
  3. Like
    Barbanel получил реакцию от Андрей Рулин в Динамическое изменение массива записей   
    Большое количество - это сколько?
    100, 100 000, 100 000 000?
    Каждый раз увеличивая размер на один элемент, менеджер памяти ищет непрерывный незанятый кусок памяти такой длины, чтобы уместить все элементы. Хорошо если место под уже выделенный массив позволяет увеличить размер, не упираясь в участики памяти занятые другими данными.
    Иногда после очередного увеличения массива, уже выделенного участка памяти более не хватает. В таком случае менеджеру приходится искать новый, и копировать старые данные в новый участок памяти, а старый участок помечать как свободный.
    Разумеется это занимает время. Именно это и приводит к "не так быстро, как хотелось бы".
    Чтобы избежать этого:
    1 Способ курильщика, простой: Увеличиваем размер массива не на 1 элемент, а сразу на 16/32/128/1024 элемента (вам виднее, в зависимости от того сколько у вас может быть элементов в массиве). Также заводим счетчик - номер последнего занятого элемента в массиве, и после каждого добавления - увеличиваем этот счетчик на единицу. Этот способ не избавит от проблемы, но будет приводить к менее частому перераспределению памяти.
    2 Способ здорового человека, чуть сложнее: используйте указатели. Заведите массив указателей (либо TList), выделяйте место под каждую новую запись (ваш record) вручную, и помещайте указатель на него в ваш массив указателей (или в TList). Не забывайте освобождать выделенную память, когда ваши обьекты больше не нужны. Этот спобоб более правильный, так как в этом случае перераспределение происходит очень редко.
    Кстати, реализация TList использует внутри себя первый способ.
  4. Like
    Barbanel получил реакцию от GASCHE в Динамическое изменение массива записей   
    Большое количество - это сколько?
    100, 100 000, 100 000 000?
    Каждый раз увеличивая размер на один элемент, менеджер памяти ищет непрерывный незанятый кусок памяти такой длины, чтобы уместить все элементы. Хорошо если место под уже выделенный массив позволяет увеличить размер, не упираясь в участики памяти занятые другими данными.
    Иногда после очередного увеличения массива, уже выделенного участка памяти более не хватает. В таком случае менеджеру приходится искать новый, и копировать старые данные в новый участок памяти, а старый участок помечать как свободный.
    Разумеется это занимает время. Именно это и приводит к "не так быстро, как хотелось бы".
    Чтобы избежать этого:
    1 Способ курильщика, простой: Увеличиваем размер массива не на 1 элемент, а сразу на 16/32/128/1024 элемента (вам виднее, в зависимости от того сколько у вас может быть элементов в массиве). Также заводим счетчик - номер последнего занятого элемента в массиве, и после каждого добавления - увеличиваем этот счетчик на единицу. Этот способ не избавит от проблемы, но будет приводить к менее частому перераспределению памяти.
    2 Способ здорового человека, чуть сложнее: используйте указатели. Заведите массив указателей (либо TList), выделяйте место под каждую новую запись (ваш record) вручную, и помещайте указатель на него в ваш массив указателей (или в TList). Не забывайте освобождать выделенную память, когда ваши обьекты больше не нужны. Этот спобоб более правильный, так как в этом случае перераспределение происходит очень редко.
    Кстати, реализация TList использует внутри себя первый способ.
  5. Like
    Barbanel получил реакцию от Andrey Efimov в Динамическое изменение массива записей   
    Большое количество - это сколько?
    100, 100 000, 100 000 000?
    Каждый раз увеличивая размер на один элемент, менеджер памяти ищет непрерывный незанятый кусок памяти такой длины, чтобы уместить все элементы. Хорошо если место под уже выделенный массив позволяет увеличить размер, не упираясь в участики памяти занятые другими данными.
    Иногда после очередного увеличения массива, уже выделенного участка памяти более не хватает. В таком случае менеджеру приходится искать новый, и копировать старые данные в новый участок памяти, а старый участок помечать как свободный.
    Разумеется это занимает время. Именно это и приводит к "не так быстро, как хотелось бы".
    Чтобы избежать этого:
    1 Способ курильщика, простой: Увеличиваем размер массива не на 1 элемент, а сразу на 16/32/128/1024 элемента (вам виднее, в зависимости от того сколько у вас может быть элементов в массиве). Также заводим счетчик - номер последнего занятого элемента в массиве, и после каждого добавления - увеличиваем этот счетчик на единицу. Этот способ не избавит от проблемы, но будет приводить к менее частому перераспределению памяти.
    2 Способ здорового человека, чуть сложнее: используйте указатели. Заведите массив указателей (либо TList), выделяйте место под каждую новую запись (ваш record) вручную, и помещайте указатель на него в ваш массив указателей (или в TList). Не забывайте освобождать выделенную память, когда ваши обьекты больше не нужны. Этот спобоб более правильный, так как в этом случае перераспределение происходит очень редко.
    Кстати, реализация TList использует внутри себя первый способ.
  6. Like
    Barbanel отреагировална Slym в TEdit искажает текст   
    УБЕРИ ФОН С ФОРМЫ:

    фон делай отдельным Rectanglом - там любой цвет
    кроме шрифтов всплывет и другое читать тут: 
     
  7. Like
    Barbanel отреагировална Slym в TEdit искажает текст   
    Данный артефакт я тоже ловил на лабелах - лечится именно восстановлением фона. (хотя эм могла гденить еще косячнуть)
    Во всех формах надо убрать фон (возможно ты используешь несколько форм)...
    В чистом проекте артефакт есть? сделай полный билд, передерни эм делфи, кофе попей... 
  8. Like
    Barbanel отреагировална Wolfone в TEdit искажает текст   
    Решил проблему, все компоненты должны быть четные по высоте и ширине, и как выше было описано на всех формах fill.kind =  none.
    Может кому пригодиться
  9. Thanks
    Barbanel получил реакцию от denfm в Аналог TDBGrid для FMX   
    Вы случайно не в Эппл работаете?
    "Если у нас чего-либо нет - значит пользователям это не нужно" (С)
    Шучу-шучу)))
    Разумеется я отдаю себе отчет о накладных расходах, и о траффике. Миллион записей мы и за год не сгенерируем, а больше пары тысяч отображать и не требуется, а если и потребуется то был бы инструмент - проблема решится.
    Вопрос был лишь в том, есть ли такой аналог как DBGrid.
    Пытаюсь написать нечто похожее через хелпер к TGridModel, пока получается.
    Когда меня все будет устраивать - выложу в общий доступ.
  10. Like
    Barbanel отреагировална Andrey Efimov в Приложение для создания файла ресурсов (RC, RES)   
    Новая версия.
    GitHub: https://github.com/AndrewEfimov/GenerateRC
    exe файл: https://drive.google.com/file/d/1RZKHq6wrhfDOD151zXt64OnJH0LNJazs/view?usp=sharing
    В блоге: Приложение для создания файла ресурсов (.RC; .RES)
     
  11. Sad
    Barbanel получил реакцию от Astghik в Rad Studio C++ Android 64-bit requirement   
    - Когда будет реализована эта фича?
    - Я думаю, что ближе к никогда. Никогда вас устроит?
    ?
  12. Haha
    Barbanel отреагировална CyberStorm в Rad Studio C++ Android 64-bit requirement   
    ? embarcadero time 
     

  13. Like
    Barbanel отреагировална juppy в Утерян пароль от файла *.keystore   
    Короче, просто переименовал .jks файл в .keystore  и потом импортировал в провизион профайл.
    Все прошло.
     
  14. Like
    Barbanel отреагировална juppy в Утерян пароль от файла *.keystore   
    Всем привет!
    В общем удалил я keystore файл. Естественно обновление не приняли по другому, сгенеренному.
    Написал им в поддержку, что мол извините, не нарочно удалил. Они ответили:
    Все делал как написали и отправил им РЕМ файл.
    Получил ответ уже на Русском:
    А теперь сижу и думаю... А что мне с этим счастьем делать?....
    Как я понял, keystore файл должен как-то соотноситься с сертификатом, который я им отправил.
    Но вот как его получить из jks и РЕМ файлов нигде не нашел.
    Кто-нибудь сталкивался с такой ситуацией?
     
     
  15. Like
    Barbanel отреагировална gonzales в переход к x64?   
    Вот моя переписка. Прислали вот такое письмо с вопросами
    Hello Alexey, Thanks for contacting Google Play Developer Support. Apologies for the delayed response. I understand you would like an extension to become 64-bit compliant. In order to submit your request, can you please provide the following: Reason for not being able to be compliant in time (if there’s a dependency on third party tools, please specify it) Reason for your request and your plan for migration Specific plan on how you will become compliant, with an estimation date for building 64-bit support that you can commit (For example: The app will be compliant 2 weeks after Embarcadero is compliant.) I look forward to your reply and assisting you further. Regards, Liz Google Play Developer Support я ответил так
    Hello Liz! Thank you for your letter. In answer to your questions, i provide that as soon as Embarcadero will make a 64x-compiler for Android, i will use it and make a compatible application. I hope, that it won't take long, i dont use any third party tools, only Embarcadero RAD Studio. I'm disappointed, that Embarcadero do not release a new version in time, like they still don't announce it. Also to this I want to ask, if i need to update my application in Google Play Market, i need to reques this extension every time, or only onсe? My application is made for users of our smart home system, and I'm very worried, that our new customers can't download it from Play Market, so I hope for a positive decision of my request!  
  16. Like
    Barbanel отреагировална gonzales в Элементы стиля на Андроид   
    И вот настало долгожданное попозже))). Сорри, как-то проглядел вопрос. Я думал, что поменяв в рантайме сами элементы стиля мне не придется возиться с каждым объектом, который создается в рантайме. По сути хотел реализовать что-то типа смены цветовой схемы, например перед созданием объектов прохожу по используемым элементам стиля и меняю везде цвет на определенный. Далее создаю объекты, применяю к ним стиль и вуаля - цвет везде изменен на новый.
  17. Like
    Barbanel получил реакцию от Ingalime в Элементы стиля на Андроид   
    Возможно это не работает потому, что для Андроида у вас нет стиля, либо он называется не так, либо в данном стиле нет нет элемента с именем 'BackgroundColor'.
    Проверьте стили и убедитесь что структура имен совпадает.
  18. Like
    Barbanel отреагировална krapotkin в Фреймворк для стандартного ListView   
    еще один пример раскладки из реального проекта

    { "Columns":[], "Variables": [ {"Y_UNIT":"12"}, {"GAP":"8"}, {"ITEM_H":"2*GAP+5*Y_UNIT"}, {"IMG_H":"76"}, {"IMG_W":"76"}, {"STOCK_SIZE":"48"}, {"PRICE_COLW":"53"} ], "Objects": [ {"Name":"ID","Kind":"data"}, , {"Name":"img","Kind":"image", "Place":{"X":"0","Y":"0","W":"IMG_W","H":"IMG_H"}, } , {"Name":"Text","Kind":"text","TextHAlign":"leading","TextVAlign":"leading", "Place":{"X":"img.right","Y":"GAP","W":"itemwidth - IMG_W - GAP - 2*PRICE_COLW - GAP","H":"52"}, "WordWrap":true, "Color":"black", "Font":{"Size":12} } , {"Name":"earlier","Kind":"text","TextHAlign":"leading","TextVAlign":"leading", "Place":{"X":"text.left","Y":"ITEM_H-2*GAP+2","W":"itemwidth - 2*PRICE_COLW","H":"Y_UNIT"}, "WordWrap":false, "Color":"green", "Font":{"Size":10} } , {"Name":"price1","Kind":"text","TextHAlign":"trailing","TextVAlign":"trailing", "Place":{"X":"itemwidth-GAP-PRICE_COLW-W","Y":"GAP+2*Y_UNIT","W":"auto","H":"Y_UNIT*1.5", "priority":"WXYH"}, "WordWrap":false, "Color":"black", "Font":{"Size":15} } , {"Name":"imgstrike","Kind":"image", "Place":{"X":"price1.x-5","Y":"price1.y","W":"price1.w+8","H":"price1.h"}, } , {"Name":"price2","Kind":"text","TextHAlign":"trailing","TextVAlign":"trailing", "Place":{"X":"price1.right-W","Y":"ITEM_H-GAP-Y_UNIT*1.5","W":"auto","H":"Y_UNIT*1.5", "priority":"WXYH"}, "WordWrap":false, "Color":"black", "Font":{"Size":15, "style":"bold"} } , {"Name":"qty","Kind":"text","TextHAlign":"trailing","TextVAlign":"center", "Place":{"X":"itemwidth-PRICE_COLW-GAP","Y":"GAP","W":"PRICE_COLW","H":"2*Y_UNIT"}, "WordWrap":false, "Color":"black", "Font":{"Size":27, "style":"bold"} } , {"Name":"imgstock","Kind":"image", "Place":{"X":"itemwidth-STOCK_SIZE-3","Y":"ITEM_H-STOCK_SIZE-4","W":"STOCK_SIZE","H":"STOCK_SIZE"}, } ], "ItemHeight":"ITEM_H", "ItemSpaces": {"X":"0","Y":"0","W":"0","H":""}, "SideSpace":"0" }  
  19. Like
    Barbanel отреагировална Maka в переход к x64?   
    Отвечают долго, 10-14 дней, а потом еще около 7 дней переписка, проверки и ожидание решения. Наберитесь терпения
  20. Like
    Barbanel отреагировална Ingalime в Unable to create process: Performing Streamed Install   
    Мне помогло ссоздание эмулятора с маленьким разрешением.
     
  21. Like
    Barbanel отреагировална krapotkin в StatusBar Color   
    Запустил код по ссылке на delphi 10.3.2, android 8.1 Xiaomi redmi 5 plus
    В моем случае выяснилось, что поведение зависит от состояния Mainform.Borderstyle
    Если none - ведет себя как Fullscreen, статусбар прячется
     
    Дополнено! 
    Чистый проект на 10.3.2 сам добавляет в Deployment файл styles-v21.xml
    Его нужно отключить! 

     
    иначе будет только вариант Fullscreen (он же Borderstyle=none) когда статусбар скрыт и выезжает полупрозрачный, либо обычный неокрашенный статаусбар.
    Если без него впоследствии что-то не взлетит, можно так же как с основным styles.xml добавить в deployment свой, модифицированный, со строками
            <item name="android:windowTranslucentStatus">true</item>
            <item name="android:windowTranslucentNavigation">false</item>
     
    У меня после отключения окрашивание статусбара работает корректно.
  22. Like
    Barbanel отреагировална Mohamed BEN AMMAR в Воспроизведение видео на Android.   
    at this time you can use the ALCinoe Library it can provide you all you need
    take a look at my sample here.
    you should see this tuto here
  23. Like
    Barbanel получил реакцию от Dmitry_4501 в Исправили или нет? (Delphi 10.3.2)   
    Был как-то на презентации Embarcadero, был задан вопрос из зала про эту ошибку.
    Менеджер ответил что это сильно второстепенная задача, и вообще он рекомендует эту подсветку выключать, ибо в некоторых случаях она напрочь ломается и неправильно группирует участки кода.
    (в нашем рабочем проекте - 80-90% времени подсветка ведет себя неадекватно)
    Исходя из опыта общения с этим чуваком, для себя я сделал вывод что это пофиксят очень нескоро.
    А вообще не парьтесь, подсветка не главное)
  24. Like
    Barbanel отреагировална krapotkin в Фреймворк для стандартного ListView   
    Обновил репозиторий.
    Добавил метод AfterLayout для условного форматирования элементов после раскладки по итему LV
    https://bitbucket.org/vkrapotkin/vklistview/src/master/
  25. Like
    Barbanel получил реакцию от Ingalime в Установить две версии программы на один Android-планшет   
    Нужно в настройках проекта изменить имя пакета.
    В 10.3 это в Project -> Options -> Application -> Version Info -> Key: ProgramID
×
×
  • Создать...