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

Вниз

Ситуативное изменение интерфейса програмы   Найти похожие ветки 

 
delta ©   (2002-12-20 10:00) [0]

Привет всем. Нужен совет, о наиболее ефективной, с точки зрения скорости, визуализации компонентов на форме. К примеру на форме размищон комбобокс, в зависимости от вибраного в нем значения необходимо отобразить (скрить) определенные компоненты. Столкнулся с проблемой, при отображении уже 4 комбобоксов заметна инертность. Для отображения используется свойство Visible. Возможно ефективние будет создавать компоненты динамически или повышать приоритет приложения.

Код
procedure TForm1.ComboBox3Change(Sender: TObject);
begin
if Sender = ComboBox1 then
Form1.LoadItems (CheckBox1.Tag)
else
if Sender = ComboBox3 then begin
Form1.LoadItems (ComboBox4.Tag);
Form1.LoadItems (ComboBox2.Tag);
Form1.LoadItems (ComboBox13.Tag);
end
else
if Sender = ComboBox4 then
If (ComboBox4.Text = "1к (авто)") or (ComboBox4.Text = "1к х 2") then
begin
ComboBox14.Visible:= false;
ComboBox15.Visible:= false;
ComboBox16.Visible:= false;
StaticText17.Visible:= false;
StaticText18.Visible:= false;
StaticText19.Visible:= false;
Form1.LoadItems (ComboBox13.Tag);
end
else
If ComboBox4.Text = "2к" then
begin
if not ComboBox14.Visible then
begin
Form1.LoadItems (ComboBox14.Tag);
ComboBox14.Visible:= true;
StaticText17.Visible:= true;
end;
ComboBox15.Visible:= false;
ComboBox16.Visible:= false;
StaticText18.Visible:= false;
StaticText19.Visible:= false;
Form1.LoadItems (ComboBox13.Tag);
end
else
If ComboBox4.Text = "3к" then
begin
if not ComboBox14.Visible then
begin
Form1.LoadItems (ComboBox14.Tag);
ComboBox14.Visible:= true;
StaticText17.Visible:= true;
end;
if not ComboBox15.Visible then
begin
Form1.LoadItems (ComboBox15.Tag);
ComboBox15.Visible:= true;
StaticText18.Visible:= true;
end;
ComboBox16.Visible:= false;
StaticText19.Visible:= false;
end
else
If ComboBox4.Text = "4к" then
begin
if not ComboBox14.Visible then
begin
Form1.LoadItems (ComboBox14.Tag);
ComboBox14.Visible:= true;
StaticText17.Visible:= true;
end;
if not ComboBox15.Visible then
begin
Form1.LoadItems (ComboBox15.Tag);
ComboBox15.Visible:= true;
StaticText18.Visible:= true;
end;
Form1.LoadItems (ComboBox16.Tag);
if not ComboBox16.Visible then
begin
ComboBox16.Visible:= true;
StaticText19.Visible:= true;
end;
end
else
if Sender = ComboBox5 then
Form1.LoadItems (ComboBox6.Tag)
else
if (Sender = ComboBox7) AND (ComboBox11.Text = "М’яка") then
Form1.LoadItems (ComboBox8.Tag)
else
if (Sender = ComboBox9) AND (ComboBox11.Text = "М’яка") then
Form1.LoadItems (ComboBox10.Tag);

CenaMaterialu;
end;


 
delta ©   (2002-12-20 11:13) [1]

Неужели никто по сабжу ничего не может сказать


 
Кот Бегемот ©   (2002-12-20 11:34) [2]

Если бы не было так много комбинаций - то можно было просто на Panel или Frame а потом BringToFront - появляется достаточно быстро



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

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

Наверх




Память: 0.48 MB
Время: 0.008 c
1-1779
Julya
2002-12-18 11:53
2003.01.02
Как правильно коннектиться к ExcelApplication??


14-1914
DeepProg
2002-12-13 20:55
2003.01.02
Насчет уроков начинающим программерам


1-1778
arnold
2002-12-20 10:39
2003.01.02
Обмен между программами


3-1763
yaJohn
2002-12-11 13:13
2003.01.02
Как заставить TClientDataSet перефильтроваться


14-1906
Mr.Ice
2002-12-15 02:51
2003.01.02
Создается группа кодеров