Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модуль, формирующий меню заданной конфигурации 
:(
    Опции темы
Hob
Дата 10.2.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.2.2008

Репутация: нет
Всего: нет



Извиняюсь, если подобная тема уже была (в "а здесь смотрели" похожего не нашел), однако...
Имеется задание, довольно сложное для чайника вроде меня: написать модуль, который формирует меню заданной конфигурации с возможностью задания пунктов, уровней вложенности
Попытался осилить самостоятельно - только еще больше запутался. Помогите, пожалуйста.

То имеется на данный момент (хотя бы просто укажите на ключевые ошибки):
Код

uses crt;
type
element=object
public
raskr:boolean;
name:char;
menuopen:integer;
procedure init(num:integer);
end;

menu=object
public
kolvopunktov:integer;
name:string[10];
punkts:array[1..10] of ^element;
procedure initmenu;
end;

var
menus:array[0..100] of ^menu;
kolvosozdmenu:integer;
activemenu:integer;
chooseelem:integer;
i,j:integer;
az:integer;
whichmenu:integer;
mb:menu;

procedure element.init(num:integer);
var
tint:integer;
tbool:boolean;
tstring:string;
ij:char;
begin
write('Введите имя ',num,'го элемента: ');
readln(name);
write('Этот элемент раскрывается (1-да,0-нет): ');
readln(tint);
if tint=1 then raskr:=true;
if tint=0 then raskr:=false;
end;

procedure menu.initmenu;
var
tint:integer;
tbool:boolean;
t:integer;
begin
write('Введите количество пунктов в ',kolvosozdmenu,'м меню (не больше 10ти): ');
readln(kolvopunktov);
for t:=1 to kolvopunktov do begin
new(punkts[t]);
punkts[t]^.init(t);
end;
for t:=1 to kolvopunktov do begin
if punkts[t]^.raskr=true then
begin
kolvosozdmenu:=kolvosozdmenu+1;
punkts[t]^.menuopen:=kolvosozdmenu;
new(menus[kolvosozdmenu]);
menus[kolvosozdmenu]^.initmenu;
end;
end;
end;

procedure menucreation(whichmenu:integer);
var cmenu:char;
    {whichmenu:byte;}
    point:array[1..10] of string;
    spoint:byte;
    c,v,b:byte;
begin
spoint:=1;
repeat
clrscr;
for c:=0 to menus[0]^.kolvopunktov do begin
if c=spoint then textcolor(10) else textcolor(15);
writeln(menus[whichmenu]^.punkts[c]^.name);
end;
cmenu:=readkey;
case cmenu of
#72:begin spoint:=spoint-1; if spoint<1 then spoint:=1; end;
#80:begin spoint:=spoint+1; if spoint>menus[whichmenu]^.kolvopunktov then spoint:=menus[whichmenu]^.kolvopunktov; end;
#13:begin
if menus[whichmenu]^.punkts[spoint]^.raskr=true then
whichmenu:=spoint;
menucreation(whichmenu);
end;
#27:begin
if whichmenu>0 then menucreation(whichmenu) else exit;
end;
end;
for c:=1 to menus[whichmenu]^.kolvopunktov do begin
if c=spoint then textcolor(10) else textcolor(15);
writeln(menus[whichmenu]^.punkts[c]^.name);
end;
until false;
end;

procedure mainmenu;
begin
whichmenu:=0;
menucreation(whichmenu);
end;

begin
mb.initmenu;
mainmenu;
end.


Помогите пожалуйста, утром экзамен =(
PM MAIL   Вверх
volvo877
Дата 10.2.2008, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Посмотри здесь: Организация меню в программах (надо будет чуть-чуть подправить)...

Если этого будет недостаточно - скажи, я дам тебе ссылку на обсуждение, где делается меню любой вложенности, но там совсем не для новичков...

Это сообщение отредактировал(а) volvo877 - 10.2.2008, 21:34
PM MAIL   Вверх
Hob
Дата 10.2.2008, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 10.2.2008

Репутация: нет
Всего: нет



За ссылочку спасибо большое (изучаю), хотелось бы узнать еще что-нибудь по моим каракулям =) т.к. все-таки придется перед преподом отчитываться что и как.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.