www.gcmsite.ru

Новости Программы PHP-скрипты Статьи Числа
Услуги Резюме Игры Автомобили Поиск

СИСТЕМНОЕ И ВЕБ-ПРОГРАММИРОВАНИЕ
компьютерная техника, игры

Нужна программа, скрипт или сайт? Анализ сайта или оптимизация? Копирайт или рерайт текстов? Заявка на выполнение работ.

Delphi: как рисовать на рабочем столе?

Вообще, рисовать на рабочем столе компьютера очень просто. Достаточно знать несколько функций WinAPI и уметь и ними работать.

Алгоритм рисования состоит из следующих шагов:

    получение указателя рабочего стола
    сохранение указателей на текущий карандаш и кисть (pen и brush)
    создание нового карандаша и кисти
    сам процесс рисования (функции рисования графических примитивов: точек, линий, эллипсов, прямоугольников)
    освобождение указателей на созданный карандаш и кисть
    восстановление текущих указателей карандаша и кисти рабочего стола
    освобождение указателя на рабочий стол

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

Код на Delphi 5 в терминах WinAPI будет выглядеть следующим образом:

program demo;
uses
  Windows;

var
  ScreenDC: hDC; // указатель на канву рабочего стола
  BrushHandle, OldBrushHandle: HBRUSH;  // указатели на объекты типа КИСТЬ
  PenHandle, OldPenHandle: HPEN; // указатели на объекты типа КАРАНДАШ

begin
  ScreenDC := GetDC(0); {получаем контекст экрана (рабочего стола)}

  // создаем новые карандаш и кисть
  PenHandle := CreatePen(PS_SOLID, 1, clRed);
  OldPenHandle := SelectObject(ScreenDC, PenHandle);

  BrushHandle := CreateSolidBrush(clRed);
  OldBrushHandle := SelectObject(ScreenDC, BrushHandle);

{
      рисуем на рабочем столе
      ....
      ....
}      

  // освобождаем память от созданного карандаша и кисти
  SelectObject(ScreenDC, OldBrushHandle);
  DeleteObject(BrushHandle);

  SelectObject(ScreenDC, OldPenHandle);
  DeleteObject(PenHandle);

  // освобождаем память от указателя на рабочий стол
  ReleaseDC(0,ScreenDC);
end.

Примечание: подобрый алгоритм рисования на рабочем столе активно используется в программе для создания виртуальных поздравительных открыток.

Вопросы как рисовать на рабочем столе или какие API функции использовать для рисования на экране были рассмотрены в этой статье.




Prolog — это язык логического программирования. Он является декларативным языком: вся стуктура программы представлена в виде правил и фактов. На нем можно строить экспертные системы, генерирующие ответы вида true (истина) или false (ложь). Пролог хорошо подходит для автоматического перебора вариантов решений с возвратами. Язык не требует написания большого объемного кода и позволяет получать отличные результаты.

Интересные материалы на сайте:

Рейтинг@Mail.ru     Автор, разработчик: Шаров Евгений   (gcmsite@yandex.ru)
(c) 2000-2016 GCM-Site - системное и веб-программирование
Цитирование материалов сайта возможно только при наличии гиперссылки