PDA

Ver la Versión Completa : Como puedo hacer para obtener la frecuencia de refresco horizontal del monitor??


Forjap
10-09-2003, 17:39:03
Pues eso.. mi codigo fuente ( por si alguien se le ocurre algo mejor o alguien lo quiere coger...)
....
Como puedo obtener la frecuencia de refresco horizontal??

Procedure CambioResolucion(X,Y: Word; Frec: Cardinal; Cambiada: Boolean );
var
DevMode: TDeviceMode;
X_Ant, Y_Ant : Integer;
Frec_Ant : Byte;
begin
EnumDisplaySettings(nil, 0, DevMode);
X_Ant := GetSystemMetrics(SM_CXSCREEN);
Y_Ant := GetSystemMetrics(SM_CYSCREEN);
:confused: Frec_Ant := (DevMode.dmDisplayFrequency); //esto es lo que se debe mejorar
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY;
DevMode.dmPelsWidth := X;
DevMode.dmPelsHeight := Y;
DevMode.dmDisplayFrequency := Frec;
Case ChangeDisplaySettings(DevMode, 0) Of
DISP_CHANGE_SUCCESSFUL :
Begin
// Application.MessageBox('Desea conservar esta configuracion?','CA');
If (not Cambiada) Then
If MessageDlg('Desea conservar esta configuración?',mtInformation ,mbOKCancel,0)= mrCancel then CambioResolucion(X_Ant, Y_Ant, Frec_Ant, True);
End;
DISP_CHANGE_FAILED :
Begin
ShowMessage('El controlador de pantalla no soporta ese modo gráfico');
End;
DISP_CHANGE_BADMODE :
Begin
ShowMessage('El modo gráfico no es soportado');
End;
End;

se le llama con ... CambioResolucion(1024,768,60,False);

McKarthY
27-03-2004, 23:10:59
Hola Forjap, podrias mandarme el TDeviceMode a mi cuenta de correo, es que no lo encuentro x ningun lado, muchas gracias. Saludos