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

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

Как выполнить AutoCheck всех пунктов MainMenu! [D7, XP]


mctarik ©   (2006-05-09 07:53:00) 

Здравствуйте уважаемые!

Есть MainMenu1 с несколькими MenuItem (12 пунктов меню)
А Теперь вопрос:

Как при AutoCheck последнего пункта сделать срабатывание AutoCheck
оставшихся 11 пунктов меню?

Типа этого
***
if AllCheck.AutoCheck then ... {оставшихся 11 пунктов}
***

Я понимаю что надо создать массив MenuItem'ом, не пока опыта в создании
подобного очень мало, вернее совсем Нет!

С Уважением mctarik!


mctarik   (2006-05-10 12:12:00) [1]

Спасибо!

А вам
> jb   (09.05.06 20:30) [4]

Огромное, всё Оке'й!


jb   (2006-05-09 20:30:00) [2]

Короче допустим у тебя есть MenuItem1:TMenuItem - он находится в строке меню, когда на него жмешь выплывает SubMenu, в нем 12 пунктов, если выбран 12-й то надо проставить или убрать галочки всех 12:

 for i:=0 to MenuItem1.Count-2 do
 begin
   MenuItem1.Items[i].Checked:=TMenuItem(Sender).Checked;
   // если надо, можно вызвать OnClick каждого MenuItem
   if Assigned(MenuItem1.Items[i].OnClick) then
     MenuItem1.Items[i].OnClick(MenuItem1.Items[i]);
 end;


AlexanderMS   (2006-05-09 20:07:00) [3]

Тогда при чём здесь AutoCheck? Нужно вызвать обработчик OnClick, а если пункты - пункты-переключатели, то установить ПунктX.Checked := not ПунктX.Checked.


> Я понимаю что надо создать массив MenuItem'ом


Верно, нужно при инициализации приложения (событие OnCreate формы) сделать
ArMn[1] := Пункт1;
ArMn[2] := Пункт2;
...........................
ArMn[12] := Пункт12;


Предварительно указать

Var ArMn : array[1..12] of TMenuItem.

Затем работать с циклами.


mctarik   (2006-05-09 20:00:00) [4]


> AlexanderMS ©   (09.05.06 08:53) [1]

В смысле как нажать сразу все 11 пунктов меню при нажатии 12 того путкта.


AlexanderMS   (2006-05-09 08:53:00) [5]


> Как при AutoCheck последнего пункта сделать срабатывание
> AutoCheck
> оставшихся 11 пунктов меню?


В смысле, срабатывание?

ПунктX.Autocheck := true?


Наверх

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