Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Panels and Splitters   Найти похожие ветки 

 
FBuilder   (2005-11-06 11:34) [0]

В цикле создаю сплитер, панель, сплитер, панель.
Все выставляется:

   Splitter := TSplitter.Create(VirtualMainPanel);
   Splitter.Parent := VirtualMainPanel;
   Splitter.Align := alBottom;
   Splitter.Height := 3;

   Panel := TPanel.Create(VirtualMainPanel);
   Panel.Parent := VirtualMainPanel;
   Panel.Align := alBottom;

Получаю 2 панели, лежащие внизу, а выше них - 2 сплитера.
Как обойти косяк??


 
jack128 ©   (2005-11-06 11:50) [1]

чего то ты недоговариваешь. Вот, все как надо создается

var
 i: Integer;
begin
 for i := 0 to 1 do
 begin
   with TPanel.Create(Self) do
   begin
     Parent := Self;
     Align := alBottom;
   end;
   with TSplitter.Create(Self) do
   begin
     Parent := Self;
     Align := alBottom;
     Height := 3;
   end;
 end
end


 
FBuilder   (2005-11-06 14:56) [2]


...
>    with TPanel.Create(Self) do
>    begin
>      Parent := Self;


Да, так создается, а вот если на Panel создавать (не Self) - оно не правильно создается :(
Почему?


 
jack128 ©   (2005-11-06 16:06) [3]

 procedure CreatePanelsAndSplitters(AParent: TWinControl);
 const
   Count = 2;
 var
   i: Integer;
   CreationControls: array [0..Count * 2 - 1] of TControl;
 begin
   for i := 0 to Count - 1 do
   begin
     CreationControls[i * 2] := TPanel.Create(AParent);
     CreationControls[i * 2].Parent := AParent;
     CreationControls[i * 2 + 1] := TSplitter.Create(AParent);
     with CreationControls[i * 2 + 1] do
     begin
       Parent := AParent;
       Height := 3;
     end;
   end;
   with CreationControls[Low(CreationControls)] do
   begin
     Top := AParent.Height; // Помещаем первый контрол в самый низ родителя
     Align := alBottom;
   end;
   for i := low(CreationControls) + 1 to High(CreationControls) do
   begin
     CreationControls[i].Top := CreationControls[i - 1].Top - CreationControls[i].Height; // А все последующие ВЫШЕ предыдущего. Этим и задается порядок расположения контролов при одинаковом Align
     CreationControls[i].Align := alBottom;
   end;
 end;



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
1-1131379487
infom
2005-11-07 19:04
2005.12.04
Как подсветить запись под курсором в cxGrid ?


14-1130325473
Сергей1981
2005-10-26 15:17
2005.12.04
Чтение файлов MSWord


9-1121277179
Conferno
2005-07-13 21:52
2005.12.04
CubeMaps везде!!! GLScene


4-1128343460
Max_Keks
2005-10-03 16:44
2005.12.04
Клавиша ALT


9-1121786059
Krigopl
2005-07-19 19:14
2005.12.04
Скрипт для конвертирования моделей из 3d max 7.0 в 3d max 6.0