Помощь - Поиск - Пользователи - Календарь
Полная версия: Меню
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
qwerty
Народ!!! Тут такое вот заданьеце! Разработать программу на TP, которое реализует многоуровневое меню приложения.
Требования:
Строка меню в верхней части экрана (окна);
Активизация меню по клавише Ф10;
Перемещение по опциям (ограничить перемещение за пределы меню)
- для горизонтального - стрелки ВЛЕВО, ВПРАВО
- для вертикального - стрелки ВВЕРХ, ВНИЗ
Выбор - клавиша <Enter> , <Space>
После выбора какого-либо пункта меню на экране вывести сообщение о том, какая опция меню выбрана.

НАРОД !!!!!!! PLZ помогите !!!! Во вторник уже надо сдавать! Я начал ее делать, но не все получается! Если вам не очень затруднит, помогите! Заранее спасибо)))
Jahnerus
Кажется эта тема уже поднималась ... и причём недавно ... поищи получше
volvo
qwerty
Попробуй использовать библиотеку Turbo Vision, хотя до вторника всю ее не освоишь, но с меюшками работать научишься...

А если хочешь свою делать, то размести ее где-нибудь (типа webfile.ru), а тут дай ссылку - (у нас временные проблемы с закачкой файлов) - поможем разобраться.
GoodWind
имя пользователя и просьба выслать на мыло наталкивают на грустные мысли...
qwerty
Цитата(GoodWind @ 3.12.04 20:28)
имя пользователя и просьба выслать на мыло наталкивают на грустные мысли...

Тебе чем-то не нравится мой ник???

Цитата(volvo @ 3.12.04 20:26)
qwerty
Попробуй использовать библиотеку Turbo Vision, хотя до вторника всю ее не освоишь, но с меюшками работать научишься...


А что-нибудь попроще??? Я скачал втой project.zip с ранее обсуждавшегося вопроса и понял, что у нашего препода такая фиша не прокатит))) Надо что-нить попроще!!
volvo
qwerty
Так закинь куда-нибудь свой проект, чтобы можно было его скачать и подправить, я же не знаю, какого уровня программа тебе нужна...
qwerty
Цитата(volvo @ 3.12.04 22:51)
qwerty
Так закинь куда-нибудь свой проект, чтобы можно было его скачать и подправить, я же не знаю, какого уровня программа тебе нужна...

Проекта у меня нет! Его я не доделал и удалил, т.к. узнал дополнительно необходимые условия: делать надо через массивы, без указателей, использовать функции WhereX, WhereY, TextColor, TextBackground !!!!!
volvo
qwerty
На такое (без указателей) я уже не способен... :no:
qwerty
А что так??? Там как-то отрисовывать надо по ходу((
qwerty
volvo, помоги plz - оч надо =\\
qwerty
Пример меню:

Файл----------Настройки--------------Сложность-----------Помощь
--Открыть--------Цвет--------------------Малая
--Сохранить-----Размер-----------------Обычная
--Удалить------------6x6
-----------------------12x12
-----------------------18x18
--------------------Разрешение
volvo
Так ты делай, а если что не понятно - я постараюсь помочь.
qwerty
Мне еще 2 другие делать - калькулятор и часы - я просто физически не успею((
Jahnerus
qwerty
Калькулятор говоришь ... он же пишется максимум за пару минут ... или он тебе тоже с интерфейсом нужен ;)
Ну вощем если по подробней напишешь чё требуется с калькулятором и часами, то запросто помогу ... а вот менюхи как то ... объём большой!
qwerty
Jahnerus , помоги плз

Таймер цифровой :
Ввод интервала времени в формате мм:сс.
Управление таймером: клавиши Enter - запуск, Esc - выход, пробел - пауза / продолжить
Обратный отсчет, звуковой сигнал в момент 00:00.
F1 - помощь, о программе
F2 - настройки, ввод

И второе задание: цифровые часы в виде ХХ:ХХ:ХХ

Заранее спасибо
Jahnerus
И второе задание: цифровые часы в виде ХХ:ХХ:ХХ
Код
uses crt,dos;
var
 h,m,s,ms:word;
 st:string;

procedure add_int(var st:string; i:integer);
var
 tmp_st:string;
begin
 str(i,tmp_st);  
 if i<10 then insert('0',tmp_st,1);
 st:=st+tmp_st;
end;

begin
 clrscr;
 repeat
   st:='';
   gettime(h,m,s,ms);
   add_int(st,h);
   st:=st+':';
   add_int(st,m);
   st:=st+':';
   add_int(st,s);
   gotoxy(1,1);
   write(st);
 until keypressed;
end.
Jahnerus
Таймер цифровой :
Код
uses
 crt;
var
 st,tmp:string;
 ch:char;
 m,s:word;
 er:integer;
 b:boolean;

procedure add_int(var st:string; i:integer);
var
 tmp_st:string;
begin
 str(i,tmp_st);
 if i<10 then insert('0',tmp_st,1);
 st:=st+tmp_st;
end;

begin
 clrscr;
 writeln('Vvedite interval vremeni (59:59)');
 readln(st);
 val((st[1]+st[2]),m,er);
 val((st[4]+st[5]),s,er);
 clrscr;
 writeln(st);
 b:=false;
 repeat
   if b then begin
     delay(1000);
     st:='';
     if s=0 then begin
       if m<>0 then begin
         s:=60;
         m:=m-1;
       end
       else begin
         b:=false;
         writeln(^g);
       end;
     end;
     if b then begin
       s:=s-1;
       add_int(st,m);
       st:=st+':';
       add_int(st,s);
       gotoxy(1,1);
       write(st);
     end;
   end;
   if keypressed then begin
     ch:=readkey;
     if ch<>#0 then begin
       case ord(ch) of
       13: b:=true;
       32: b:=not(b);
       27: break;
       end;
     end
     else begin
       ch:=readkey;
       if ord(ch)=59 then begin
         clrscr;
         writeln('About:');
         writeln('Taymer. ver 1.01');
         writeln('This program was developed by Jahnerus');{Ne zabud6 eto ubrat6}
         writeln('Help:');
         writeln('Interval vremeni vvoditsya v formate mm:ss (mm-minutes, ss-seconds)');
         writeln('Upravlenie taymerom:');
         writeln('Enter ............ Start');
         writeln('Space ... Pause/Continue');
         writeln('Esc ............... Exit');
         writeln('F1 ................ Help');
         writeln('F2 .... Adjustment/Input');
         writeln('Najmite "Esc" dlya vozvrata');
         repeat
         until (keypressed) and (ord(readkey)=27);
         clrscr;
         if (m=0) and (s=0) then writeln('00:00')
         else writeln(st);
       end;
       if ord(ch)=60 then begin
         clrscr;
         writeln('Vvedite interval vremeni (59:59)');
         readln(st);
         val((st[1]+st[2]),m,er);
         val((st[4]+st[5]),s,er);
         b:=false;
         clrscr;
         writeln(st);
       end;    
     end;
   end;
 until false;
end.

Как и обещал! Таймер! работает без глюков если компилить на FPC(Free Pascal Compiler), а через TPC(Turbo Pascal Compiler) будут глюки по уже известным причинам: Delay и длительная проверка на KeyPressed!(ну чё уж поделаешь не писать же на asm'е)
qwerty
Jahnerus
Сэньк ю вери мач! РОДИНА этогго не забудет))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.