type
TMonInfo = record
h: THandle; // хэндл окна рабочего стола
dc: HDC; // DC рабочего стола
r: TRect; // Координаты рабочего столаend;
var MonList: arrayof TMonInfo; // список дисплеевimplementationfunction EnumDisplayMonitors(dc: HDC; rect: PRect; EnumProc: pointer; lData: LPARAM): BOOL; stdcall; external user32;
function MonitorEnumProc(hMonitor: THandle; hdcMonitor: HDC; lprcMonitor: DWORD; dwData: LPARAM): BOOL; stdcall;
type PRect = ^TRect;
var c: integer;
begin
c := High(MonList)+1; SetLength(MonList, c+1);
MonList[c].h := hMonitor;
MonList[c].dc := hdcMonitor;
MonList[c].r := PRect(lprcMonitor)^;
result := true;
end;
initialization
EnumDisplayMonitors(0, nil, Addr(MonitorEnumProc), 0); // заполнить массивfinalizationend.
Данный код перебирает все мониторы в системе и заносит их параметры в массив MonList.
Количество мониторов определяется как High(MonList) + 1;
Пример перебора всех мониторов: