Pasos a seguir para mostrar con Delphi los diferentes
modos de visualización de la tarjeta gráfica del PC.
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//
En el form creamos un tLlistbox y un tButton y en el evento Onclic de este último ponemos lo siguienteprocedure TForm1.Button1Click(Sender: TObject);
var
d: _devicemodeA;
i: integer;
begin
i:=0;
while EnumDisplaySettings(nil,i,d)<>false do
begin
ListBox1.Items.Add('Mode: '+IntToStr(i+1)+' - '+FloatToStr(D.dmPelsWidth)+'x'+FloatToStr(D.dmPelsHeight)+'x'+FloatToStr(D.dmBitsPerPel)+' - '+FloatToStr(D.dmDisplayFrequency)+' Hz');
inc(i,1);
end;
end;
//
Al hacer clic sobre uno de los modos de pantalla pulsamos el Button2 y lo activamos.procedure TForm1.Button2Click(Sender: TObject);
var
d: _devicemodeA;
begin
EnumDisplaySettings(nil, ListBox1.ItemIndex, D);
ChangeDisplaySettings(D, CDS_UPDATEREGISTRY);
end;
end.
El resultado es un ListBox con todos los
modos de visualización de nuestra tarjeta de vídeo.
Mode: 2 - 640x480x8 - 60 Hz
Mode: 3 - 640x480x8 - 72 Hz
Mode: 4 - 640x480x8 - 75 Hz
Mode: 5 - 640x480x8 - 85 Hz
Mode: 6 - 640x480x8 - 100 Hz
Mode: 7 - 640x480x8 - 120 Hz
Mode: 8 - 640x480x8 - 160 Hz
Mode: 9 - 640x480x8 - 200 Hz
Mode: 10 - 720x480x8 - 60 Hz
Mode: 11 - 800x480x8 - 60 Hz
Mode: 12 - 800x600x8 - 56 Hz
Mode: 13 - 800x600x8 - 60 Hz
Mode: 14 - 800x600x8 - 72 Hz
Mode: 15 - 800x600x8 - 75 Hz
Mode: 16 - 800x600x8 - 85 Hz
Mode: 17 - 800x600x8 - 100 Hz
Mode: 18 - 800x600x8 - 120 Hz
Mode: 19 - 800x600x8 - 160 Hz
Mode: 20 - 960x600x8 - 60 Hz
Mode: 21 - 1024x576x8 - 60 Hz
Mode: 22 - 1024x768x8 - 60 Hz
Mode: 23 - 1024x768x8 - 70 Hz
Mode: 24 - 1024x768x8 - 75 Hz