d7d1cd

Пользователи
  • Публикаций

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

  • Посещение

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

    7

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

  1. Приветствую всех. Создаю мобильное приложение для Андроид. Основа - TTabControl на главной форме с двумя вкладками, заголовки вкладок скрыты. На первой вкладке список задач, которые может выполнять приложение. При выборе задачи анимарованно (используя SetActivTabWithTransition) открывается вторая вкладка с элементами управления для выбранной задачи. Элементы управления для каждой задачи реализованы на отдельных формах: на форму кладется TVertScrollBox (Align = Client), а в него уже необходимые элементы управления. Когда пользователь выбирает задачу, то нужная форма создается динамически, родитель TVertScrollBox у этой формы меняется на вторую вкладку TTabControl и вызывается SetActivTabWithTransition. Когда пользователь жмет кнопку "Назад" (аппаратную или программную), то, опять же анимированно, открывается первая вкладка (со списком задач), родитель у TVertScrollBox обратно меняется на созданную ранее форму, форма удаляется оператором delete. Подскажите, не будет ли при таком подходе утечек памяти? На Windows уверен, что не будет, а вот на Андроид не знаю... Кроме этого, целесообразно ли применять форму? Или лучше использовать фрейм? Или же изложенный мной подход вообще не заслуживает реализации? 😊
  2. Применил программно стиль, используя код Ярослава, но не до (как советовал Barbanel), а после назначения родителя фрейму (иначе все равно тормозит). То есть, добавил вкладку в табконтрол (метод Add), создал динамически фрейм, назначил ему родителем созданную вкладку и применил стиль ко всем компонентам, начиная с фрейма. Если открыть приложение и выбрать из списка задачу, то теперь при открытии "окна" этой задачи наблюдается незначительная не плавность появления (гораздо меньше, чем до использования предварительной загрузки стиля). Возврат на "экран" со списком задач происходит плавно. И если снова выбрать задачу, то ее "окно" уже появляется без тормозов. То есть, первая смена вкладок с момента запуска приложения чуть-чуть подтормаживает. Затем все работает плавно. Пробовал заранее применять стиль ко всему табконтролу и его содержимому, но это не помогло.
  3. Приветствую всех. Подскажите, зачем нужно свойство Locked? Точнее по справке я знаю для чего оно: "A locked control cannot be modified at design time.". Однако если установить у компонента галку Locked (тестировал на TLayout), то компонент только переместить нельзя. Все остальное с ним делать можно.
  4. Подскажите, как заранее присвоить стиль программно. P. S. Смена табов рывками происходит только на Андроид. На Windows все плавно.
  5. Реализовал вышеуказанное за некоторым исключением. При выборе пользователем задачи, вкладка в TTabControl создается динамически. Элементы управления для определенного "экрана" хранятся на фрейме, который тоже создается динамически. При этом владельцем указывается ранее созданная вкладка. Затем вкладка делается родителем фрейма и она (вкладка) анимированно отображается. При возврате на "экран" со списком задач вкладка удаляется из TTabControl и память занятая ею удаляется оператором delete (а так как вкладка была владельцем фрейма, то и он освобождает память). Все работает как задумано, но смена вкладки со списком задач на вкладку с фреймом происходит рывками, а не плавно. При этом обратная смена проходит плавно. Может кто-то знает как это исправить или это глючность TTabControl?
  6. Приветствую всех. Нужно отобразить простой текст, но при этом он должен быть в утопленном в форму поле, которое имеет настраиваемый цвет фона. Как такое реализовать на Андроид?
  7. Спасибо за помощь. Подскажите, с чего начать делать стиль...
  8. Спасибо. А скажите, чем TText отличается от TLabel?
  9. То есть, самому рисовать фон, утопленность и сам текст?
  10. d7d1cd

    Анимированная смена форм

    Приветствую всех. Подскажите, как реализуется функционал смены форм (или фреймов) в приложениях на Андроид. Например, когда в Телеграм выбирается ранее созданный чат, то форма этого чата как бы всплывает и одновременно движется справа налево. Если нажать кнопку "Назад", то происходит обратный эффект. Или в WatsApp при выборе чата его окно выезжает справа налево, при этом список чатов тоже движется влево, но медленнее, чем окно чата. Как сделать такое же в C++Builder?
  11. Решение в видео по ссылке Dev интересное, но мне не подходит. Поэтому буду использовать TTabControl. Всем спасибо!
  12. d7d1cd

    Изменение разрешения экрана

    Приветствую всех. Написал тестовое приложение с формой FullScreen = true (чтобы занять весь экран), запустил на смартфоне. По нажатию кнопки определю размеры формы и узнаю, что ее ширина и высота ровно в 2 раза меньше, чем разрешение экрана смартфона. Объясните, почему так происходит?
  13. Я тоже его использую, но подумал, что кто-то для этих целей применяет другой подход.
  14. d7d1cd

    Изменение разрешения экрана

    Спасибо за разъяснение!
  15. d7d1cd

    как показать сообщение?

    Это очевидно... Попытался начать. Здесь результат...
  16. d7d1cd

    Serial port

    Прошу прощения за поспешный вопрос. После прочтения этого топика и нескольких других, у меня возник вопрос: нельзя ли осуществить работу с последовательным портом не используя код на Java? Так как C++Builder предоставляет несколько стандартных модулей для работы с Android API, стал пытаться. За основу взял известный код на гитхабе. Решил начать с поиска всех подключенных к USB устройств. В файле UsbSerialProber.java из вышеуказанной библиотеки, код которого выполняет поиск устройств, подключены 2 модуля: import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbManager; В C++Builder подключил файл Androidapi.Hardware.hpp, так как он более всего подходит по названию к подключаемым модулям в Java коде. И, собственно, на этом все. В этом файле я не нашел никакого упоминания о USB и, тем более, о UsbDevice и UsbManager. Видимо, надо подключать файлы Android.Hardware.Usb.UsbDevice и Android.Hardware.Usb.UsbManager, но их нет в C++Builder. Наверное, это означает, что необходимо, все таки, писать код на Java и создавать обертку...
  17. d7d1cd

    как показать сообщение?

    Надо еще проверить, существуют ли там необходимые модули. Как раз этот код и хочу использовать.
  18. d7d1cd

    Отправить и получить данные

    Приветствую всех. Хочу использовать TIdTCPClient для отправки запроса серверу и получения ответа. Запрос хранится в векторе (std::vector<BYTE>). Подскажите, как отправить этот запрос? Методов отправки много, ни один из них не может отправить данные из вектора. P. S. Не смог найти документацию на этот компонент. Или плохо искал...
  19. d7d1cd

    Отправить и получить данные

    Вопрос решен. Для отправки и приема использовал TByteDynArray. Конвертацию из вектора в TByteDynArray и обратно производил функциями RawToBytes и BytesToRaw. На сайте Инди есть документация по всем компонентам в виде файла справки.
  20. d7d1cd

    как показать сообщение?

    Знаю про этот вариант. Но платить почти 7000 рублей за компонент, который буду использовать только в своих поделках, как-то не хочется, что ли . Поэтому надо попробовать самому через тернии к звездам. Тут и приобретение бесценного опыта.
  21. d7d1cd

    как показать сообщение?

    Я так понимаю, это про это: https://deepsoftware.com/nrcomm/. Только не увидел я там поддержки Android.
  22. d7d1cd

    как показать сообщение?

    Rusland, использовал выложенный Вами файл в своем проекте (на C++Builder). Все работает, спасибо. Однако, возник вопрос: как мог появиться этот файл? Предполагаю, что его написали с нуля. Вариант, что он получился из Java кода в результате работы утилиты Java2OP не рассматриваю, так как в этом случае мне в проект надо было бы добавлять jar файл, а этого я не делал. Уважаемые, прокомментируйте ход моих мыслей, а то есть задача реализовать работу с последовательным портом в андроиде. И пока не знаю, то ли писать Java код и обертку для него, то ли можно осуществить задуманное используя стандартные модули jar и заголовочные hpp в C++Builder.
  23. Припоздал маленько с ответом, конечно. У меня сейчас Tokyo Community Edition. Пробовал все NDK начиная с r9c. Только следующая версия (10 с какими-то буквами) пошла.
  24. Приветствую всех. Создаю приложение для Андроид. Хочу сделать "обычный" TEdit, то есть как в Windows (утопленное белое поле). Все остальные элементы должны остаться без изменений. Для этого надо подправить стиль TEdit, но как это сделать? Я же вообще к форме не применял никакой стиль.
  25. А как такой диалог вывести используя C++Builder?