Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по меню [D7, XP]


КАРО ©   (2007-01-31 09:33:00) 

Есть меню, состоящее из некоторого числа подменю, допустим их 10. Как бы сделать покрасивше такую штуку: когда выбран определенный пункт меню делать его неактивным, остальные соответственно активные, выбираем другой пункт меню - он становится неактивным, остальные - активные. Можно конечно тупо под каждую менюшку написать чтото типа:

Menu1.Enable := Flase;
          Menu2.Enable := True;
          Menu3.Enable := True;
            ..............
          Menu10.Enable := True;


но это блин такой код длинный и некрасивый получается, может можно как-то поэлегантнее? :)


Tornado   (2007-01-31 11:44:00) [1]

вот спасиба!


Elen   (2007-01-31 10:02:00) [2]


> хм...маленький примерчик бы... :)

Не вопрос : Эту проц ты должен определить для всех пунктов меню.

procedure TForm1.N4Click(Sender: TObject);
var i:integer;
begin
//********* FOR ******************
for i :=0  to TMenuItem(sender).Parent.Count-1  do
begin
TMenuItem(sender).Parent.Items[i].Enabled:=true;
end;
//******* END FOR ****************{}
TMenuItem(sender).Enabled:=false;
end;


Tornado   (2007-01-31 09:39:00) [3]

> Separator ©   (31.01.07 09:35) [1]

хм...маленький примерчик бы... :)


Separator   (2007-01-31 09:35:00) [4]

перебрать все дочернии объекты родительсткого меню и выставить enable:= true, а у объекты вызвавшего эту процедуру выставить enable:= false


Наверх

Титульная страница Поиск, карта сайта Написать письмо