Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
ВнизДинамически создаваемое меню Найти похожие ветки
← →
SHS (2003-04-15 12:25) [0]В ходе выполнения программы, динамически создаю меню. Проблема в том, что при повторном щелчке на отмеченном пункте пометка снимается, а должен быть выбран какой-то один пункт. Как обработать это событие в процедуре MyClick чтобы не допустить снятия пометки, если повторный щелчок произошел по помеченному пункту? Заранее благодарю за внимание. Меню создаю (количество пунктов меню может быть различным) такой процедурой:
procedure TForm1.FormCreate(Sender: TObject);
var
mnuNewItem: TMenuItem;
i: integer;
begin
for i := 0 to 5 do
begin
mnuNewItem := TMenuItem.Create(PopupMenu1);
Menu.Add(mnuNewItem);
mnuNewItem.RadioItem := True;
mnuNewItem.AutoCheck := True;
mnuNewItem.Name := "Subitem_" + IntToStr(i);
mnuNewItem.Caption := mnuNewItem.Name;
mnuNewItem.OnClick := MyClick;
end;
end;
procedure TForm1.MyClick(Sender: TObject);
begin
//?
end;
← →
Dms (2003-04-15 12:30) [1]используй свойство GroupIndex и RadioItem. В OnClick выставляй
(Sender as TMenuItem).Checked:=not (Sender as TMenuItem).Checked;
← →
SHS (2003-04-15 12:42) [2]Спасибо Dms, сделал всё как ты сказал, но так не выбирается не
один пункт меню :-(
← →
Dms (2003-04-15 12:55) [3]странно ...
1. Усановить всем пунктам группы один и тотже GroupIndex
2. Установить RadioItem := True
3. Обработать OnClick
← →
Mystic (2003-04-15 12:58) [4]procedure TForm1.FormCreate(Sender: TObject);
var
mnuNewItem: TMenuItem;
i: integer;
begin
for i := 0 to 5 do
begin
mnuNewItem := TMenuItem.Create(PopupMenu1); // <- почему ты добавляешь в Menu, а родителя устанавливаешь в PoputMenu1 ?
mnuNewItem.RadioItem := True;
mnuNewItem.AutoCheck := True;
mnuNewItem.GroupIndex := 1; // <- вставить mnuNewItem.Name := "Subitem_" + IntToStr(i);
mnuNewItem.Caption := mnuNewItem.Name;
mnuNewItem.OnClick := MyClick;
Menu.Add(mnuNewItem);
end;
end;
← →
SHS (2003-04-15 13:25) [5]Спасибо ВСЕМ ОГРОМНОЕ, все прекрасно работает. Честное слово,
не знаю что бы без вас делал. Ещё раз СПАСИБО!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.04.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c