Содержание материала

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

 

Я покажу как рисовать на экране на примере разлиновки:

 Сначала объявите глобальную переменную

Scr: TCanvas;

 

Затем по событию OnCreate() для формы напишите такой код:

Code:

Scr := TCanvas.Create;

Scr.Handle := GetDC(HWND_DESKTOP);

 

 

По событию OnDestroy() такой:

 

Scr.Free;

 

Обработчик события по нажатию на кнопку пусть выглядит так:

Code:

procedure TForm1.Button1Click(Sender: TObject);

var

i: integer;

begin

i := 0;

while i < 1024 do

begin

   with Scr do

   begin

     MoveTo(i, 0);

     LineTo(i, 768);

     i := i + 10;

   end;

end;

i := 0;

while i < 768 do

begin

   with Scr do

   begin

     MoveTo(0, i);

     LineTo(1024, i);

     i := i + 10;

   end;

end;

Button1.Refresh;

end;

 

Для этого надо воспользоваться функциями API. Получить контекст чужого окна, либо всего экрана:

 

function GetDC(Wnd: HWnd): HDC;

где Wnd - указатель на нужное окно, или 0 для получения контекста всего экрана. И далее, пользуясь функциями API, нарисовать все что надо.

 

Code:

procedure DrawOnScreen;

var

ScreenDC: hDC;

begin

ScreenDC := GetDC(0); {получить контекст экрана}

Ellipse(ScreenDC, 0, 0, 200, 200); {нарисовать}

ReleaseDC(0, ScreenDC); {освободить контекст}

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить