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

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

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

> создание окна со скроллингом, модуль CRT
сообщение
Сообщение #1


Пионер
**

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

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


В общем полазил по ФАК'у - ничего по модулю CRT вроде нет... мож, конечно, плохо искал...
А при попытке в поиске набрать "Модуль CRT" пишет, что одно из слов слишком короткое...
Вот и решил тему создать.

Задание такое:
Создать окно в рамке на фоне, заполненном псевдографическим символом #178 зеленого цвета, с текстом из файла. По клавишам управления курсором выполнять скроллинг текста в окне на одну строку вверх или вниз.

пара вопросов:
как окно создать - понятно...
Фон... Тут нужно использовать процедуру TextBackground? Но ведь тогда зеленый фон будет только там, где есть текст, верно? Или так и надо? Или закрасить все окно прямоугольником, а потом, в графическом режиме выводить текст?
Как сделать рамку? blink.gif
Скроллинг я думаю организовать так:
Вывести в окошко текст c k=1 строки по k+n (n - количество строк, умещающееся в окне),потом, если нажата клавиша вниз, то окошко очистить и вывести текст с k=k+1 строки по k+n, если нажата клавиша вверх, то окошко очистить и вывести текст с k=k-1 строки по k+n. Это нормально? или стоит сделать как-то по-другому?

Был бы благодарен за ответы! smile.gif


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

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

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


Всем большое спасибо! Вроде бы что-то получилось:
program T10_V1;
uses crt;
var i,k:integer; f:text; s:string; c:char;

procedure windowBorder;
begin
textcolor(black);
clrscr;
Write(#218);
for i:=1 to 50 do
write(#196);
write(#191);
writeln;
for i:=2 to 20 do
writeln(#179,#179:51);
Write(#192);
for i:=1 to 50 do
write(#196);
write(#217);
end;

begin
textbackground(yellow);
clrscr;
WindowBorder;
window(2,2,51,20);
textbackground(178);
clrscr;
k:=1;
repeat
clrscr;
i:=1;
assign(f,'text.txt');
reset(f);
while i<k+18 do
begin
if i<=k then
begin
for i:=1 to k-1 do
readln(f,s);
i:=k;
end;
readln(f,s);
writeln(s);
inc(i);
end;
close(f);
c:=readkey;
if (c=#72) and (k>1) then dec(k) else if c=#80 then inc(k);
until c=#27;
end.


Не понял, правда, что с фоном делать - оставил просто зеленый цвет, а вообще псевдографический символ #178 - это что-то типа ??


--------------------
go ask Alice
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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