Главная страница
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.47 MB
Время: 0.009 c
6-1851
X-shadow
2002-11-05 06:16
2003.01.02
Вопрос про WinSock и отправку письма.


1-1811
harismatik
2002-12-20 13:47
2003.01.02
Опять про TListView


14-1921
konstantinov
2002-12-10 22:55
2003.01.02
Грабеж средь бела дня


1-1828
ga3
2002-12-21 06:08
2003.01.02
убиение процесса по имени ехе


14-1920
de2
2002-12-12 15:15
2003.01.02
подскажите компонент