Размещение существующих элементов управления VCL на компоненте TPanel
Как мы все знаем, TPanel
является контейнером для других визуальных компонентов (TLabel
, TEdit
так далее). Однако, кажется, что мы можем поместить только новые компоненты (из палитры компонентов) в существующий TPanel, и структура VCL автоматически сделает TPanel их родителем).
Интересно, есть ли способ разместить существующие визуальные компоненты (те, которые уже есть в нашей форме VCL) на TPanel. я пробовал
Размещение компонентов на существующем TPanel (это не работает, потому что инфраструктура не сделает TPanel их родителем)
Редактирование dfm-файла формы вручную (компоненты TPanel теперь невидимы - ошибка?)
Явная установка свойства Parent компонента в коде (
Label1
виден даже когдаPanel1
высота установлена на 0)Label1->Parent = Panel1;
Ничто из вышеперечисленного не сработало, но это кажется настолько простой вещью, что это должен быть способ сделать это.
Спасибо
1 ответ
Основываясь на моем опыте с VCL (я использую Delphi, но я думаю, что то же самое относится и к C++), я знаю 3 способа изменить Parent
уже существующего контроля во время разработки:
Выберите
Control
, обрежьте его Ctrl + X, выберите нужныйParent
и вставьте Ctrl + V. Таким образом,Control
будет вставлен как дочерний контроль желаемогоParent
,Вручную отредактируйте файл DFM. Делая так, вы должны обратить внимание на
Left
а такжеTop
свойства, потому чтоControl
может быть размещен за пределами новогоParent
и это может показаться невидимым. В этом случае я предлагаю установить элемент управленияLeft
а такжеTop
в0
чтобы быть увереннымControl
будет виден внутри его новогоParent
,