Помогите решить задачу...

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Код: Выделить всё

uses crt;

type
TMenu = record     Size : Byte;
                  Items : Array[1..25] of String[30];
               ActColor : Byte;
             InactColor : Byte;
        end;

var
m	: TMenu;
c	: Integer;

Function GetMenuChoise(var m:TMenu):Integer;
var
mlen, x  : Integer;
act, latr: Integer;
ch       : Char;
begin
GetMenuChoise := -1;
if m.Size < 1 then exit;
mlen := 0;
for x := 1 to m.Size do
    if Length(m.Items[x]) > mlen then mlen := length(m.Items[x]);
if mlen = 0 then exit;
latr := TextAttr;
inc(mlen, 2);
act := 1;
repeat
    For x := 1 to m.Size do
	begin
        GotoXY(1, x);
        if x = act then TextAttr := m.ActColor
        	   else TextAttr := m.InactColor;
        Write(m.Items[x] :( mlen-1),' ');
        end;
        ch := readkey;
        If ch = #0 then
        	begin
                ch := readkey;
                if (ch = #72) and (act > 1) then dec(act);
                if (ch = #80) and (act < m.Size) then inc(act);
                end;
until (ch = #13) or (ch = #27);
TextAttr := latr;
if ch = #27 then act := -1;
GetMenuChoise := act;
end;

begin
m.Size := 3;
m.Items[1] := 'Drugs';
m.Items[2] := 'Sex';
m.Items[3] := 'Rock''n''Roll';
m.ActColor := $B4;
m.InactColor := $07;
ClrScr;
C := GetMenuChoise(m);
Writeln;
Writeln;
Writeln('You have selected ',C,' item');
end.
It's a long way to the top if you wanna rock'n'roll
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

somewhere,
говорят, сейчас кто-то (не помню, кто именно) декларирует слегка переделанный известный лозунг "Make tea, not war", так что предлагается вариант:

Код: Выделить всё

m.Size := 4;
..............
m.Items[4] := 'Georgian Tea';
;)
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):сейчас кто-то (не помню, кто именно) декларирует слегка переделанный известный лозунг "Make tea, not war"
Это случаем, не с Лондонской демонстрации протеста позаимствовано? :) ))
It's a long way to the top if you wanna rock'n'roll
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

somewhere писал(а):Это случаем, не с Лондонской демонстрации протеста позаимствовано? :) ))
Не помню... Это был какой-то вопрос в "Своей игре".
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

Спасибо большое...
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

Привет всем!

У меня такая проблемма с Паскалем (это срочно)...
Короче, написал программу, не сохранил ее, и случайно нажал Alt+F - NEW
Открылась у меня чистая страница поверх моей программы.... Кто знает, как ее закрыть? Мышька почему-то тоже не работает в паскале, как то можно ее мышку активтровать..., тогда я б смог закрыть...

Это срочно, т.к напряжение скачит....
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

ну Help Me!!
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Alt-F3
А вообще при выходе среда предлагает сохранить все, что можно.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Anton_XXX
Сообщения: 108
Зарегистрирован: 21 дек 2006, 17:15

спасибо! сможете мне обьяснить, как сделать чтоб мышка работала на паскале...
в универе работает, а у меня нет... почему?
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

драйвер mouse.com или типа того
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить