Use EnumDisplaySettings function with TDeviceModeA structure for this problem. EnumDisplaySettings function gives one video mode only. So you must call this function several times. Also you must check result of this function with other results for getting exact information.
procedure TForm1.Button1Click(Sender: TObject); var ModeNumber, j: Integer; MyMode: TDeviceModeA; Check, Need: Boolean; Str: string; begin ModeNumber:=0; Check:=True; while(Check) do begin Check:=EnumDisplaySettings(nil, ModeNumber, MyMode); Str:=IntToStr(MyMode.dmPelsWidth)+'-'+IntToStr(MyMode.dmPelsHeight); Need:=False; for j:=0 to Memo1.Lines.Count-1 do if Memo1.Lines[j]=Str then Need:=True; if Need=False then Memo1.Lines.Add(Str); Inc(ModeNumber); end; end;