Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 17.06.2011, 12:51   #11 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Для выравнивания текста в текстовом режиме можно использовать стандартные значения количества символов в строке. Как известно, в текстовом режиме есть 2 стандартных размера 80х25 и 80х43. По умолчанию используется режим 80 символов на 25 строк. Номерация знакомест в строке (0..79).

Для размещения текста вычисляем его длину, делим пополам (1), вычисляем середину экрана (2), отнимаем из второго первое и передаем это значение функции GotoXY в качестве параметра X.

Например, для выравнивания текста в центре экрана можно использовать следующий листинг:
Код:
uses crt;
var centX, centY:Integer;
s:string;
begin
centX:=80 div 2+1;
centY:=25 div 2+1;
a:='text text text';
centX:=centX-(length(a) div 2);
GotoXY(centX,centY);
WriteLN(a);
ReadLN
end.
Как я понимаю, для реализации вашего примера вам нужно вычислить середину для начального текста, вывести его, потом нужно заново вычислять середину для уже измененного текста, а не указывать фиксированные значения, как у вас. Например, в следующем листинге первоначальный текст выровнен по центру 2-ой строки, а полученный после вставки текст - по центру экрана:
Код:
uses crt;
var
centX, centY,n:integer;
a,s:string;
begin
clrscr;
centX:=80 div 2+1;
centY:=25 div 2+1;
a:='text text text';
GotoXY(centX-length(a) div 2,1);
WriteLN(a);
s:='***';
if length(a) mod 2=0 then n:=length(a) div 2 else n:=length(a) div 2+1;
insert(s,a,n+1);
GotoXY(centX-length(a) div 2,centY);
WriteLN(a);
readln;
end.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием

Старый 17.06.2011, 12:51
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Можно поискать нужные ответы тут

Компьютер включается и выключается. И так снова и снова
Колонки для телефона
Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл
И снова TDA7293
И снова Windows XP

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 01:21.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.