Форум: "Система";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизСмена разрешения экрана Найти похожие ветки
← →
Ilg (2004-01-03 14:31) [0]Здравствуйте!
Я столкнулся со следующей проблемой:
Мне нужно изменить разрешение экрана. Использую процедуру
procedure ChangeDisplayResolution(x, y: word);
var
dm: TDEVMODE;
begin
ZeroMemory(@dm, sizeof(TDEVMODE));
dm.dmSize := sizeof(TDEVMODE);
dm.dmPelsWidth := x;
dm.dmPelsHeight := y;
dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
ChangeDisplaySettings(dm, 0);
end;
В Windows 98 все работает нормально, а в Windows XP наблюдается следующий глюк: разрешение меняется нормально, но частота устанавливается строго 60 Гц (даже если до смены было такое же разрешение, но с нормальной частотой). Как с этим бороться?
Заранее, Большое спасибо!
← →
Konstantin (2004-01-03 15:03) [1]Привет, dmDisplayFrequency вроде бы и есть частота, вот код из фака для смены разрешения, может поможет.
function SetFullscreenMode(ModeIndex: Integer): Boolean;
var
DeviceMode : TDevMode;
begin
with DeviceMode do
begin
dmSize := SizeOf(DeviceMode);
dmBitsPerPel := 32;
dmPelsWidth := 800;
dmPelsHeight := 600;
dmDisplayFrequency := 85;
dmFields := DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT
or DM_DISPLAYFREQUENCY;
Result := False;
if ChangeDisplaySettings(DeviceMode,CDS_TEST or CDS_FULLSCREEN)
<> DISP_CHANGE_SUCCESSFUL then Exit;
Result := ChangeDisplaySettings(DeviceMode,CDS_FULLSCREEN) = DISP_CHANGE_SUCCESSFUL;
end;
end;
procedure RestoreDefaultMode;
var
T : TDevMode;
begin
ChangeDisplaySettings(T, CDS_FULLSCREEN);
end;
← →
Ilg (2004-01-04 14:20) [2]Спасибо, но это не очень подходит, т. к. не получится выставлять частоту вручную (поддерживаемая частота не известна, на каждом компьютере разная (кроме тех же 60 Гц)). Проблема в том, что с промощью используемой процедуры в Win98 ставится нормальная частота, а в WinXP - 60 Гц... А может это глюк WinXP или драйверов?
← →
Автоответчик (2004-01-04 15:05) [3]Сначала получи все возможные режими с помощью EnumDisplaySettings
← →
Автоответчик (2004-01-04 15:05) [4]Сначала получи все возможные режимы с помощью EnumDisplaySettings
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c