Итак =)
Тут есть несколько вариантов:
1. Поставлять вместе с программой ActiveX и вручную его регистрировать в системе при установке. Тут большой минус в том, что поставляемый ActiveX будет не последней версией через полгода уже.
2. Проверять, установлен ли у пользователя Flash. Это можно сделать несколькими способами, но наиболее рациональный такой:
в конструкцию try..except..end поместить код создания экземпляра объекта TShockwaveFlash:
Код:
program VedlandScreensaverSetupRUS;
uses
//..
ShockwaveFlashObjects_TLB,
//..
//..
var
Flash: TShockwaveFlash;
begin
Application.Initialize;
Application.Title := 'Title';
try
Flash := TShockwaveFlash.Create(nil);
Flash.Free;
except
MessageBox(0,'У Вас не установлен Flash Player.... блабла','Title',MB_ICONERROR);
end;
//..
Application.Run;
//..
end.
Но тут тоже есть минус большой: у человека можетбыть и установлен Flash, но какой-нибудь старой версии, что может привести к неработоспособности программы.
Тут есть выход, но я сам сейчаснадэтим парюсь: у объекта TShockwaveFlash есть свойство FlashVersion, кажется, так вот по нему можно сделать проверку на версию, но (!) эти гады-разработчики сделали это свойство типа Integer и у меня, допстим, с установленным ActiveX версии 9.0.28.0, значение этого FlashVersion = 589824 и что эти цифры значат, я не совсем понимаю, но, можно предположить, что, если число будет меньше,то и версия тоже,например, я для проверки поставил флэш версии 8.0.24.0 и число стало 524288, так что тут все под вопросом, я пока еще не выяснил точно.
Ну с проверкой код будет выглядеть так:
Код:
program VedlandScreensaverSetupRUS;
uses
//..
ShockwaveFlashObjects_TLB,
//..
//..
var
Flash: TShockwaveFlash;
begin
Application.Initialize;
Application.Title := 'Title';
try
Flash := TShockwaveFlash.Create(nil);
// если версия Flash'а раньше 8ой, то выдаем сообщение
if Flash.FlashVersion < 524288 then
MessageBox(0,'У Вас не установлен Flash Player.... блабла','Title',MB_ICONERROR);
Flash.Free;
except
MessageBox(0,'У Вас не установлен Flash Player.... блабла','Title',MB_ICONERROR);
end;
//..
Application.Run;
//..
end.
Вобщем вот, если какие вопросы -пишите, разберемся...