Я разрабатываю пакет компонентов и хочу отобразить значок и некоторую информацию о лицензии на заставке Delphi XE, например, хорошие пакеты компонентов (TMS, CnPack и т. Д.).
На самом деле я собираюсь сделать это через OTA, но, как ни странно, только сразу после первой компиляции и установки эти вещи появляются на заставке. После закрытия Delphi и повторного открытия ничего не отображается.
Вот выдержка из моего кода, которая делает это.
unit Wizards.Information;
interface
implementation
{$R *.res}
uses
ToolsAPI, Windows, Graphics, SysUtils;
const
ICON_SPLASH = 'SPLASHICON';
ICON_ABOUT = 'ABOUTICON';
var
AboutBoxServices: IOTAAboutBoxServices = nil;
AboutBoxIndex: Integer = 0;
resourcestring
resPackageName = 'Delphi Framework v1.0';
resLicense = 'Mozilla Public License 1.1';
resAboutCopyright = 'Copyright My Company Ltd.';
resAboutTitle = 'Delphi Framework';
resAboutDescription = 'Good description here ;)';
procedure RegisterSplashScreen;
var
bmp: TBitmap;
begin
bmp := TBitmap.Create;
try
bmp.LoadFromResourceName(HInstance, ICON_SPLASH);
SplashScreenServices.AddPluginBitmap(resPackageName, bmp.Handle, False, resLicense);
finally
bmp.Free;
end;
end;
procedure RegisterAboutBox;
var
ProductImage: HBITMAP;
begin
Supports(BorlandIDEServices,IOTAAboutBoxServices, AboutBoxServices);
ProductImage := LoadBitmap(FindResourceHInstance(HInstance), ICON_ABOUT);
AboutBoxIndex := AboutBoxServices.AddPluginInfo(resPackageName, resAboutCopyright + #13#10#13#10 + resAboutDescription, ProductImage, False, resLicense);
end;
procedure UnregisterAboutBox;
begin
if (AboutBoxIndex <> 0) and Assigned(AboutBoxServices) then
begin
AboutBoxServices.RemovePluginInfo(AboutBoxIndex);
AboutBoxIndex := 0;
AboutBoxServices := nil;
end;
end;
initialization
RegisterSplashScreen;
RegisterAboutBox;
finalization
UnRegisterAboutBox;
end.
Как вы можете видеть, я пытаюсь отобразить некоторую информацию в окне About Box в Delphi XE, и я встаю, но эта информация страдает от той же проблемы, что и с заставкой, к сожалению.
Что не так?
Любая подсказка приветствуется!
Заранее спасибо
На вопрос дан ответ, и теперь все, кажется, работает, но любые другие соображения приветствуются, я имею в виду, что любой другой ответ, отличный от использования ForceDemandLoadState(dlDisable)
, приветствуется!