Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум программистов _ Delphi - Компоненты _ Динамическое создание компонет на форме

Автор: exp99 7:05:2008, 16:35

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

 

Автор: Yason 7:05:2008, 16:44

exp99, ответ где-то ]]>http://forum.codeby.net/go.php?http://www.google.com/search?hl=ru&q=%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5+%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BE%D0%B2+delphi&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=]]>

Автор: etc 7:05:2008, 17:59

Цитата(Yason @ 7:05:2008 - 18:44) *
ответ где-то рядом
На какой вопрос? wink.gif

Автор: exp99 7:05:2008, 18:30

Задача стоит следующим образом
необходимо создавать 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[i];

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;

Автор: Yason 7:05:2008, 23:16

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

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

Форум Invision Power Board (http://nulled.ws)
© Invision Power Services (http://nulled.ws)