![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TAction, TActionMenuBar [D7]
zivan © (2008-08-12 16:11:00)В одно из меню в TActionMenuBar, динамически добавляются новые записи TAction, хочу на всех них сделать Radio переключатель, что бы можно было отметить только один из пунктов. Как этого добиться? (Я подозревая что надо что-то делать с AutoCheck и еще что-то, но я никак не придумаю)
zivan (2008-08-12 18:06:00) [1]Если при создании устанавливаю:
GroupIndex, AutooCheck и Checked — тогда получаю AV. Стоит отключить Checked или GroupIndex то все работает без ошибок, но понятное дело, нужного функционала в таком случае нет.
stas (2008-08-12 17:36:00) [2]У меня работает нормально, правда в Design-time создавал.
А это в момент выбора пункта меню срабатывает или при присвоении свойства Checked?
zivan (2008-08-12 17:31:00) [3]В OnExecute примерно такое:
ShowMessage(THackMenuBar(Menu).FSelectedItem.Caption);
Но речь не об этом. Даже убрав все из OnExecute (Оставил только Exit), у меня получается при установленном GroupIndex AV-ошибка.
stas (2008-08-12 17:13:00) [4]а что в OnExecute?
P.S.if SomeBoolValue then
DynAction.Checked := True;
Можно упроститьDynAction.Checked :=SomeBoolValue
zivan (2008-08-12 17:10:00) [5]Пробовал я это. Но после установки GroupIndex отличного от нуля полчаю AV-ошибку. Код добавления:
with ActionManager.ActionBars[1].Items[3].Items[5].Items.Add do
begin
DynAction := TAction.Create(Self);
with DynAction do
GroupIndex := 1;
OnExecute := _OnExecute;
AutoCheck := True;
end;
Action := DynAction;
Caption := '.....';
if SomeBoolValue then
DynAction.Checked := True;
Без выделенной строки все работает нормально, зато в работе при обработке _OnExecute получатся AV-шоибка.
Но мне нужно уже во время добавления отметить один из пунктов, а тут такая ошибка. Что сделать?
stas (2008-08-12 16:34:00) [6]GroupIndex