Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.01;
Скачать: 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 вся ветка

Текущий архив: 2003.09.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-1412
gsus
2003-08-13 20:22
2003.09.01
QuickReport


11-1359
CooL
2002-12-23 16:04
2003.09.01
Thread, ну не пойму я!


1-1478
Foxy
2003-08-18 12:37
2003.09.01
Запуск планировщика заданий


14-1582
Antik
2003-08-13 11:12
2003.09.01
расширения файлов


1-1503
AZ
2003-08-17 07:46
2003.09.01
Насколько цензурно выражение?