Збільшення
ділянки екрана, за допомогою Delphi h2>
Є програми,
які дозволяють збільшувати певну область екрану в районі курсору
мишки. Нам знадобиться одна форма, один елемент управління image, одна панель,
таймер і багнюку. Додаємо до форми зображення і панель. Розміщуємо інші
елементи керування на панелі. Бігунок буде змінювати ступінь збільшення
екрану. Тепер все готове до програмування. Але попередньо Вам необхідно
змінити деякі властивості у Ваших елементів управління. Властивість min
компонента TrackBar має дорівнювати 1, властивість Interval Вашого таймера також
зробіть рівним 1. Тепер напишемо сам код, всі основні дії будуть
відбуватися тільки при виникненні події OnTimer, тому наведу лише
його обробник: p>
procedure
TForm1.Timer1Timer (Sender: TObject); p>
Var p>
Srect, Drect, PosForme: TRect; p>
iWidth, iHeight, DmX, DmY: Integer; p>
iTmpX, iTmpY: Real; p>
C: TCanvas; p>
Kursor: TPoint; p>
begin p>
If not IsIconic (Application.Handle) then begin p>
// Отримуємо координати курсору p>
GetCursorPos (Kursor); p>
//
PosForm являє прямокутник з p>
// координатами Form (image control). p>
PosForme: = Rect (Form1.Left, p>
Form1.Top, p>
Form1.Left + Form1.Width, p>
Form1.Top + Form1.Height); p>
// Показуємо
magnified screen p>
// якщо
курсор за межами форми. p>
If not PtInRect (PosForme, Kursor) then begin p>
// Далі
код можна використовувати для збільшення вибраної p>
// частини
екрану. З невеликими модифікаціями його можна p>
//
використовувати для зменшення p>
//
екрану p>
iWidth: = Image1.Width; p>
iHeight: = Image1.Height; p>
Drect: = Bounds (0,0, iWidth, iHeight); p>
iTmpX: = iWidth/(TrackBar1.Position * 4); p>
iTmpY: = iHeight/(TrackBar1.Position * 4); p>
Srect: = Rect (Kursor.x, Kursor.y, Kursor.x, Kursor.y); p>
InflateRect (Srect, Round (iTmpX), Round (iTmpY )); p>
// Отримуємо
обробник (handle) вікна робочого столу. p>
C: = TCanvas.Create; p>
try p>
C. Handle: = GetDC (GetDesktopWindow); p>
// Передаємо
частина зображення вікна в TImage. p>
Image1.Canvas.CopyRect (Drect, C, Srect); p>
finally p>
C. Free; p>
end; p>
end; p>
//
Обов `язково обробляємо всі повідомлення Windows. P>
Application.ProcessMessages; p>
end;// IsIconic p>
end; p>
Як виявилося,
все не так уже й складно, це вже готовий до вживання код, який Ви з успіхом
можете застосовувати у своїх програмах! p>
Список
літератури h2>
Михайло
Хрістосенко. Збільшення області екрану за допомогою Delphi. P>
Для підготовки
даної роботи були використані матеріали з сайту статті http://delphid.dax.ru
. p>