Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с циклом... [D7, WinXP]


AlexHawk ©   (2004-12-02 23:31:00) 

Вот код программы которая выводит текст из МЕМО на 4-е лайбла снизу вверх, как титры. Один хороший человек дал код. Так, вот не подскажите как сделать чтобы после клика на Кнопку "СТАРТ" шел цикл и остановитьего можно былобы еще одной кнопкой "СТОП"
procedure TForm1.Button1Click(Sender: TObject);
var
N,k:integer;
X:cardinal;
begin
        B:=TStringList.Create;
        for n:=0 to 3 do B.Add('                ');
        for n:=0 to memo1.Lines.Count-1 do B.Add
           (memo1.lines.strings[n]);
       for n:=0 to 3 do B.Add('                ');
      n:=B.Count;
        for k:=0 to n-4 do
        begin
            copey_to_label(k);
            X:=gettickcount+500;
                 while gettickcount<X do        
application.ProcessMessages;
               
        end;

end;

procedure TForm1.copey_to_label(k:word);
begin
      label1.caption:=copy(B.strings[k],1,16);
      label2.caption:=copy(B.strings[k+1],1,16);
      label3.caption:=copy(B.strings[k+2],1,16);
      label4.caption:=copy(B.strings[k+3],1,16);
end;

end.


Gloomer   (2004-12-04 09:52:00) [1]

2 AlexHawk   (03.12.04 20:27) [3]
>Все супер! Но как сделать не прекращающийся цикл после нажатия кнопки Старт(Button1)
У тебя изначально неправильный подход к решению этой задачи.
Я уверен, что у "хорошнго человека" не стояла задача непрекрацающегося цикла. У тому же, наверное, тебе захочется когда-нибудь остановить цикл.
Поэтому одно из решений - использование отдельного потока, в котором цикл будет непрекращающимся, как советует egin...end ©   (03.12.04 20:33) [4]


begin...end   (2004-12-03 20:33:00) [2]

> [3] AlexHawk   (03.12.04 20:27)

Вопрос непонятен, поясните. Почему не подошёл вариант [2]?

Вообще непрекращающийся цикл можно сделать так: while True doили так: repeat until False.


AlexHawk   (2004-12-03 20:27:00) [3]

Все супер! Но как сделать не прекращающийся цикл после нажатия кнопки Старт(Button1) . Подскажите Please!!


Evgeny V   (2004-12-03 07:09:00) [4]

Например так

procedure TForm1.Button2Click(Sender: TObject);
begin
Button1.Tag:=1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
....
begin
Button1.Tag:=0;
......
for k:=0 to n-4 do
begin
 application.ProcessMessages;
 If Button1.Tag<>0 then
    break;
   ..........
end;
end;


TButton   (2004-12-02 23:33:00) [5]

спроси хорошего человека =)


Наверх

Титульная страница Поиск, карта сайта Написать письмо