Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Вниз

Максимальное разрешение экрана.   Найти похожие ветки 

 
eXAAAXe   (2011-06-25 21:47) [0]

Снова привет.
EnumDisplaySettings максимальное возвращает разрешение: 1440 x 1050

А тут:
http://market.yandex.ru/model-spec.xml?modelid=6100149&hid=91052
Максимальное 1440x900.

Кому верить?
В параметрах рабочего стола максимальное разрешения для выбора 1440x900.


 
Anatoly Podgoretsky ©   (2011-06-25 21:58) [1]

Верь 900


 
Rouse_ ©   (2011-06-25 22:08) [2]


> Кому верить?

Драйверу видеокарты...


 
Rouse_ ©   (2011-06-25 22:10) [3]

ЗЫ: бо если даже твой монитор не вытянет 1050, то раз она умеет делать - сделает через конвертацию, но правда с потерей производительности...


 
QAZ   (2011-06-25 22:43) [4]

а при чем тут видеокарта


 
Rouse_ ©   (2011-06-25 22:56) [5]

ну как-бы видережимы выдает она а не диспей, это о птичках :)


 
QAZ   (2011-06-25 23:01) [6]

так нужно максимальное моника


 
eXAAAXe   (2011-06-25 23:17) [7]

>Rouse_ ©   (25.06.11 22:56) [5]

Накодил след. процедуру.
Выкидывает "Дебаггер фаулт нотификатион".
Хотя функция загружается из ДЛЛ.
Работаю в Дельфи 7.


procedure GetDisplayResolutionMax(var W, H: LongWord);
var
 n                     : LongInt;
 DevMode               : TDeviceMode;
 EnumDisplaySettingsExA: function (lpszDeviceName: PAnsiChar; iModeNum: DWORD; var lpDevMode: TDeviceModeA; dwFlags: DWORD): BOOL; stdcall;
begin
 W:= 0;
 H:= 0;
 EnumDisplaySettingsExA:= GetProcAddress(GetModuleHandle("user32.dll"), "EnumDisplaySettingsExA");
 If not Assigned(EnumDisplaySettingsExA) then
 begin
   ShowMessage("!");
   Exit;
 end;

 n:= 0;
 while EnumDisplaySettingsExA(nil, n, DevMode, 2) do // EDS_RAWMODE.
 with DevMode do
 begin
   If (dmScale = 0) then // Отбрасываем повторные и лишние.
   begin
     If (dmPelsWidth  > W) then W:= dmPelsWidth;
     If (dmPelsHeight > H) then H:= dmPelsHeight;
   end;

   Inc(n);
 end;
end;



 
eXAAAXe   (2011-06-26 08:20) [8]

Помогите разобраться.


 
eXAAAXe   (2011-06-26 11:18) [9]

Даже если объявить EnumDisplaySettingsExA статичной, то функция вываливается.


 
Омлет ©   (2011-06-27 14:58) [10]

Хз. Может хочет название девайса?

И ты забыл, что брать надо пару значений. Поэтому у тебя выдает неверное максимальное. Вот рабочий код:


procedure GetMaxDisplayResolution(var W, H: LongWord);
var
 n  : LongInt;
 dm : TDeviceModeA;
begin
 W := 0;
 H := 0;
 n := 0;
 while EnumDisplaySettings(nil, n, dm) do
 begin
   with dm do
   begin
     If (dmScale = 0) then
     begin
       If (dmPelsWidth > W) then
       begin
         W := dmPelsWidth;
         H := dmPelsHeight;
       end;
       If (dmPelsWidth = W) and (dmPelsHeight > H) then
         H:= dmPelsHeight;
     end;
     inc(n);
   end;
 end;
end;


 
eXAAAXe   (2011-06-27 17:11) [11]


> Омлет ©   (27.06.11 14:58) [10]


Вот блин, я не углядел, спасибо. :)


 
eXAAAXe   (2011-06-27 17:25) [12]

Так получилось в итоге:

procedure GetMonitorResolutionMax(var W, H: LongWord);
var
 n      : LongInt;
 DevMode: TDeviceMode;
begin
 W:= 0;
 H:= 0;
 n:= 0;
 while EnumDisplaySettingsA(nil, n, DevMode) do
 with DevMode do
 begin
   If (dmScale = 0)      and // Отбрасываем повторные и лишние.
      (dmPelsWidth >= W) then
   begin
     W:= dmPelsWidth;
     H:= dmPelsHeight;

     If (dmPelsHeight > H) then H:= dmPelsHeight;
   end;

   Inc(n);
 end;
end;


 
Омлет ©   (2011-06-27 22:24) [13]

> eXAAAXe   (27.06.11 17:25) [12]

Неверно. Зачем правильный код сделал неправильным? Подумай над условными операторами.


 
eXAAAXe   (2011-06-28 14:10) [14]

ok.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.10.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
1-1268905449
istok
2010-03-18 12:44
2011.10.16
миграция функции на D2010...


2-1307957801
Jamix
2011-06-13 13:36
2011.10.16
KDTele Tools


2-1309442338
Pcrepair
2011-06-30 17:58
2011.10.16
Программа "ест" память, потом сбой


2-1309147071
Gu
2011-06-27 07:57
2011.10.16
Проверить GUID


2-1309024072
eXAAAXe
2011-06-25 21:47
2011.10.16
Максимальное разрешение экрана.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский