Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 936

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Как определить объем видеопамяти?

seryoga Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: seryoga (статус: 1-ый класс)
Вопрос отправлен: 26 марта 2010, 17:27
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Dron

Здравствуйте, seryoga!
Вот один из способов:

procedure TForm2.Button1Click(Sender: TObject);
var
  lpDisplayDevice: TDisplayDevice;
  dwFlags: DWORD;
  cc: DWORD;
  Memory: Real;
begin
  Memo1.Clear;
  lpDisplayDevice.cb := sizeof(lpDisplayDevice);
  dwFlags := 0;
  cc := 0;
  while EnumDisplayDevices(nil, cc, lpDisplayDevice, dwFlags) do begin
    Inc(cc);
    Memo1.lines.add(lpDisplayDevice.DeviceString);
    Memory:=(lpDisplaydevice.StateFlags div 524280);
    Memo1.lines.add(FloatToStr(Memory));
  end;
end;
Вторая строчка в Memo - как раз и есть объём памяти видеокарты.

Ответ отправил: Dron (статус: Студент)
Время отправки: 26 марта 2010, 18:34


Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 27 марта 2010, 16:29; участников в обсуждении: 3.
seryoga

seryoga (статус: 1-ый класс), 26 марта 2010, 18:50 [#1]:

Пробывал, у меня на машине стоит видеокарта NVIDIA RIVA TNT2/TNT2 Pro (32 Мб) а показывает 256
Вадим К

Вадим К (статус: Академик), 26 марта 2010, 19:01 [#2]:

подозрительный код. например константа 524280 ... вот если было бы 524288 ещё мог бы поверить.
Галочка "подтверждения прочтения" - вселенское зло.
seryoga

seryoga (статус: 1-ый класс), 26 марта 2010, 19:07 [#3]:

Вообще насколько я понял lpDisplaydevice.StateFlags должно возвращать размер памяти в байтах следовательно делить нужно на 1024*1024 но все равно 128 получается
Dron

Dron (статус: Студент), 26 марта 2010, 20:17 [#4]:

Код написал не сам, так что вполне может быть, что он неверный. Просто у меня как раз 256 Мб - сошлось :-)
С уважением.
Вадим К

Вадим К (статус: Академик), 27 марта 2010, 16:29 [#5]:

врядли поле с именем StateFlags будет содержать объем памяти. Тут скорее всего просто различные флаги состояния (например, поддержка 32битного цвета)
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 16 ноября 2024, 20:39
Выполнено за 0.02 сек.