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

Вниз

Отображение компонентов на форме   Найти похожие ветки 

 
Salik ©   (2004-06-21 11:32) [0]

Добрый день! На форме одна под другой расположены 10 компонентов Panel. При открытии формы - панели Viseble:=false. Пользователь выбирает, из меню какие панели отобразить на форме(например 5, 8, 10), и панели должны отобразиться точно одна под другой.
Можно реализовать это с помощью if, перебирать какие панели открыты, какие нет и в зависимости от этого присваивать координаты панели

if CheckBox2.Checked then// Открыть 2 панель
begin
 Panel2.Visible:=true;
if CheckBox1.Checked then //если открыта 1 панель
begin
 Panel2.Left:=0;
 Panel2.Top:=Panel1.Height;
 Panel2.Width:=Form1.Width;
end
  else
   begin
    Panel2.Left:=0;
    Panel2.Top:=0;
    Panel2.Width:=Form2.Width;
   end;
end;

Но при открытии уже 4 формы код становится огромным и запутаным, короче ни какой оптимизации....
Подскажите, может усть др. способы решения проблемы?


 
Рамиль ©   (2004-06-21 11:36) [1]

Панели должны быть в массиве, или через Form.Components. Наращиваешь координаты в цикле, пропуская невидимые панели.


 
Семен Сорокин ©   (2004-06-21 11:40) [2]

var
 _i  : integer;
 _top: integer;
 mas : array [1..10] of TPanel;
...
mas[1] := Panel1;
...
mas[10] := Panel10;
_top := 0;
for _i := 1 to 10 do
if TCheckBox(self.FindComponent("CheckBox" + IntToStr(_i))).Checked then begin
 mas[_i].Visible := true;
 mas[_i].SetBounds(_top, ...);
 inc(_top, mas[_i].Height)
end;


 
Романов Р.В. ©   (2004-06-21 11:42) [3]

Создай массив панелей, и процедуру настройки размеров. В процедуре цикл по панелям где устанавливается расположение в зависимости от условий ее видимости.


 
Mim1 ©   (2004-06-21 11:42) [4]

может их выравнивать при помощи align


 
Salik ©   (2004-06-21 11:46) [5]

>>Рамиль
>>Семен Сорокин
 Спасибо за наводку, пойду в этом направлении


 
Rem   (2004-06-21 12:28) [6]

см. [1]



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

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

Наверх




Память: 0.47 MB
Время: 0.023 c
14-1087241665
KilkennyCat
2004-06-14 23:34
2004.07.04
Не кодом единым жив программист.


9-1079956974
SasaR
2004-03-22 15:02
2004.07.04
Нарисовать и покататься по складу


3-1085681089
U96
2004-05-27 22:04
2004.07.04
UpdateSQL


1-1087329553
AAAlexeyAAA
2004-06-15 23:59
2004.07.04
Ув. мастера. К вам вопрос о представлении типов данных.


14-1087374879
MeF88
2004-06-16 12:34
2004.07.04
GL_ARB_shader_objects or Detonator 60