С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
18 / 18 / 4
Регистрация: 27.03.2010
Сообщений: 215
1

Меню через стрелки

11.05.2010, 15:21. Показов 2795. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно написать меню через стрелки вверх низ.
Меню формата:

Pascal
1
2
3
4
5
6
7
8
9
10
11
1.Vuvestu informaciy pro cex na ekran  
 
 2.Vuvestu vsy info                    
 
 3.Dodatu zapus                         
 
 4.Dodatu informaciy v faail            
 
 5.Vudalutu robochogo     
 
 6.EXIT
Каждому пункту меню соответствует процедура кроме 6 пункта.
Буду очень признателен кто поможет...

Добавлено через 25 минут
ЕСЛИ НАДО КИНУ ТЕКСТ ПРОГРАММЫ
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.05.2010, 15:21
Ответы с готовыми решениями:

Стрелки в меню
Доброго времени суток, господа! Суть вопроса вот в чём - есть меню. Надо реализовать...

Стрелки с раскрывающимися меню в ComboBox
Как настроить ComboBox так, чтобы в нём были стрелки с раскрывающимися меню? Вроде...

Изменились стрелки в контекстном меню
Изменились стрелки в контекстном меню Есть подозрения на программу ReGet Deluxe но после...

Меню в программе должно реагировать только на стрелки
Доброго времени суток форумчане, кто может, помогите пожалуйста, нужно что бы в меню строка...

4
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
11.05.2010, 16:58 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{$X+}
uses
    Crt;
 
const
    ITEMS_COUNT = 6;
    ITEMS :array[1..ITEMS_COUNT] of string = (
        'Pervoe',
        'Vtoroe',
        'Tretie',
        'Chetvertoe',
        'Pjatoe',
        'Exit'
    );
    MENU_X = 20;
    MENU_Y = 3;
 
var iSel:Byte;
 
function WaitKey:word;
var r:word;
begin
    r := Word(ReadKey);
    if r = 0 then begin
        r := $FF00 or Word(ReadKey);
    end;
    WaitKey := r;
end;
 
function PrintMenu:Byte;
var i:Byte;
begin
    ClrScr;
    for i:=1 to ITEMS_COUNT do begin
        GotoXY(MENU_X, MENU_Y+i);
        write(i, '. ', ITEMS[i]);
    end;
    GotoXY(MENU_X-2, MENU_Y+iSel);
 
    repeat
        case WaitKey of
            $FF00 or 72: begin
                dec(iSel);
                if iSel<=0 then iSel := ITEMS_COUNT;
                GotoXY(MENU_X-2, MENU_Y+iSel);
            end;
            $FF00 or 80: begin
                inc(iSel);
                if iSel>ITEMS_COUNT then iSel := 1;
                GotoXY(MENU_X-2, MENU_Y+iSel);
            end;
            13: begin
                PrintMenu := iSel;
                exit;
            end;
        end;
    until false;
end;
 
begin
    iSel := 1;
    repeat
        case PrintMenu of
            1: begin
                ClrScr;
                writeln('1.');
                WaitKey;
            end;
            2: begin
                ClrScr;
                writeln('2.');
                WaitKey;
            end;
            3: begin
                ClrScr;
                writeln('3.');
                WaitKey;
            end;
            4: begin
                ClrScr;
                writeln('4.');
                WaitKey;
            end;
            5: begin
                ClrScr;
                writeln('5.');
                WaitKey;
            end;
            6: begin
                ClrScr;
                break;
            end;
        end;
    until false;
end.
1
18 / 18 / 4
Регистрация: 27.03.2010
Сообщений: 215
11.05.2010, 17:04  [ТС] 3
можно прокомментировать программу??
0
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
11.05.2010, 17:14 4
Надеюсь, этого достаточно.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
{$X+}
uses
    Crt;
 
const
    { кол-во пунктов меню }
    ITEMS_COUNT = 6;
    { названия пунктов меню, кол-во должно соответствовать }
    ITEMS :array[1..ITEMS_COUNT] of string = (
        'Pervoe',
        'Vtoroe',
        'Tretie',
        'Chetvertoe',
        'Pjatoe',
        'Exit'
    );
    { координаты отображения меню }
    MENU_X = 20;
    MENU_Y = 3;
 
var
    { текущий выбранный пункт меню }
    iSel:Byte;
 
