Тема: Flash скин
Показать сообщение отдельно
  #2  
Старый 22.01.2007, 17:55
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Итак =)
Тут есть несколько вариантов:
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.

Вобщем вот, если какие вопросы -пишите, разберемся...
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием