Перейти к содержанию
  • Регистрация

d7d1cd

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

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

  • Посещение

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

    7

d7d1cd стал победителем дня 6 ноября 2018

d7d1cd имел наиболее популярный контент!

Информация о d7d1cd

  • Звание
    Продвинутый пользователь

Информация

  • Пол
    Не определился

Посетители профиля

967 просмотров профиля
  1. Вот код добавления кнопки и ее удаление без условной компиляции, который работает и на 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; }
  2. Счётчик увеличивается на 2 потому что одну ссылку хранит владелец, а вторую указатель bi. Тут я не прав. Есть статья Бровина Ярослава. Там сказано, что каждый компонент с фокусом получает дополнительную ссылку. Я проверил, так происходит только тогда, когда при создании объекта указывается его владелец. Поэтому не указывай владельца при создании объекта. Владелец нужен только для автоматического удаления того, кем он владеет при удалении его самого. У тебя же не тот случай.
  3. Owner объявлен как __unsafe для того, чтобы объекты не увеличивали счетчик ссылок у их владельцев. То есть, это для того, чтобы когда мы пишем, например: TButton *btn = new TButton(Form1), то счетчик ссылок у Form1 не изменился. Когда мы указываем владельца при создании объекта, то он (создаваемый объект), попадает в список того, чем владеет владелец, поэтому счетчик ссылок создаваемого объекта увеличивается.
  4. Приветствую всех. Есть код: std::vector<TControl*> ctrls; ctrls.push_back(Layout1); При компиляции под Виндоус все работает. При компиляции под Андроид ошибка на этапе компиляции: Как это можно победить?
  5. Применил программно стиль, используя код Ярослава, но не до (как советовал Barbanel), а после назначения родителя фрейму (иначе все равно тормозит). То есть, добавил вкладку в табконтрол (метод Add), создал динамически фрейм, назначил ему родителем созданную вкладку и применил стиль ко всем компонентам, начиная с фрейма. Если открыть приложение и выбрать из списка задачу, то теперь при открытии "окна" этой задачи наблюдается незначительная не плавность появления (гораздо меньше, чем до использования предварительной загрузки стиля). Возврат на "экран" со списком задач происходит плавно. И если снова выбрать задачу, то ее "окно" уже появляется без тормозов. То есть, первая смена вкладок с момента запуска приложения чуть-чуть подтормаживает. Затем все работает плавно. Пробовал заранее применять стиль ко всему табконтролу и его содержимому, но это не помогло.
  6. Приветствую всех. Подскажите, зачем нужно свойство Locked? Точнее по справке я знаю для чего оно: "A locked control cannot be modified at design time.". Однако если установить у компонента галку Locked (тестировал на TLayout), то компонент только переместить нельзя. Все остальное с ним делать можно.
  7. Подскажите, как заранее присвоить стиль программно. P. S. Смена табов рывками происходит только на Андроид. На Windows все плавно.
  8. Реализовал вышеуказанное за некоторым исключением. При выборе пользователем задачи, вкладка в TTabControl создается динамически. Элементы управления для определенного "экрана" хранятся на фрейме, который тоже создается динамически. При этом владельцем указывается ранее созданная вкладка. Затем вкладка делается родителем фрейма и она (вкладка) анимированно отображается. При возврате на "экран" со списком задач вкладка удаляется из TTabControl и память занятая ею удаляется оператором delete (а так как вкладка была владельцем фрейма, то и он освобождает память). Все работает как задумано, но смена вкладки со списком задач на вкладку с фреймом происходит рывками, а не плавно. При этом обратная смена проходит плавно. Может кто-то знает как это исправить или это глючность TTabControl?
  9. Спасибо за помощь. Подскажите, с чего начать делать стиль...
  10. Спасибо. А скажите, чем TText отличается от TLabel?
  11. То есть, самому рисовать фон, утопленность и сам текст?
  12. Приветствую всех. Нужно отобразить простой текст, но при этом он должен быть в утопленном в форму поле, которое имеет настраиваемый цвет фона. Как такое реализовать на Андроид?
  13. Приветствую всех. Создаю мобильное приложение для Андроид. Основа - TTabControl на главной форме с двумя вкладками, заголовки вкладок скрыты. На первой вкладке список задач, которые может выполнять приложение. При выборе задачи анимарованно (используя SetActivTabWithTransition) открывается вторая вкладка с элементами управления для выбранной задачи. Элементы управления для каждой задачи реализованы на отдельных формах: на форму кладется TVertScrollBox (Align = Client), а в него уже необходимые элементы управления. Когда пользователь выбирает задачу, то нужная форма создается динамически, родитель TVertScrollBox у этой формы меняется на вторую вкладку TTabControl и вызывается SetActivTabWithTransition. Когда пользователь жмет кнопку "Назад" (аппаратную или программную), то, опять же анимированно, открывается первая вкладка (со списком задач), родитель у TVertScrollBox обратно меняется на созданную ранее форму, форма удаляется оператором delete. Подскажите, не будет ли при таком подходе утечек памяти? На Windows уверен, что не будет, а вот на Андроид не знаю... Кроме этого, целесообразно ли применять форму? Или лучше использовать фрейм? Или же изложенный мной подход вообще не заслуживает реализации? ?
  14. Решение в видео по ссылке Dev интересное, но мне не подходит. Поэтому буду использовать TTabControl. Всем спасибо!
×
×
  • Создать...