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

d7d1cd

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

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

  • Посещение

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

    7

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

  1. Like
    d7d1cd отреагировална brunnengi в Анимированная смена форм   
    Да, я тоже пытался сделать через TabControl.. каждый раз с него начинаю но потом отказываюсь.
    В самом телеграмме, там новое окно как бы "наплывает" сбоку на основное. И при возврате назад, "сплывает" обратно.
    Пришлось реализовать такой же подход, через TLayput'ы и анимацию. При переходе в чат, новое окно двигается справа на лево и одновремено Opacity приходит к 1.
    Ну думаю смысл понятен.
  2. Thanks
    d7d1cd получил реакцию от Mazzay в Не срабатывает деструктор   
    Вот код добавления кнопки и ее удаление без условной компиляции, который работает и на Windows и на Android, а так же, когда при создании указывается владелец:
    // btn объявлен в описании класса TForm1 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { btn = 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { btn = new TButton(this); btn->Text = L"Created!"; btn->Parent = this; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { if(!btn) return; btn->Parent = 0; RemoveComponent(btn); delete btn; btn = 0; }  
  3. Thanks
    d7d1cd получил реакцию от Mazzay в Не срабатывает деструктор   
    Счётчик увеличивается на 2 потому что одну ссылку хранит владелец, а вторую указатель bi.
    Тут я не прав. Есть статья Бровина Ярослава. Там сказано, что каждый компонент с фокусом получает дополнительную ссылку. Я проверил, так происходит только тогда, когда при создании объекта указывается его владелец. Поэтому не указывай владельца при создании объекта.
    Владелец нужен только для автоматического удаления того, кем он владеет при удалении его самого. У тебя же не тот случай.
  4. Thanks
    d7d1cd получил реакцию от Mazzay в Не срабатывает деструктор   
    Owner объявлен как __unsafe для того, чтобы объекты не увеличивали счетчик ссылок у их владельцев. То есть, это для того, чтобы когда мы пишем, например: TButton *btn = new TButton(Form1), то счетчик ссылок у Form1 не изменился.
    Когда мы указываем владельца при создании объекта, то он (создаваемый объект), попадает в список того, чем владеет владелец, поэтому счетчик ссылок создаваемого объекта увеличивается.
  5. Like
    d7d1cd получил реакцию от Ingalime в Ошибка компиляции под Андроид   
    Решение найдено тут.
  6. Like
    d7d1cd получил реакцию от Barbanel в Компоненты вкладки с другой формы/фрейма   
    Применил программно стиль, используя код Ярослава, но не до (как советовал Barbanel), а после назначения родителя фрейму (иначе все равно тормозит). То есть, добавил вкладку в табконтрол (метод Add), создал динамически фрейм, назначил ему родителем созданную вкладку и применил стиль ко всем компонентам, начиная с фрейма. Если открыть приложение и выбрать из списка задачу, то теперь при открытии "окна" этой задачи наблюдается незначительная не плавность появления (гораздо меньше, чем до использования предварительной загрузки стиля). Возврат на "экран" со списком задач происходит плавно. И если снова выбрать задачу, то ее "окно" уже появляется без тормозов.
    То есть, первая смена вкладок с момента запуска приложения чуть-чуть подтормаживает. Затем все работает плавно. Пробовал заранее применять стиль ко всему табконтролу и его содержимому, но это не помогло.
  7. Like
    d7d1cd отреагировална Barbanel в Компоненты вкладки с другой формы/фрейма   
    Возможно: рывок происходит от того, что при смене владельца контролы отрисовываются первый раз (первый, это важно) на табконтроле.
    В момент первой отрисовки (емнип) компоненту создается и присваивается стиль, что ессно занимает некоторое время. При повтороной отрисовке стиль уже создан, потому все происходит быстро.
    Повторюсь, это мои догадки.
    Чтобы побороть именно этот случай, нужно компонентам заранее присваивать стиль программно, до первой отрисовки, т.е. до того как вы меняете родителя.
    Либо (я так не пробовал, не знаю сработает ли) отрисовать компоненты куданить в буффер, или в скриншот (или прямо на текущем родителе). Не уверен что это хороший вариант, пусть коллеги меня напинают).
    Мы в своем проекте все эти контролы расположили прямо на табах главной формы. Немного дольше длится первая загрузка, а потом все работает довольно плавно.
  8. Like
    d7d1cd отреагировална Barbanel в Компоненты вкладки с другой формы/фрейма   
    У нас было аналогично, под Андроидом наблюдались микрофризы, а под Виндовс все выглядело гладко.
    Возможно производительности ПК под Виндовс с лихвой хватает, а под Аднроидом ощущается нехватка скорости/оптимизации.
    Я думаю тут Ярослав мог бы дать ответ.
  9. Like
    d7d1cd отреагировална dnekrasov в Компонент для вывода текста   
    Правая кнопка мыши на лейбле - и один из этих пунктов:

  10. Like
    d7d1cd отреагировална dnekrasov в Компонент для вывода текста   
    TRectangle для цвета, TBevelEffect для утопленности и TText для текста. А можно сделать кастомный стиль для TLabel по тому же сценарию.
    Родителем. TText позволяет просто вывести текст, а TLabel, например, позволяет вывести текст с определённым стилем, указав StyleLookup.
     
  11. Like
    d7d1cd отреагировална Dev в Анимированная смена форм   
    https://www.youtube.com/watch?v=YU7MlY58n9U&t=59s
  12. Like
    d7d1cd отреагировална Barbanel в Изменение разрешения экрана   
    Из-за логического масштабирования.
    Вот здесь описано про это подробнее.
  13. Like
    d7d1cd отреагировална Barbanel в Анимированная смена форм   
    Мы используем TTabControl с отключенным отображением вкладок.
    Каждая вкладка имитирует свое окно. Порядок следования вкладом можно менять на лету.
    Методы Next() и Previous() анимированно показывают следующую/предыдущую вкладку.
  14. Like
    d7d1cd отреагировална sinuke в [Android] Прозрачный StatusBar в RAD 10.3 Rio   
    Привет
    Вчера была выпущена финальная версия RAD Studio 10.3 Rio, в которой много нововведений для Андройд. Но вот про статусбар снова "забыли". Хотя не совсем, добавили файлик styles-v21.xml, который превносит новую материальную тему на устройствах под управлением Android 5.0 и выше вместо устаревшей Holo.
    Но все равно свойство формы SystemStatusBar так и не реализовали. Поэтому при запуске статус бар будет окрашен в унылый серый цвет (см. скриншот).

    Для того, чтобы сделать статусбар прозрачным и поместить под него содержимое формы, то достаточно сделать несколько несложных шагов:
    1. Убираем из деплоймента (Project -> Deployment) файл styles-v21.xml (можно просто снять галочку рядом с именем файла)

    2. Добавить в деплоймент проекта новый файл styles-v21.xml (styles-v21.zip) и прописать ему путь res\values-v21\

    3. В результате получится следующий вид

     
    P.S. В новом файле по сравнению со стандартным добавилась строчка <item name="android:windowTranslucentStatus">true</item>, которая и отвечает за прозрачный статусбар
    P.P.S. Чтобы определять размер статус бара, все также можно воспользоваться решеним ZuBy - http://blog.rzaripov.kz/2016/12/android-ios.html
    P.P.P.S. Тестовый проектик - StatusBar.zip
  15. Like
    d7d1cd получил реакцию от Anatoliy в Отправить и получить данные   
    Вопрос решен. Для отправки и приема использовал TByteDynArray. Конвертацию из вектора в TByteDynArray и обратно производил функциями RawToBytes и BytesToRaw.
    На сайте Инди есть документация по всем компонентам в виде файла справки.
  16. Like
    d7d1cd отреагировална Rusland в как показать сообщение?   
    Хм, действительно. Так давно он у меня в проекте, что стал думать что он стандартный ) Однако он маленький и не требует установки, достаточно скопировать в свой проект.
    Вот он, если нужно.
  17. Like
    d7d1cd отреагировална dnekrasov в Изменить один элемент стиля по умолчанию   
    Создайте стиль с одним элементом editstyle. После применения его TEdit-ы будут поднимать этот стиль, а остальные контролы будут со стилем по умолчанию.
  18. Like
    d7d1cd отреагировална Barbanel в Возможности Androidapi   
    Правильно.
    Насколько я знаю, не ко всему. Конкретный пример вспомнить не смогу, но некоторые вещи приходится тащить отдельно.
    Также, некоторые вещи проще написать на Java и потом импортировать эти библиотеки в FMX.
    Однако, бОльшая часть необходимых процедур апи - в наличии, этого вполне достаточно чтобы собрать полноценное приложение со средними я бы сказал запросами.
  19. Like
    d7d1cd отреагировална IVGSoft в Непонятные линии на TComboBox   
    Смотри стиль для комбика. Скорее всего размеры контролов сделал больше, чем заложено в стиле. А стиль не рассчитан на такое поведение. Я имею в виду конкретно используемый стиль, а не в общем
  20. Like
    d7d1cd отреагировална ENERGY в Назначить фрейму стиль формы   
    Стиль не отображается с Frame только в DesignTime, в RunTime все ок.
    А так - никак, разве что смотреть в RunTime или проектировать на форме, а затем весь Layout копировать на фрейм.
  21. Like
    d7d1cd отреагировална kami в Изменились сочетания горячих клавиш   
    наверное, действительно никто.
    Но вот методом интуитивного тыка это находится на раз. Должно быть так:

     
    А у вас, видимо, стоит emacs
  22. Like
    d7d1cd отреагировална Tumaso в Доступ к COM порту   
    У WinSoft (http://www.winsoft.sk) есть компоненты для работы с com-портами в андроиде. Либа платная, тем не менее вашу задачу решает.
  23. Like
    d7d1cd отреагировална ENERGY в [Отклонение] TFloatAnimation и TFrame   
    Столкнулся с такой же проблемой, если любой компонент (в моем случае TImage ) лежит на фрейме не работает TFloatAnimation вообще.
    Решение: 
    При создании фрейма нужно указывать Self формы, а не  nil.
    : MyFrame := TMyFrame.Create(Self);
  24. Like
    d7d1cd отреагировална Lem0nti в Вызов клавиатуры в Windows 8-8.1   
    Предлагаемый мною эксперимент реализован на VCL. Его цель - продемонстрировать аргументы о том, что в винде уже реализована автоматизация по всплыванию тач-клавы. Задача - научиться использовать эту автоматизацию, потому что вызовы клавы через шелэкзекьют это плохой вариант решения проблемы. 
    И таки да, в моём реальном случае клава нужна в приложении, реализованном на VCL.
  25. Like
    d7d1cd получил реакцию от Rusland в Как Вы используете RAD Studio   
    Пишу на C++Builder специализированные приложения для себя и продажи. Одна из первых программ работает у меня с 2013 года.
×
×
  • Создать...