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
somewhere,
говорят, сейчас кто-то (не помню, кто именно) декларирует слегка переделанный известный лозунг "Make tea, not war", так что предлагается вариант:
У меня такая проблемма с Паскалем (это срочно)...
Короче, написал программу, не сохранил ее, и случайно нажал Alt+F - NEW
Открылась у меня чистая страница поверх моей программы.... Кто знает, как ее закрыть? Мышька почему-то тоже не работает в паскале, как то можно ее мышку активтровать..., тогда я б смог закрыть...
Alt-F3
А вообще при выходе среда предлагает сохранить все, что можно.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.