Как создать Delphi приложение, которое могло бы
увеличивать часть рабочего стола наподобие лупы.
Автор: Zarko Gajic
Есть программы, которые позволяют увеличивать
определённую область экрана в районе курсора
мышки. А вам слабо самостоятельно сделать такое
приложение ?
Итак, приступим.
Нам понадобится одна форма, один элемент
управления image, одна панель, кнопка, таймер и
бегунок. Добавляем к форме картинку и панель.
Размещаем остальные элементы управления на
панели. Теперь всё готово к программированию. Но
предварительно Вам необходимо изменить
некоторые свойства у Ваших элементов управления.
Кстати, готовый проект можно скачать Download (6 K).
А вот код, наиболее важной части программы:
// переменные
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 компонент, который можно использовать для
отображения различных изображений: картинок,
факсов и т.д. Используя мышку, можно увеличивать
изображение и уменьшать, а так же скроллировать.
Можно показывать скроллинг справа и внизу. Alexander
Rublinetsky.
|