Graphic Delphi

procedure TForm1.FormCreate(Sender: TObject);
var
devmode: TDEVMODE;
d: Integer;
litem: TListItem;
p: ^TDevmode;
begin
devmode.dmSize := SizeOf(TDevMode);
devmode.dmDriverExtra := 0;
d := 0;
ListView1.Columns[0].Width := 400;
while EnumDisplaySettings(nil, d, devmode) do
with devmode do
begin
Inc(d);
litem := ListView1.Items.Add;
litem.Caption := Format('Mode %3d : %dx%d, %d Colors (%d Hz)',
[d, dmPelsWidth, dmPelsHeight, 1 shl (dmBitsPerPel), dmDisplayFrequency]);
New(p);
p^ := Devmode;
litem.Data := p;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ChangeDisplaySettings(TDevmode(ListView1.Selected.Data^), 0);
end;