Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2011, 21:18   #1
Pasha_Sh
Форумчанин
 
Аватар для Pasha_Sh
 
Регистрация: 16.05.2010
Сообщений: 137
По умолчанию Сменить разрешение экрана

Как программно изменить разрешение экрана?
Спасибо.
osu
Pasha_Sh вне форума Ответить с цитированием
Старый 06.02.2011, 21:35   #2
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

переводит в 800х600 и обратно при выключении
думаю разберешся
Код:
var
  Form1: TForm1;
  a, b: word;
  myJpg: TJpegImage;
  dm: TDEVMODE;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  a:=Screen.Width;                               // запоминаем нынешнее разрешение
  b:=Screen.Height;                              // ето нужно было мне, для возврата разрешения, не обязательно

  ZeroMemory(@dm, sizeof(TDEVMODE)); // освобождаем память по адресу @dm где храница  разрешение 
  dm.dmSize := sizeof(TDEVMODE);         // задаем размер тому куда запишем новое разрешение
  dm.dmPelsWidth :=800;                      // задаем новое разрешение
  dm.dmPelsHeight :=600;
  dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT; //указываем какие именно из параметров монитора мы хотим изменить
  ChangeDisplaySettings(dm, 0);            // меняем

  Form1.Width:=Screen.Width;               //устанавливаем форму на вес екран, Form.Border.Style :=bcNone; , не обязательно
  Form1.Height:=Screen.Height;
  Form1.Left:=0;
  Form1.Top:=0;
  if FileExists('C:\Test\test.jpg') then  // проверяю наличие, создаю, вырисовываю на форме картинку, не обязательно
  begin
    myJpg:=TJpegImage.Create;
    myJpg.LoadFromFile('C:\Test\test.jpg');
    Canvas.StretchDraw( Bounds(0,0,Form1.Width,Form1.Height), myJpg);
    myJpg.Destroy;
  end;

end;

// при закрытии меняю разрешение обратно, по сохраненным выше А и В
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ZeroMemory(@dm, sizeof(TDEVMODE));
  dm.dmSize := sizeof(TDEVMODE);
  dm.dmPelsWidth :=a;
  dm.dmPelsHeight :=b;
  dm.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
  ChangeDisplaySettings(dm, 0);
end;

end.
VirusN13

Последний раз редактировалось ArtGrek; 07.02.2011 в 05:39.
ArtGrek вне форума Ответить с цитированием
Старый 07.02.2011, 00:52   #3
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Вы ему так голову заморочите
Попроще надо...
Код:
procedure TForm1.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;

procedure TForm1.Button1Click(Sender: TObject);
begin
ChangeDisplayResolution(800,600);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ChangeDisplayResolution(1440,900);
end;
А уж где процедуру вызывать, он и сам придумает.
asmodey1 вне форума Ответить с цитированием
Старый 07.02.2011, 05:15   #4
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Цитата:
Сообщение от asmodey1 Посмотреть сообщение
Вы ему так голову заморочите
Попроще надо...
Вы правы
могу немного пояснить

все, можно читать
VirusN13

Последний раз редактировалось ArtGrek; 07.02.2011 в 05:40.
ArtGrek вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разрешение экрана Копоть Артём Помощь студентам 15 04.08.2009 18:12
Разрешение экрана Sweta HTML и CSS 4 06.09.2008 10:05
Разрешение экрана Михаил Юрьевич Общие вопросы Delphi 3 11.07.2008 21:33
Разрешение экрана Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 28.05.2008 23:17
Разрешение экрана -=<[Evklidd]>=- Общие вопросы Delphi 1 20.02.2008 10:55