Главная страница
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.02 c
4-91600
Павел
2003-03-03 17:24
2003.04.28
Scrolls.


7-91574
Rammst
2003-03-10 09:01
2003.04.28
CD-ROM


14-91474
Stager
2003-04-09 13:46
2003.04.28
Встречался ли Вам такой грид?


14-91549
tovSuhov
2003-04-11 16:04
2003.04.28
Помогите с тестированием...


6-91432
VIB
2003-03-05 15:33
2003.04.28
HTML