Уроки по Delphi



         

Урок18. Корректное построение программного кода. Рисование. Построение графика функции - часть 8


         end;

      Sleep(TrackBar1.Position); // Процедура "засыпает" на заданное время в миллисекундах

      Application.ProcessMessages; // Обработка всей очереди сообщений

   end;

end;

Коротко расскажу работу этой процедуры.

Как только нажата кнопка "Старт" Компонент PaintBox1 очищается и начинается бесконечный цикл While, выйти из которого можно только, пока переменная Stop не примет значение true. Это можно сделать кнопкой Button2, соответствующая процедура которой обработается во время Application.ProcessMessages. С помощью бегунка TrackBar1 можно менять скорость рисования кривой. Этот параметр передается в команду Sleep.

Процедура нажатия на кнопку остановки Button2:

procedure TForm1.Button2Click(Sender: TObject);

begin

Stop:=true; // установить флаг остановки процесса рисования

end;

Процедура создания окна Form1OnCreate:

procedure TForm1.FormCreate(Sender: TObject);

begin

x:=0; // начальное значение X

end;

Если нажата кнопка "Выход", то реакция на это событие будет таким:

procedure TForm1.Button3Click(Sender: TObject);

begin

Close; // закрыть окно

end;

И реакция перед закрытием окна OnClose. Без этой процедуры, если рисование включено, то окно не закроется.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Stop:=true; // остановить (если включен) цикл рисования

end;

После запуска программы, установки флажка "Все" и нажатии на кнопку "Старт" на экране отобразится этот график:

1.gif (2671 bytes)

В принципе, с нашей программой можно отслеживать практически любые функции. Просто надо описать свою отслеживаемую функцию вместо моих строк Y:=Sin...

Если вы хотите убрать постоянную прорисовку графика функции, то следующий код в программе

      if x>500 then // если X вышел за пределы PaintBox1, то:

         begin




Содержание  Назад  Вперед