![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как выполнить 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?