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

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

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

 
 Ответить  Открыть новую тему 
> прокрутка полос стрелками в окне
сообщение
Сообщение #1


Новичок
*

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

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


дана задача:По приглашению ввести функцией 0х3F три слова и по нажатию клавиши W вывести их в три строки красного окна размером 10 строк на 30 позиций белыми буквами. По клавишам стрелки вверх и вниз перемещать эти строки внутри данного окна, реализуя при этом полнофунциональное окно с прокруткой (т.е. с выходом строк из окна и их возвращением по стрелкам вверх или вниз)

вот примерный текст:
uses crt,dos,objects;
type ps=^string;arr=array[1..3]of ps;
var regs:Registers;l:ptrrec;

procedure clrscr;
begin regs.ax:=3;intr($10,regs) end;

procedure write(p:ps);
begin l:=ptrrec(p);with regs do begin
ah:=9;ds:=l.seg;dx:=l.ofs+1;
msdos(regs) end;end;

procedure vvod(var ascii,scan:integer);
begin regs.ah:=0;
intr($16,regs);
ascii:=regs.al;scan:=regs.ah end;

procedure read(var p:ps;var len:integer);
begin l:=ptrrec(p);
with regs do begin
ah:=$3F;ds:=l.seg;dx:=l.ofs+1;bx:=0;cx:=80;
msdos(regs);
len:=ax-2;
end;end;


procedure window(f,scroll,color,x1,y1,x2,y2:integer);
begin with regs do begin
ah:=f;al:=scroll;bh:=color;
ch:=y1;cl:=x1;dh:=y2;dl:=x2;
intr($10,regs);end;
end;

procedure cwrite(p:ps;len,color,x,y:integer);
begin
begin l:=ptrrec(p);
with regs do begin
ah:=$13;al:=1;bh:=0;bl:=color;
cx:=len;es:=l.seg;bp:=l.ofs+1;
dh:=y;dl:=x;
intr($10,regs);
y:=y+1;end;
end end;

procedure readkey;
begin regs.ah:=8;
msdos(regs);end;

label again,ende;
var p,q:ps;len,al,ah,x,y,i:integer;my,qq,s:arr;
c:char;

begin clrscr;new(p);new(q);x:=20;y:=5;
p^:='Enter String:$ ';
q^:='GameIsOver';
for i:=1 to 3 do
begin write(p);
new(s[i]);s[i]^[0]:='+';
read(s[i],len);end;
window(6,0,$1F,20,5,60,15);
for i:=1 to 3 do begin
cwrite(s[i],len,$1f,x,y);
y:=y+1; end;
again:vvod(al,ah);
if al=$1B then goto ende;
if ah=72 then if y>5 then begin
y:=y-1;window(6,1,$1F,20,5,60,15);end;
if ah=80 then if y<15 then begin
y:=y+1;window(7,1,$1F,20,5,60,15);end;

goto again;
ende:cwrite(q,10,4,12,16);
readkey
end.

М
Используй, пожалуйста, теги (выделить текст проги, выбрать нужный код в выпадающем меню с CODE)
Lapp

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


А в чем вопрос-то? blink.gif
Искать твою проблему тоже самим?..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Цитата
А в чем вопрос-то?
Искать твою проблему тоже самим?..
нужно сделать прокрутку строк

Сообщение отредактировано: kess -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


как сделать чтобы можно было с помощью стрелок (Вверх-вниз) прокручивать 3 строки внутри данного окна, чтобы выходя за его границу, они не стирались, а возвращались обратно по стрелкам
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


очень надо (((((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






ну неужели ничего нельзя сделать?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

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

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


А это нормально,то что у тебя процедуры названны зарезервированныим словами?

procedure readkey;
procedure clrscr;
procedure write(p:ps);
procedure window

???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата(Andrewshkovskii @ 3.04.2007 21:39) *

А это нормально,то что у тебя процедуры названны зарезервированныим словами?

procedure readkey;
procedure clrscr;
procedure write(p:ps);
procedure window

???

то писал препод)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Ребят, помогите.... очень нужно!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






никто не знает как это сделать?
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 28.03.2024 16:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name