![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
shyrik |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
абсолютно не представляю как делать.
Создать окно в рамке с тенью на фоне, заполненном псевдографическим символом #176 желтого цвета, с текстом из файла. Выполнять перемещение окна вверх, вниз, вправо или влево с сохранением фона по клавишам управления курсором. |
![]() ![]() |
shyrik |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Репутация: ![]() ![]() ![]() |
вот кому надо моя прога, она и полегче и по меньше и код у неё понятнее чем в той которая по ссылке.
Цитата 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. |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 14:25 |