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

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

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

> Никто не поможет составить прогу?, Бегущая строка
max12
сообщение 11.11.2004 21:08
Сообщение #1





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

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


Составить программу вывода на экран двух окон, обрамленных рамкой. В первое окно ввести строку текста. При нажатии клавиши "Ввод" во втором окне появится ее копия в виде непрерывно "бегущей" справа налево строки.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
APAL
сообщение 12.11.2004 18:12
Сообщение #2


Смотрю...
*****

Группа: Модераторы
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

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


вот, когда-то развлекался подобным...
Здесь 8 способов вывода строки на экран:
Код
Procedure beg1(aa,bb:integer;st:string);
var len,w:integer;
    s1,s2:string;
begin
if odd(length(st)) then st:=st+' ';
len:=length(st) div 2;
s1:='';s2:='';
for w:=1 to len do
                begin
                 delay(60);
                 s1:=s1+copy(st,w,1);
                 s2:=copy(st,2*len+1-w,1)+s2;
                 gotoxy(aa+len-w,bb);write(s1);
                 gotoxy(aa+len,bb);write(s2);
                end;
end;

Procedure beg2(x,y:integer;st:string);
var s1,s2,s3,s4 :string;
    l,i        :integer;
begin
if length(st)<4 then
                begin
                     repeat
                      st:=st+' ';
                     until length(st)>=4;
    end;
if odd(length(st)) then st:=st+' ';
if length(st)/4-round(length(st)/4)<>0 then st:=st+'  ';
l:=length(st);
s1:='';s2:='';s3:='';s4:='';l:=l div 4;
cursor(False);
for i:=1 to l do
                begin
                 delay(60);
                 s1:=s1+copy(st,i,1);
                 s2:=copy(st,2*l+1-i,1)+s2;
                 s3:=s3+copy(st,i+l*2,1);
                 s4:=copy(st,4*l+1-i,1)+s4;
                 gotoxy(x+l-i,y);   write(s1);
                 gotoxy(x+l,y);     write(s2);
                 gotoxy(x+l*3-i,y); write(s3);
                 gotoxy(x+l*3,y);   write(s4);
                end;
cursor(True);
end;

Procedure beg3(x,y:integer;st:string);
var i:integer;
begin
cursor(False);
gotoxy(x,y);
for i:=1 to length(st) do
begin
delay(60);
write(st[i]);
end;
cursor(True);
end;

Procedure beg4(x,y:byte;st:string);
var
   s   : string[79];
   n,i : byte;
begin
  s:='';n:=0;
     for i:=x+length(st)-1 downto x do
         begin
          n:=n+1;
    s:=s+st[n];
          gotoxy(i,y);write(s);
          delay(70);
         end
end;

Procedure beg5(x,y:byte;st:string);
var
  i,k : byte;
begin
 beg4(x,y,st);
    delay(300);
    k:=length(st);
    for i:=1 to k do
    begin
   delete(st,1,1);
         st:=st+' ';
         gotoxy(x,y);write(st);
         delay(70);
    end
end;

Procedure beg6(x,y:byte;st:string);
Var i,j   : Byte;
    S1,S2 : String;
Begin
    If Odd(Length(st)) then st:=st+' ';
    s1:='';s2:='';
    For i:=1 to Length(st) div 2 do
 Begin
     Delay(60);
     s1:=st[(Length(st) div 2)-i+1]+s1;
     s2:=s2+st[(Length(st) div 2)+i-1];
     GoToXY(x,y);Write(s1);
     GoToXY(x+Length(st)-i-1,y);Write(s2);
 End;
End;

Procedure beg7(xx,yy:byte;sst:string);
Var ss,ss1,ss2   : String;
    i         : Byte;
Begin
    If Odd(Length(sst)) then sst:=sst+' ';
 ss2:=Copy(sst,(Length(sst) Div 2)+1,Length(sst) Div 2);
 ss1:=Copy(sst,1,Length(sst) Div 2);
 ss:=ss2+ss1;
 Beg6(xx,yy,ss);
    cursor(False);
    For i:=Length(sst) Div 2 downto 1 do
 Begin
     GoToXY(xx+i-1,yy);
     Write(ss1);
     Delay(30);
     Write(' ');
     GoToXY((Length(sst) Div 2)-i+1+xx,yy);
     Write(ss2);
     Delay(30);
     GoToXY((Length(sst) Div 2)-i+xx,yy);
     Write(' ');
 End;
    GoToXY(xx,yy);Write(sst);
 cursor(True);
End;

Procedure Beg8(a,b:Byte;St:String);
Var i,n : Byte;
Begin
cursor(False);
For n:=a to a+Length(st)-1 do
Begin
For i:=1 to 30 do
Begin
 GotoXY(Round(Random(Length(st)+a-1-n)+n),b);
 Write(chr(Round(Random(140)+32)));
 Delay(4);
End;
GotoXY(n,b);Write(st[n-a+1]);
End;
cursor(True);
End;


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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