Articles

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;