Вниз
Скачать: CL | DM;

Перебор пунктов меню   Найти похожие ветки 

 
Tornado ©   (2005-01-28 08:54) [0]

Есть довольно большое меню, 15 элементов. При выборе элемента этот элемент должен стать неактивным, остальные - активные. Так для каждого элемента меню. Как осуществить? А то под каждым элементом писать

SubMenu1.Enabled := False;
SubMenu2.Enabled := True;
SubMenu3.Enabled := True;
...............
SubMenu15.Enabled := True;


как то криво


 
Александр Иванов ©   (2005-01-28 09:07) [1]

1. Написать процедуру активирующую все пункты и дезактивировать Sender
2. Использовать AutoCheck


 
Tornado ©   (2005-01-28 09:24) [2]

>> . Написать процедуру активирующую все пункты и дезактивировать Sender

можно чуть подробнее?


 
Александр Иванов ©   (2005-01-28 09:39) [3]

А куда подробней?
procedure ActivateMenu(Root:TMenuItem);
 var i:integer;
 begin
   for i:=0 to Root.Count-1 do
     if Root.Items[i].Items.Count>0 then
       ActivateMenu(Root.Items)
     else
       Root.Items[i].Enabled:=True;
 end;
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
 ActivateMenu(Form1.MainMenu1.Items);
 (Sender as TMenuItem).Enabled:=False;
end;


 
Александр Иванов ©   (2005-01-28 09:41) [4]

Ошибся немного:

procedure ActivateMenu(Root:TMenuItem);
 var i:integer;
 begin
   for i:=0 to Root.Count-1 do
     if Root.Items[i].Count>0 then
       ActivateMenu(Root.Items[i])
     else
       Root[i].Enabled:=True;
 end;


 
REA   (2005-01-28 09:56) [5]

3: Не делать меню из 15 пунктов - пользователю будет напряжно. Надо примерно 7-8. Хотя могут быть и исключения.

А так в принципе сделать Action.OnUpdate, запоминать активный, и TAction(Sender).Enabled := (Sender = LastSelectedAction)



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

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



Память: 0.46 MB
Время: 0.022 c
1-1106923850
akvilon
2005-01-28 17:50
2005.02.13
TCanvas и CS_OWNDC


3-1105950301
RavenD
2005-01-17 11:25
2005.02.13
Lookup из TQuery?


3-1104401956
Zloy
2004-12-30 13:19
2005.02.13
Возможность использваоние базы данных без установленного софта


1-1106898560
Jetus
2005-01-28 10:49
2005.02.13
Как получить результат выполнения командной строки


14-1106574573
}|{yk
2005-01-24 16:49
2005.02.13
Никто не знает, как в TeX сделать обтекание картинки текстом?




   Наверх