Динамическое создание компонет на форме

Тема в разделе "Delphi - Компоненты", создана пользователем exp99, 7 май 2008.

  1. exp99

    exp99 Гость

    Необходимо при создании нескольких компонет типа GroupBox разделять их TSplitter и создавать примыкая по горизонтали
    В итоге должно получиться типа как показано на рис в прикрепленном файле
     

    Вложения:

    • form1.jpg
      form1.jpg
      Размер файла:
      18,4 КБ
      Просмотров:
      23
  2. Yason

    Yason Гость

  3. etc

    etc Гость

    На какой вопрос? ;)
     
  4. exp99

    exp99 Гость

    Задача стоит следующим образом
    необходимо создавать GroupBox а между мини должен быть Split
    в итоге получается такая картина
    создаются GroupBox один под другим - это правильно
    А вот Split создаются под самым нижним , а нужно между GroupBox

    GroupBox:=TGroupBox.Create(PanelGraf);
    GroupBox.Parent:=PanelGraf;
    GroupBox.Name:='GroupBox'+inttoStr(N);
    GroupBox.Align:=alTop;
    GroupBox.Top:=PanelGraf.Height;
    GroupBox.Caption:=CheckListBoxCur.Items.Strings;

    GroupBox.Top:=(N-1)*200;
    GroupBox.Height:=200; //(PanelGraf.Height - 10) div N ;
    GroupBox.Width:=PanelGraf.Width;
    Split:=TSplitter.Create(PanelGraf);
    Split.Parent:=PanelGraf;
    Split.Name:='Splitter'+intToStr(N);
    Split.Align:=alTop;
    Split.Width:=7;
    Split.Color:=clActiveBorder;
    Split.Top:=PanelGraf.Height;
     
  5. Yason

    Yason Гость

    exp99, всё зависит от свойства Top сплиттера. В приведённом коде каждому созданному сплиттеру говорится, что его место - внизу панели; Align=alTop "подтягивает" его к последнему GroupBox'у. Если указать Split.Top между груп-боксами, всё будет ок.

    Посмотреть вложение SplitterAlignTest.zip Тестовое приложение немного усложнено во имя наглядности. Кликаешь несколько раз "Add Groupbox"; потом выбираешь сплиттер, который хочешь переместить; потом перемещаешь его. Как минимум, тест доказывает возможность перемещения aligned контролов во время исполнения ;)
     
Загрузка...

Поделиться этой страницей