Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Полноэкранный режим

Delphi , ОС и Железо , Монитор и Экран



function SetFullscreenMode: Boolean;
var
  DeviceMode: TDevMode;
begin
  with DeviceMode do
  begin
    dmSize := SizeOf(DeviceMode);
    dmBitsPerPel := 16;
    dmPelsWidth := 640;
    dmPelsHeight := 480;
    dmFields := DM_BITSPERPEL or DM_PELSWIDTH or DM_PELSHEIGHT;
    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 absolute 0;
begin
  ChangeDisplaySettings(T, CDS_FULLSCREEN);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if setFullScreenMode then
  begin
    sleep(7000);
    RestoreDefaultMode;
  end;
end;

Программа на Delphi, которая устанавливает отображение в полноэкранном режиме и затем возвращает его в исходное состояние. Функция SetFullscreenMode пытается изменить параметры отображения в полноэкранном режиме и возвращает True, если это успешно.

Следующий код объясняет, как работает программа:

  1. Функция SetFullscreenMode создает запись TDevMode, которая используется для хранения информации о устройстве (в этом случае, отображении).

  2. Затем она устанавливает различные поля в записи DeviceMode:

  3. dmSize: Размер записи DeviceMode.
  4. dmBitsPerPel: Количество бит на пиксель. В этом случае, оно установлено в 16.
  5. dmPelsWidth и dmPelsHeight: Ширина и высота отображения в пикселях. Здесь они устанавливаются в 640x480.

  6. Поле dmFields устанавливается в комбинацию флагов, которые указывают, какие поля в записи были изменены.

  7. Функция затем вызывает ChangeDisplaySettings с записью DeviceMode и двумя флагами: CDS_TEST (для тестирования новых параметров) и CDS_FULLSCREEN (для изменения отображения в полноэкранном режиме). Если это вызов успешен, он возвращает DISP_CHANGE_SUCCESSFUL.

  8. Функция затем вызывает ChangeDisplaySettings снова с только CDS_FULLSCREEN, если первый вызов был только тестом.

  9. Наконец, функция возвращает результат второго вызова ChangeDisplaySettings. Если этот вызов успешен, отображение теперь находится в полноэкранном режиме, и функция возвращает True.

  10. Процедура RestoreDefaultMode просто вызывает ChangeDisplaySettings с CDS_FULLSCREEN снова, но на этот раз без записи DeviceMode. Это должно восстановить отображение в его исходное состояние.

  11. В обработчике события Button1Click для кнопки на форме, если SetFullscreenMode возвращает True, она ожидает 7 секунд и затем вызывает RestoreDefaultMode.

Некоторые улучшения, которые можно сделать:

  • Обработка ошибок: Код не проверяет ошибки, которые могут возникнуть при вызове ChangeDisplaySettings. Нужно добавить обработку ошибок для обработки любых неожиданных результатов.

  • Организация кода: Функция SetFullscreenMode делает два разных действия: она устанавливает отображение в полноэкранном режиме и затем восстанавливает его в исходное состояние. Лучше было бы иметь одну функцию для установки отображения в полноэкранном режиме и другую для восстановления. Это сделало бы код более понятным и поддерживаемым.

  • Интерфейс пользователя: Программа не предоставляет никакой обратной связи пользователю о том, что она делает. Нужно добавить метку или сообщение об ошибке, чтобы пользователь знал, когда отображение устанавливается в полноэкранном режиме и когда восстанавливается.

Статья описывает программный код на языке Delphi, который позволяет переключаться в полноэкранный режим и обратно.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Монитор и Экран ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-12 15:40:21/0.0059511661529541/0