IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с окнами, использование библиотеки Crt
shyrik
сообщение 11.01.2005 22:46
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


абсолютно не представляю как делать.
Создать окно в рамке с тенью на фоне, заполненном псевдографическим символом #176 желтого цвета, с текстом из файла. Выполнять перемещение окна вверх, вниз, вправо или влево с сохранением фона по клавишам управления курсором.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
shyrik
сообщение 14.01.2005 20:38
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 21
Пол: Мужской

Репутация: -  0  +


вот кому надо моя прога, она и полегче и по меньше и код у неё понятнее чем в той которая по ссылке.
Цитата
uses crt;
Var
Finp:text;
i,X,Y:Integer;
ch:char;
Screen: array [1..25,1..80,1..2] of byte absolute  $b800:0000;
SaveScreen: array [1..25,1..80,1..2] of byte;
procedure SaveBackGround(flag:boolean);
var
i,j,k:Integer;
begin
if flag then for i:=1 to 25 do for j:=1 to 80 do for k:=1 to 2 do
  SaveScreen[i,j,k]:=Screen[i,j,k]
else for i:=1 to 25 do for j:=1 to 80 do for k:=1 to 2 do
  Screen[i,j,k]:=SaveScreen[i,j,k];
end;
procedure ShowWindow;
Var
StrInp:string;
begin  {⥭м}
Window(X+1,Y+1,x+40,Y+14);
TextBackground(Black);
clrscr;
Window(X,Y,X+39,Y+13);
TextBackground(lightgray);
Clrscr;
{аЁбгҐв а ¬Єг}
gotoxy(2,1); For i:=2 to 39 do write(chr(196));
for i:=2 to 13 do begin gotoxy(1,i); write(chr(179)); end;
for i:=2 to 13 do begin gotoxy(40,i); write(chr(179)); end;
  gotoxy(2,14); for i:=2 to 39 do write(chr(196));
  gotoxy(1,1); write(chr(218));
  gotoxy(40,1); write(chr(191));
  gotoxy(1,14); write(chr(192));
  Window(X,Y,X+40,Y+13);
  gotoxy(40,14); write(chr(217));
  Window(X+1,Y+1,X+38, Y+12);
  {$I-}
  reset(Finp);
  {$I+}
  while not EOF(Finp) do begin
    readln(Finp,StrInp);
    writeln(StrInp);
  end;
end;
procedure FillWindow;
begin
TextColor(0); gotoxy(1,1);
for i:=1 to 1999 do write(chr(176));
Screen[25,80,1]:=176; Screen[25,80,2]:=100;
end;
Begin
Assign(Finp,'123.TXT');
window(1,1,80,25);
TextBackground(yellow);
TextColor(White);
Clrscr;
X:=20;
y:=6;
FillWindow;
SaveBackGround(true);
ShowWindow;
repeat
  if KeyPressed then begin
ch:=Readkey;
if (ch=chr(75)) or (ch=chr(77)) or (ch=chr(72))
    or (ch=chr(80)) or (ch=chr(27))
    then begin
  window(1,1,80,25);
  SaveBackGround(false);
  ShowWindow;
end;
end
else ch:=chr(20);
if (ch=chr(75)) and (X>1) then Dec(X);
if (ch=chr(77)) and (X<40) then Inc(X);
if (ch=chr(72)) and (Y>1) then Dec(Y);
if (ch=chr(80)) and (Y<11) then Inc(Y);
until ch=chr(27);
TextColor(White);
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 14:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"