Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.034 c
2-1132042469
syte_ser78
2005-11-15 11:14
2005.12.04
сетевой доступ к Paradox7


1-1131266070
FBuilder
2005-11-06 11:34
2005.12.04
Panels and Splitters


4-1128086098
AngelFire
2005-09-30 17:14
2005.12.04
Создание секьюрного диалога


14-1131911771
Knight
2005-11-13 22:56
2005.12.04
Интересно... компании, которые пишут антивири...


14-1131694407
MBo
2005-11-11 10:33
2005.12.04
Немножко пятничных задачек ;)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский