Среда, 08.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

HELP!
BadGirlДата: Вторник, 23.09.2008, 00:49 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 3
Репутация: 0
Замечания: 0%
Статус: Offline
В меню приведен полный список вариантов. Название каждого варианта оформляется в отдельном окне.Полностью видно только одно окно, на которое падает выбор. При нажатии клавиш Курсор вверх и Курсор вниз порядок окон меняется. Разработанная программа должна отображать этот процесс выбора вариант.

Подскажите, пожалуйста, как прописать этот процесс выбора?

Code
Program Wind;
Uses
  Crt;
Var
  xn,xk,yk,yn:Integer;
Begin
  TextBackGround(7);
  ClrScr;
  TextAttr:=Yellow+16*Black;
  xn:=25;
  yn:=6;
  xk:=75;
  yk:=12;
  Window(xn,yn,xk,yk);
ClrScr;
  Write('Variant 3');
  TextAttr:=White+16*Blue;
  xn:=20;
  yn:=9;
  xk:=70;
  yk:=15;
   Window(xn,yn,xk,yk);
  ClrScr;
  Write('Variant 2');
  TextAttr:=White+16*Red;
  xn:=15;
  yn:=12;
  xk:=65;
  yk:=18;
   Window(xn,yn,xk,yk);
  ClrScr;
  Write('Variant 1');
ReadKey;
End.
cry cry
 
SeqularДата: Вторник, 23.09.2008, 10:31 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
BadGirl, Если я правильно понял суть задачи, то вам должно помочь это:
Code

Program Wind;
Uses
   Crt;
Var
   xn, xk, yk, yn:Integer;
   c: Char; {*}
   s: String;
   ro, i, code: Integer;

Procedure DrawWindow(n: Byte);
Begin
(* Picyem OKHO *)
Case n of
1: Begin
    TextAttr := Yellow + 16 * Black;
    xn := 25;
    yn := 6;
    xk := 75;
    yk := 12;
    Window(xn, yn, xk, yk);
    ClrScr;
    Writeln('Variant: ',1);
    End;
2: Begin
    TextAttr := White + 16 * Blue;
    xn:=20;
    yn:=9;
    xk:=70;
    yk:=15;
    Window(xn,yn,xk,yk);
    ClrScr;
    Writeln('Variant: ',2);
    End;
3: Begin
    TextAttr:=White+16*Red;
    xn:=15;
    yn:=12;
    xk:=65;
    yk:=18;
    Window(xn,yn,xk,yk);
    ClrScr;
    Writeln('Variant: ', 3);
    End;
End;

End;

Begin
TextBackGround(7);
ClrScr;
s := '123';
Writeln('PRESS ARROW "UP" OR "DOWN" TO START');
Writeln('PRESS "ESC" TO EXIT');
Repeat
c := ReadKey;
Case c of
#72: Begin
      s := s + s[1];
      Delete(s, 1, 1);
      End;
#80: Begin
      s := s[3] + s;
      Delete(s, 4, 1);
      End;
End;
For i := 1 to 3 do
     Begin
     Val(s[i], ro, code);
     DrawWindow(ro);
     End;
Until (c = #27);
End.

Надеюсь, я правильно понял. Если будут вопросы - обращайтесь.
P.S. Задачу можно еще больше оптимизировать. =)


Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Вторник, 23.09.2008, 10:32 | Сообщение # 3
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Да, я там намудрил немного с изменением порядка окон... =)) Но че-то ничего поумнее в голову не лезет =))

Поддерживаю также проект сообщество молодых сисадминов
 
BadGirlДата: Пятница, 26.09.2008, 03:32 | Сообщение # 4
Новичок
Группа: Пользователи
Сообщений: 3
Репутация: 0
Замечания: 0%
Статус: Offline
Огромнейшее спасибо! Все замечательно работает! happy
 
SeqularДата: Пятница, 26.09.2008, 06:21 | Сообщение # 5
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
BadGirl, Рад, что подошло. Темку закрываю. Всего доброго!

Поддерживаю также проект сообщество молодых сисадминов
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;