Полная версия этой страницы:
Компонент-меню
Мне необходимо динамически изменять(добавлять) пункты меню. Если кто знает такой удобный компонент подскажите мне плиз! И где его можно скачать?
Для: Admin
а стандартные чем не угодили?
там непонятки с тем, что после их создания неясно как при выполнении программы обработать события при клике на них.
Barmutik
8:10:2007, 13:05
А когда Вы создаёте новый пункт меню присвойте ему в OnClick процедуру обработки, которую Вы хотите и наверное это решит Ваши проблемы...
А как это сделать? Вот есть две процедурки для создания меню и подменю:
procedure tform1.addmainitem(s:string);
var
newitem : Tmenuitem;
begin
newitem:=tmenuitem.create(Mainmenu1);
newitem.caption:=s;
mainmenu1.items.insert(mainmenu1.items.count,newitem);
end;
procedure tform1.addsubitem(s:string; too : integer);
var
newitem, toitem : Tmenuitem;
begin
toitem:=mainmenu1.items[too];
newitem:=tmenuitem.create(toitem);
newitem.caption:=s;
toitem.onclick:=nil;
toitem.insert(toitem.count,newitem);
end;
А под каким именем тот обьект (пункт меню), который я создал? Т.е. я не знаю кому и как назначить этот ONClick
я привел коды создания меню и подменю. А как мне создать допустим подподменю?
Цитата(Admin @ 8:10:2007, 21:02 )
я привел коды создания меню и подменю. А как мне создать допустим подподменю?
Подподменю - это подменю для подменю. Если умеиш создавать подменю для меню, то тебе не составить трудностей создать такимже способом и подменю для подменю.
PS: Я бы на твоем месте переделал процедуру procedure tform1.addsubitem(s:string; too : integer); в procedure tform1.addsubitem(s:string; too : Tmenuitem);, было бы попроще.
И что я должен передавать в качестве параметра для too? А сам текст процедуры не изменится?
Barmutik
10:10:2007, 05:08
Я бы на Вашем месте передевал в процедуру уже сам элемент меню в котором надо создать подэлементы...
Для: Admin
Barmutik уже ответил на: И что я должен передавать в качестве параметра для too?
А текст процедуры конечно изменится. Нужно ведь учитывать too не число, а элемент меню, а все остально остается таким же.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.