Форум: "Основная";
Текущий архив: 2003.01.02;
Скачать: [xml.tar.bz2];
ВнизСитуативное изменение интерфейса програмы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c