Можно организовать GroupBox или RadioGroup в меню
Модератор: Модераторы
- BamsikPotapov
- новенький
- Сообщения: 55
- Зарегистрирован: 31.12.2011 19:30:39
- Откуда: Меня в капусте нашли
Можно организовать GroupBox или RadioGroup в меню
Мне нужно создать в меню пункт "точность" в нем 10 пунктов работа которых аналогична GroupBox или RadioGroup. А то самому лень писать в каждом событии нажатия мышки отмену выделения предыдущего элемента, так или иначе приходится в каждом событии писать по 9 дополнительных строк, итого 10х9=90 дополнительных строк на программу. Со свойствами покапался но нашел только как использовать галочку или точку.
Заведите переменную, которая будет указывать на текущий выделенный элемент - CurrentItemMenuChecked.
Соответственно, при выделении очередного элемента, будете снимать выделение с элемента CurrentItemMenuChecked.
Соответственно, при выделении очередного элемента, будете снимать выделение с элемента CurrentItemMenuChecked.
Можно использовать свойства элементов меню: RadioItem, GroupIndex, Checked, AutoCheck, Caption, Tag. Ну и отдельную переменную типа TMenuItem.
ну как обычно, хочу чтобы все было и мне за этого ничего не было
надо головой работать. то есть обрабатываешь все события нажатий меню в одном месте, запоминаешь нажатый пункт, пробегаешь циклом по всем пунктам меню и снимаешь галку а ставишь только там где нужно, и все.
Не надо пробегаться по всем элементам. Если использовать GroupIndex и AutoCheck, то метка выбранного пункта будет перемещаться сама (между пунктами с одинаковым GroupIndex), а узнать, какой выбирается пункт, можно в общем (для всех пунктов группы) обработчике OnClick через параметр Sender:
Добавлено спустя 14 минут 19 секунд:
Код: Выделить всё
var1 := (Sender as TMenuItem).Tag;
или
var2 := (Sender as TMenuItem).Caption;Добавлено спустя 14 минут 19 секунд:
Код: Выделить всё
object MenuItem2: TMenuItem
AutoCheck = True
Caption = 'New Item2'
Checked = True
GroupIndex = 1
RadioItem = True
OnClick = MenuItem2Click
end
object MenuItem3: TMenuItem
AutoCheck = True
Caption = 'New Item3'
GroupIndex = 1
RadioItem = True
OnClick = MenuItem2Click
end
object MenuItem4: TMenuItem
AutoCheck = True
Caption = 'New Item4'
GroupIndex = 1
RadioItem = True
OnClick = MenuItem2Click
end
- BamsikPotapov
- новенький
- Сообщения: 55
- Зарегистрирован: 31.12.2011 19:30:39
- Откуда: Меня в капусте нашли
GroupIndex и AutoCheck не могу никак престроить. галочка ставится, при нажатии на другой пункт устанавливается в нём и не снимается с другого.
В меню пункт есть "Кол-во знаков после запятой" в нём 10 пунктов с именами от "1" до ""10" всем этим пунктам присвоено GroupIndex 1.
Потом я поступил так:
1. присвоил одному из них AutoCheck не помогло
2. присвоил всем AutoCheck не помогло
3. присвоил пункту "Кол-во знаков после запятой" AutoCheck не помогло
Скажи точнее как у тебя получилось
Добавлено спустя 12 минут 11 секунд:
Простите заработало. Но я AutoCheck не трогал, но написал событие на каждый пункт и указал что этот пункт Checked:=true; и использовал свойство RadioItem=true и метка начала перемещаться.
А когда события не было то она не снималась.
Спасибо всем кто помогал.
В меню пункт есть "Кол-во знаков после запятой" в нём 10 пунктов с именами от "1" до ""10" всем этим пунктам присвоено GroupIndex 1.
Потом я поступил так:
1. присвоил одному из них AutoCheck не помогло
2. присвоил всем AutoCheck не помогло
3. присвоил пункту "Кол-во знаков после запятой" AutoCheck не помогло
Скажи точнее как у тебя получилось
Добавлено спустя 12 минут 11 секунд:
Простите заработало. Но я AutoCheck не трогал, но написал событие на каждый пункт и указал что этот пункт Checked:=true; и использовал свойство RadioItem=true и метка начала перемещаться.
А когда события не было то она не снималась.
Спасибо всем кто помогал.
