![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с меню!! [D7, WinXP]
Gennadiy © (2004-07-26 13:16:00)Уважаемые мастера!!!
Как можно напрямую обратиться к TMenuItems чтобы создать в нем подменю, мне нужен что то вроде поиска Itemsа по имени, чтобы не использовать такую конструкцию MainMenu1.Items[0].Items[0].Add(), так как мне неизвестна глубина Итемсов???
Palladin (2004-07-26 13:33:00) [1]парень просто не знает понятие рекурсии, то бишь теоретически не подготовлен, к подобным задачам, хотя берется их решать...
Function FindMenuItem(Const p_strName:String; p_oMenu:TMenu):TMenuItem;
Var
I:integer;
Function FindInSubMenus(p_oMenuItem:TMenuItem):TMenuItem;
Var
I:Integer;
Begin
Result:=Nil;
For I:=0 to p_oMenuItem.Count-1 Do
If p_oMenuItem.Items[I].Name=p_strName Then
Begin
Result:=p_oMenuItem.Items[I];
Exit;
End;
For I:=0 to p_oMenuItem.Count-1 Do
Begin
Result:=FindInSubMenus(p_oMenuItem.Items[I]);
If Result<>Nil Then Exit;
End;
End;
Begin
Result:=Nil;
For i:=0 to p_oMenu.Items.Count-1 Do
If p_oMenu.Items[i].Name=p_strName Then
Begin
Result:=p_oMenu.Items[i];
Exit;
End;
For i:=0 to p_oMenu.Items.Count-1 Do
Begin
Result:=FindInSubMenus(p_oMenu.Items[i]);
If Result<>Nil Then Exit;
End;
End;
Ega23 (2004-07-26 13:18:00) [2]MainMenu1.Items.Count
MainMenu1.Items[i].Name
В чём проблема-то?