Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как создать Delphi приложение, которое могло бы увеличивать часть рабочего стола наподобие лупы

Delphi , Рабочий стол , Рабочий стол

Как создать Delphi приложение, которое могло бы увеличивать часть рабочего стола наподобие лупы

Автор: Zarko Gajic

Есть программы, которые позволяют увеличивать определённую область экрана в районе курсора мышки. А вам слабо самостоятельно сделать такое приложение ?

Итак, приступим.

Нам понадобится одна форма, один элемент управления image, одна панель, кнопка, таймер и бегунок. Добавляем к форме картинку и панель. Размещаем остальные элементы управления на панели. Теперь всё готово к программированию. Но предварительно Вам необходимо изменить некоторые свойства у Ваших элементов управления.

А вот код, наиболее важной части программы:


// переменные
var
  Srect, Drect, PosForme: TRect;
  iWidth, iHeight, DmX, DmY: Integer;
  iTmpX, iTmpY: Real;
  C: TCanvas;
  Kursor: TPoint;

...

// Увеличиваем экран, если приложение не свёрнуто в иконку
if not IsIconic(Application.Handle) then
begin
  // Получаем координаты курсора
  GetCursorPos(Kursor);

  // PosForm представляет прямоугольник с координатами Form (image control).
  PosForme := Rect(Form1.Left, Form1.Top, Form1.Left + Form1.Width, Form1.Top + Form1.Height);

  //Показываем magnified screen если курсор за пределами формы.
  if not PtInRect(PosForme, Kursor) then
  begin

    // Далее код можно использовать для увеличения выбранной
    // части экрана. С небольшими модификациями его можно
    // использовать для уменьшения
    // экрана
    iWidth := Image1.Width;
    iHeight := Image1.Height;
    Drect := Bounds(0, 0, iWidth, iHeight);
    iTmpX := iWidth / (Slider.Position * 4);
    iTmpY := iHeight / (Slider.Position * 4);
    Srect:=
    Rect(Kursor.x, Kursor.y, Kursor.x, Kursor.y);
    InflateRect(Srect, Round(iTmpX), Round(iTmpY));

    //Получаем обработчик(handle) окна рабочего стола.
    C := TCanvas.Create;
    try
      C.Handle := GetDC(GetDesktopWindow);
      //Передаём часть изображения окна в TImage.
      Image1.Canvas.CopyRect(Drect, C, Srect);
    finally
      C.Free;
    end;
  end;
  // Обязательно обрабатываем все сообщения Windows.
  Application.ProcessMessages;
end; // IsIconic

Готовый проект можно скачать здесь (6 K).

     

И напоследок, пара полезных компонент:

  • TransitionEffect. Компонент позволяет делать stretches, slides, zooms и pushes.
  • ZImage бесплатный Delphi VCL компонент, который можно использовать для отображения различных изображений: картинок, факсов и т.д. Используя мышку, можно увеличивать изображение и уменьшать, а так же скроллировать. Можно показывать скроллинг справа и внизу. Alexander Rublinetsky.

Статья Как создать Delphi приложение, которое могло бы увеличивать часть рабочего стола наподобие лупы раздела Рабочий стол Рабочий стол может быть полезна для разработчиков на Delphi и FreePascal.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: Рабочий стол ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
29.03.2024 14:40:00/0.040191888809204/0