Реализовать фоновую работу программы — Delphi(Делфи)

Попробуйте запустить программу. Пока компьютер ничего не делает, рисунок на окне все время меняется, но, стоит загрузить компьютер какой-либо работой, и изменение фона прекращается. В этой программе можно подвигать мышью по окну – это приведет к сравнительно сложным действиям, поэтому фоновая работа программы временно прекратится.

...

public

Row: integer;

procedure OnIdleProc(Sender: TObject; var Done: Boolean);

...

procedure TForm1.FormCreate(Sender: TObject);

 

begin

Application.OnIdle := OnIdleProc;

end;

 

procedure TForm1.OnIdleProc(Sender: TObject; var Done: Boolean);

var

i: integer;

col: TColor;

Gray: integer;

begin

for i := 0 to Form1.ClientWidth - 1 do begin

   col := Form1.Canvas.Pixels[i, Row];

   Gray := GetRValue(col) + round(30 * sin(i / 30 + Row / 50));

   Form1.Canvas.Pixels[i, Row] := RGB(Gray, Gray, Gray);

end;

 

inc(Row);

if (Row = Form1.ClientHeight) then Row := 0;

Done := false;

end;

 

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

var

i: integer;

begin

with Form1.Canvas do begin

   Brush.Style := bsClear;

   for i := 0 to 1000 do begin

     Pen.Color := RGB(i, i, i);

     Rectangle(X - i, Y - i, X + i, Y + i);

 

   end;

end;

end;

Leave a Comment

4 + 1 =