Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.993 c
4-1941
Cosmic
2002-11-14 19:04
2003.01.02
Как закрыть DOS-окно?


3-1747
Valeron
2002-12-11 11:52
2003.01.02
Не сохраняются данные при использовании ODBC.


1-1801
a-leksey
2002-12-14 15:28
2003.01.02
Как создать указатель на обьект внутри метода этого обьекта? Замы


14-1908
SONY
2002-12-15 11:36
2003.01.02
Русская справка


14-1879
Anatoly Podgoretsky
2002-12-13 07:17
2003.01.02
Именинники 13 декабря




   Наверх