Создание приложения в Дельфи, увеличивающее часть рабочего стола наподобие лупы

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

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

Нам понадобится одна форма, один элемент управления 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  

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

TransitionEffect. Компонент позволяет делать stretches, slides, zooms и pushes.
ZImage бесплатный Delphi VCL компонент, который можно использовать для отображения различных изображений: картинок, факсов и т.д. Используя мышку, можно увеличивать изображение и уменьшать, а так же скроллировать. Можно показывать скроллинг справа и внизу.
Теги:
лупа
Добавлено: 02 Августа 2018 07:34:51 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...