Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Остановить длинное действие

Delphi , Синтаксис , Массивы

Остановить длинное действие

Вовочкa: -Пaпa, a что тaкое клитор?
Пaпa,не отрывaясь от компa:
- Язык прогрaммировaния. Рaботaет с фaйлaми DBF формaтa.

Эта программа выходит из бесконечного цикла, если программу пытаются закрываеть.


procedure TForm1.Button1Click(Sender: TObject);
begin
  randomize;
  repeat
    Form1.Canvas.Pixels[random(Form1.ClientWidth),
    random(Form1.ClientHeight)] :=
    RGB(random(255),random(255),random(255));
    Application.ProcessMessages;
  until
    Application.Terminated;
end;

Эта программа останавливается при нажатии на Button2


procedure TForm1.Button1Click(Sender: TObject);
begin
  randomize;
  Form1.Tag := 0;
  repeat
    Form1.Canvas.Pixels[random(Form1.ClientWidth),
    random(Form1.ClientHeight)] :=
    RGB(random(255),random(255),random(255));
    Application.ProcessMessages;
  until
    Form1.Tag > 0;
end;

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

Программа предназначена для создания цветного эффекта на канвасе формы, случайно изменяя цвета пикселей до тех пор, пока приложение не будет закрыто или не будет нажата кнопка Button2.

Первая версия кода:

procedure TForm1.Button1Click(Sender: TObject);
begin
  randomize;
  repeat
    Form1.Canvas.Pixels[random(Form1.ClientWidth), random(Form1.ClientHeight)] :=
      RGB(random(255), random(255), random(255));
    Application.ProcessMessages;
  until
    Application.Terminated;
end;

Этот код будет работать бесконечно, пока приложение не будет закрыто или не будет terminated.

Вторая версия кода:

procedure TForm1.Button1Click(Sender: TObject);
begin
  randomize;
  Form1.Tag := 0;
  repeat
    Form1.Canvas.Pixels[random(Form1.ClientWidth), random(Form1.ClientHeight)] :=
      RGB(random(255), random(255), random(255));
    Application.ProcessMessages;
  until
    Form1.Tag > 0;
end;

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

В этой версии кода была введена флаг (свойство Form1.Tag) для управления циклом. Цикл продолжается, пока флаг не станет больше 0. Когда будет нажата кнопка Button2, она установит флаг в 1, что выйдет из цикла и остановит программу от выполнения.

В этом варианте кода была введена флаговая переменная (свойство Form1.Tag) для управления циклом. Цикл продолжается, пока флаг не станет больше 0. Когда будет нажата кнопка Button2, она установит флаг в 1, что выйдет из цикла и остановит программу от выполнения.

В статье описывается пример программы на языке Pascal, которая запускает бесконечный цикл, но может быть остановлена нажатием кнопки, изменяющей значение тега формы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Массивы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-01 23:49:18/0.0034589767456055/0