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