Четверг, 02.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Нашли свой исходник?
Всего ответов: 94
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Графика » Разные

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

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

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

Нам понадобится одна форма, один элемент управления 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 компонент, который можно использовать для отображения различных изображений: картинок, факсов и т.д. Используя мышку, можно увеличивать изображение и уменьшать, а так же скроллировать. Можно показывать скроллинг справа и внизу.

Получить ссылку на материал

Категория: Разные | Добавил: Барон (20.12.2011)
Просмотров: 1407 | Теги: лупа | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
DirectX [17]
OpenGL [2]
Игры [15]
Разные [28]
Королевство Delphi © 2010-2024
Яндекс цитирования