Вниз
Скачать: CL | DM;

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

 
lightix   (2003-08-19 11:52) [0]

Подскажите как можно динамически построить меню по данным находящимся в массиве: для каждого элемента
CODE - имя (номер) элемента
PCODE - имя (номер) родительского элемента (для 0-го уровня =0)
NPP - номер по порядку в подменю одного уровня.

Пытался сделать с помощью рекурсивной функции - получилось, но с пустыми элементами в каждом уровне :(((

Помогите!


 
pasha_golub ©   (2003-08-19 11:57) [1]

Покажи код, быть может ты сделал рекурсию на входе, а надо было на выходе


 
lightix   (2003-08-19 12:52) [2]

TMenuItem2 *CreateMenuSubLevel(int PCODE)
{
TMenuItem2 *MENU_ITEM = new TMenuItem2(NULL);
TMenuItem2 *NEW_ITEM = new TMenuItem2(NULL);

for (int i=1;i<99;i++)
if (d_menu[PCODE][i].ncode!=0)
{
NEW_ITEM = new TMenuItem2(NULL);

NEW_ITEM->Caption=d_menu[PCODE][i].nmenu;
NEW_ITEM->Name="m"+AnsiString(d_menu[PCODE][i].ncode);
NEW_ITEM->ProgramName=d_menu[PCODE][i].program;
NEW_ITEM->Acl=d_menu[PCODE][i].aclv;
NEW_ITEM->DBName=d_menu[PCODE][i].dbname;
NEW_ITEM->DBUID=d_menu[PCODE][i].dbuid;
NEW_ITEM->DBPasswd=d_menu[PCODE][i].dbpasswd;
NEW_ITEM->Param=d_menu[PCODE][i].param;
//NEW_ITEM->OnClick=MenuClick;

NEW_ITEM->Add(CreateMenuSubLevel(d_menu[PCODE][i].ncode));

MENU_ITEM->Add(NEW_ITEM);
}

return(MENU_ITEM);
}


 
lightix   (2003-08-19 12:52) [3]

TMenuItem2 *CreateMenuSubLevel(int PCODE)
{
TMenuItem2 *MENU_ITEM = new TMenuItem2(NULL);
TMenuItem2 *NEW_ITEM = new TMenuItem2(NULL);

for (int i=1;i<99;i++)
if (d_menu[PCODE][i].ncode!=0)
{
NEW_ITEM = new TMenuItem2(NULL);

NEW_ITEM->Caption=d_menu[PCODE][i].nmenu;
NEW_ITEM->Name="m"+AnsiString(d_menu[PCODE][i].ncode);
NEW_ITEM->ProgramName=d_menu[PCODE][i].program;
NEW_ITEM->Acl=d_menu[PCODE][i].aclv;
NEW_ITEM->DBName=d_menu[PCODE][i].dbname;
NEW_ITEM->DBUID=d_menu[PCODE][i].dbuid;
NEW_ITEM->DBPasswd=d_menu[PCODE][i].dbpasswd;
NEW_ITEM->Param=d_menu[PCODE][i].param;
//NEW_ITEM->OnClick=MenuClick;

NEW_ITEM->Add(CreateMenuSubLevel(d_menu[PCODE][i].ncode));

MENU_ITEM->Add(NEW_ITEM);
}

return(MENU_ITEM);
}



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.016 c
14-1622
keymaster
2003-08-13 15:06
2003.09.01
Формат PDF


14-1584
TButton
2003-08-13 22:11
2003.09.01
BIOS


1-1450
CrazyHackers
2003-08-18 15:00
2003.09.01
Edit - вставить текст в позицию курсора


1-1458
eXtreme.LIK
2003-08-18 18:10
2003.09.01
Нахождение самого нового файла


14-1671
Marser
2003-08-12 11:56
2003.09.01
Ну вот, уже две страницы




   Наверх