Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.046 c
1-1107142027
diabolik
2005-01-31 06:27
2005.02.13
Checkbox в ListView и обработка события


3-1106039545
SHort
2005-01-18 12:12
2005.02.13
Ошибка при выполнении запроса ( DBF+ODBC+BDE)


1-1106746187
Derevyanniy kak Rels
2005-01-26 16:29
2005.02.13
Узнать программно , если такой метод или нет ?


1-1107017305
Караваев Дмитрий
2005-01-29 19:48
2005.02.13
Как скопировать PWideChar в буфер обмена?


6-1101673423
KAE
2004-11-28 23:23
2005.02.13
Проблема в написании UDP чата