![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
...splitter ы сбиваются в одну кучу... [D4]
Dmitry Strigevitch © (2002-12-28 04:02:00)Есть класс(TCardFM), в котором динамически должны создаваться панели(Panels) и сплиттеры(split) поочередности. Все это создается на панели, которая создается предварительно (panelPlace).
Проблема в следующем : при поочередном создании панелей и сплиттеров (процедура приведена ниже), сплиттеры сбиваются в кучу сверху, панели - снизу.
Требуется чтобы они чередовались, собственно для изменения размеров панелей!
Вот объявление класса :
TCardFM = class(TTabSheet)
box : TScrollBox;
panelPlace : TPanel;
activeList : TListView;
Split : TSplitter;
public
Panels : array of TPanel;
constructor Create(AOwner : Tcomponent);
procedure CreatePanels(caType : integer);
end;
Вот текст процедуры:
procedure TCardFM.CreatePanels(caType: integer);
var
a : integer;
begin
setLength(Panels,db.Cards[db.CardIndex].FieldsCount);
for a:=0 to db.ActiveCard.FieldsCount-1 do
begin
if a<db.ActiveCard.FieldsCount-1 then
begin
split := TSplitter.Create(PanelPlace);
split.Parent := PanelPlace;
split.Align := alTop;
split.Height := 5;
split.Top := 0;
end;
Panels[a] := TPanelFM.Create(panelPlace,a);
end;
end;
Dmitry Strigevitch (2002-12-29 02:06:00) [1]to ЮЮ ©
Спасибо, сложные проблемы решаю, простые иногда - нет.
ЮЮ (2002-12-28 05:46:00) [2]>split.Top := 0;
Его нужно устанавливать большим чем Top+Height последней добавленной панели, тогда он "приклеится" к ней снизу. То же относится и к добавляемым панели, чтобы порядок соответствовал порядку создания.