Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 669

•  TDictionary Custom Sort  5 800

•  Fast Watermark Sources  5 603

•  3D Designer  8 215

•  Sik Screen Capture  5 913

•  Patch Maker  6 388

•  Айболит (remote control)  6 378

•  ListBox Drag & Drop  5 237

•  Доска для игры Реверси  94 551

•  Графические эффекты  6 570

•  Рисование по маске  5 643

•  Перетаскивание изображений  4 759

•  Canvas Drawing  5 135

•  Рисование Луны  4 863

•  Поворот изображения  4 410

•  Рисование стержней  3 116

•  Paint on Shape  2 360

•  Генератор кроссвордов  3 228

•  Головоломка Paletto  2 551

•  Теорема Монжа об окружностях  3 328

•  Пазл Numbrix  2 200

•  Заборы и коммивояжеры  2 849

•  Игра HIP  1 820

•  Игра Go (Го)  1 740

•  Симулятор лифта  2 072

•  Программа укладки плитки  1 798

•  Генератор лабиринта  2 240

•  Проверка числового ввода  1 924

•  HEX View  2 225

•  Физический маятник  1 911

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Нарисовать подсвеченный прямоугольник вокруг контрола под мышкой




{ 
  This tip might be useful if you want to program 
  a screen capture tool and show a bounding box 
  around a control or for a spy tool like winsight to 
  highlight a object on the screen. 
} 
var 
 hOldWnd :HWND; 

procedure FrameWindow(Wnd: HWnd); 
var 
  Rect: TRect; 
  DC: hDC; 
  OldPen, Pen: hPen; 
  OldBrush, Brush: hBrush; 
  X2, Y2: Integer; 
begin 
  { Get the target window's rect and DC } 
  GetWindowRect(Wnd, Rect); 
  DC := GetWindowDC(Wnd); 
  { Set ROP appropriately for highlighting } 
  SetROP2(DC, R2_NOT); 
  { Select brush and pen } 
  Pen := CreatePen(PS_InsideFrame, 4, 0); 
  OldPen := SelectObject(DC, Pen); 
  Brush := GetStockObject(Null_Brush); 
  OldBrush := SelectObject(DC, Brush); 
  { Set dimensions of highlight } 
  X2 := Rect.Right - Rect.Left; 
  Y2 := Rect.Bottom - Rect.Top; 
  { Draw highlight box } 
  Rectangle(DC, 0, 0, X2, Y2); 
  { Clean up } 
  SelectObject(DC, OldBrush); 
  SelectObject(DC, OldPen); 
  ReleaseDC(Wnd, DC); 
  { Do NOT delete the brush, because it was a stock object } 
  DeleteObject(Pen); 
end; 

procedure TForm1.Timer1Timer(Sender: TObject); 
var 
  hNewWnd: HWnd; 
begin 
  hNewWnd := WindowFromPoint(Mouse.CursorPos); 
  { To avoid flickering, remove the old frame ONLY if moved to new window } 
  if hNewWnd <> hOldWnd then 
  begin 
    if hOldWnd <> 0 then 
      FrameWindow(hOldWnd); 
    if hNewWnd <> 0 then 
      FrameWindow(hNewWnd); 
    hOldWnd := hNewWnd; 
  end; 
end;





Похожие по теме исходники

Драйвер клавиатуры под DOS




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте