Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.28;
Скачать: CL | DM;

Вниз

Динамически создаваемое меню   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
4-91607
aga
2003-02-28 13:53
2003.04.28
Диалог?


11-91237
Kirill
2002-07-18 11:42
2003.04.28
MAIN ICON


1-91398
BBCHa
2003-04-16 14:36
2003.04.28
странное поведение функции из DLL


4-91600
Павел
2003-03-03 17:24
2003.04.28
Scrolls.


3-91200
sergun
2003-04-10 11:41
2003.04.28
Алиасы