function WaitKey:word;
{ ожидание нажатия клавиши }
{ для обычной клавиши возвращает ее ASCII код }
{ для расширенной клавиши возвращает ее код в младшем байте и $FF в старшем байте  }
var r:word;
begin
    r := Word(ReadKey);
    if r = 0 then begin
        { если нажали расширенную клавишу, считываем ее код }
        r := $FF00 or Word(ReadKey);
    end;
    WaitKey := r;
end;
 
function PrintMenu:Byte;
{ отображает и обрабатывает меню }
var i:Byte;
begin
    { очищаем экран и выводим пенкты меню }
    ClrScr;
    for i:=1 to ITEMS_COUNT do begin
        GotoXY(MENU_X, MENU_Y+i);
        write(i, '. ', ITEMS[i]);
    end;
    { ставим курсор напротив текущего пункта }
    GotoXY(MENU_X-2, MENU_Y+iSel);
 
    repeat
        { ждем нажатия клавиши }
        case WaitKey of
            { ВВЕРХ }
            $FF00 or 72: begin
                { двигаем курсор на предыдущий пункт }
                dec(iSel);
                if iSel<=0 then iSel := ITEMS_COUNT;
                GotoXY(MENU_X-2, MENU_Y+iSel);
            end;
            { ВНИЗ }
            $FF00 or 80: begin
                { двигаем курсор на следующий пункт }
                inc(iSel);
                if iSel>ITEMS_COUNT then iSel := 1;
                GotoXY(MENU_X-2, MENU_Y+iSel);
            end;
            { Ентер }
            13: begin
                { возвращаемся из функции }
                PrintMenu := iSel;
                exit;
            end;
        end;
    until false;
end;
 
begin
    { изначально выбран первый пункт }
    iSel := 1;
    repeat
        { выводим и обрабатываем меню }
        { проверяем выбранный пункт }
        case PrintMenu of
            1: begin
                { очищаем экран }
                ClrScr;
                { что-то делаем }
                writeln('1.');
                { ждем нажатия любой клавиши дл возврата в меню }
                WaitKey;
            end;
            2: begin
                ClrScr;
                writeln('2.');
                WaitKey;
            end;
            3: begin
                ClrScr;
                writeln('3.');
                WaitKey;
            end;
            4: begin
                ClrScr;
                writeln('4.');
                WaitKey;
            end;
            5: begin
                ClrScr;
                writeln('5.');
                WaitKey;
            end;
 
            { выход }
            6: begin
                { очищаем экран и выходим из цикла }
                ClrScr;
                break;
            end;
        end;
    until false;
end.
1
18 / 18 / 4
Регистрация: 27.03.2010
Сообщений: 215
11.05.2010, 18:45  [ТС] 5
а проще можно как то, просто это очень сложный алгоритм...?

Добавлено через 1 час 8 минут
Все уже не над
0
11.05.2010, 18:45
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2010, 18:45
Помогаю со студенческими работами здесь

При наведении стрелки мыши на выпадающее меню кнопки выделить белым цветом
выпадающее меню на html и css скачать в архиве, для просмотра html -кода отрыть файл главная с...

Во сколько раз угловая скорость минутной стрелки часов больше угловой скорости часовой стрелки
Во сколько раз угловая скорость минутной стрелки часов больше угловой скорости часовой стрелки?

Через сколько минут стрелки на часах совпадут?
Совпадение стрелок На вход программе подаются два целых числа n и m, каждое в отдельной строке...

Стрелки подождите, стрелки не бегите! (RTC спешат)
Есть RTC VS1307N (аналог DS1307). Кварц дешевый, от производителя nonami. Корпус кварца...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как программировать под HCL Notes и создавать свои продукты на ее основе
InfoMaster 11.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой мощную платформу для разработки корпоративных приложений, которая сочетает в себе функции электронной почты, календаря,. . .
Как работать с SVN (Subversion)
InfoMaster 11.01.2025
Введение Система контроля версий является неотъемлемой частью современного процесса разработки программного обеспечения. Она обеспечивает управление изменениями в коде, позволяет отслеживать. . .
Использование GraphQL в JavaScript
InfoMaster 11.01.2025
Введение в GraphQL и его преимущества В современной разработке веб-приложений эффективный обмен данными между клиентом и сервером играет ключевую роль. GraphQL представляет собой язык запросов и. . .
Администрирован­­­­ие Git, продвинутые техники работы с Git
InfoMaster 11.01.2025
Основы управления репозиторием Эффективное управление Git-репозиторием требует глубокого понимания механизмов контроля доступа и инструментов администрирования. Рассмотрим ключевые аспекты. . .
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru