Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно узнать установлен ли DirectX ?


comwad ©   (2003-11-28 06:42:00) 

Нашел в книге (DIRECTX Графика в проектах Delphi - Михаил Краснов) предлагаемую функцию? (см.ниже)
Но она естественно вызывает исключение и на экран выходит некрасивая ошибка типа не найдена иочка входа в процедуру.....
Как можно сделать красиво?
Может быть через реестр?

Function TVideoScanForm.FindDirectX:Boolean;
var
 FDD : IDirectDraw7;
 hRet : HRESULT;
begin

 FDD := nil;
 try
 try

 hRet := DirectDrawCreateEx (nil, FDD, IDirectDraw7, nil);
 if Failed (hRet)
    then
     Begin

       Result:=False;
     End
    else Result:= True;
 finally
 if Assigned (FDD) then FDD := nil;
 end;
 except

 Result:=False;
 end;
end;


Sapersky   (2003-11-28 09:56:00) [1]

В заголовках для каждого компонента DX есть переменная-handle соответствующей DDL-ки (для DirectDraw это, например, DDrawDLL). В секции инициализации делается попытка загрузить эту DLL-ку и получить адреса процедур типа xxxCreate (DirectDrawCreateEx и пр.). Если DX не установлен, DLL-ка не загрузится. Так что нужно просто проверять:

If DDrawDLL=0 then ShowMessage('DirectX not found');


Думкин   (2003-11-28 07:28:00) [2]

Какая винда и какой директ установлен?


Наверх

Титульная страница Поиск, карта сайта Написать письмо