Jump to content
Korean Random
JIuCuI_GyCb

Не могу создать компонент описание под картинкой Inno Setup

Recommended Posts

Помогите досоздать скрипт который добавит описание под картинку. 

Вот скрипт 

// Этот сценарий создан с помощью Мастера Inno Setup.
// ОБРАТИТЕСЬ К СПРАВОЧНОЙ ДОКУМЕНТАЦИИ, ЧТОБЫ ИСПОЛЬЗОВАТЬ ВСЕ ВОЗМОЖНОСТИ INNO SETUP!

#define MyAppName "JluCuI_GyCb Мультипак"
#define MyAppVersion "1.12.0.0"
#define MyAppPublisher "JluCuI_GyCb"
#define MyAppURL "https://kttc.ru/wot/ru/user/JluCuI_GyCb/"

[Setup]
// Примечание: Значение AppId является уникальным идентификатором для этого приложения.
// Не используйте одно и тоже значение AppId для разных приложений.
// (Для создания нового значения GUID, выберите в меню "Инструменты" пункт "Создать GUID".)
AppId={{63927EB8-2400-49E7-9B72-4D9E4AD1518B}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=C:\Games\World_of_Tanks_RU\
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
DirExistsWarning=no
LicenseFile=C:\Users\postu\Desktop\World_of_Tanks\embedded\License.txt
InfoBeforeFile=C:\Users\postu\Desktop\World_of_Tanks\embedded\InfoBefore.rtf
UninstallFilesDir={app}\JluCuI_GyCb Мультипак
OutputDir=C:\Games
OutputBaseFilename=JluCuIGyCb-ModPack 1.12.0.0
SetupIconFile=C:\Users\postu\Desktop\World_of_Tanks\wot_ico.ico
Compression=lzma
SolidCompression=yes
WizardImageFile=C:\Users\postu\Desktop\World_of_Tanks\embedded\WizardImage.bmp
WizardSmallImageFile=C:\Users\postu\Desktop\World_of_Tanks\embedded\WizardSmallImage.bmp

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
//---------- мои фото ----------
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_1.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_2.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_2_1.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_2_2.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_3.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_4.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_5.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_6.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_7.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_8.bmp; Flags: dontcopy nocompression
Source: C:\Users\postu\Desktop\World_of_Tanks\BMP\descriptionimage_9.bmp; Flags: dontcopy nocompression
//---------- мои файлы ----------
Source: "C:\Users\postu\Desktop\World_of_Tanks\Цветные отметки попаданий\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text7;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Белые сбитые гусеницы\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text6;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Калькулятор боевой эффективности\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text9;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Мод Достижения в бою\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text5;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Оповещение союзников о засвете\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text8;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Отметки на орудие Вариант от OldSkool\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text2\1;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Отметки на орудие Вариант от ПроТанки\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text2\2;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Статистика за сессию\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text4;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Менеджер Реплеев\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text1;
Source: "C:\Users\postu\Desktop\World_of_Tanks\Командирская камера\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Components: KMP\text3;
// Примечание: Не используйте флаги "ignoreversion" для общих системных файлов.

[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"

[Components]
Name: KMP; Description: JluCuI_GyCb ModPack; Types: custom; Flags: fixed
Name: KMP\text1; Description: 1. Менеджер Реплеев; 
Name: KMP\text2; Description: 2. Отметки на орудие;
Name: KMP\text2\1; Description: Вариант от OldSkool; Flags: exclusive
Name: KMP\text2\2; Description: Вариант от ПроТанки; Flags: exclusive
Name: KMP\text3; Description: 3. Командирская камера;
Name: KMP\text4; Description: 4. Статистика за сессию;
Name: KMP\text5; Description: 5. Мод Достижения в бою;
Name: KMP\text6; Description: 6. Белые сбитые гусеницы;
Name: KMP\text7; Description: 7. Цветные отметки попаданий;
Name: KMP\text8; Description: 8. Оповещение союзников о засвете;
Name: KMP\text9; Description: 9. Калькулятор боевой эффективности;

[code]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  OldEvent_BackButtonClick: TNotifyEvent;

procedure WizardFormCreate(Sender: TObject); forward;
procedure MainPanelClick(Sender: TObject); forward;
procedure PageDescriptionLabelClick(Sender: TObject); forward;
procedure _BackButtonClick(Sender: TObject); forward;

function MyDirName(S:String): String;
var
  InsPath: String;
  er: boolean;
  myFile:String;
begin
  Result:=ExpandConstant('C:\Games\World_of_Tanks\'); //если ключа нет то будем ставить сюда
  er := RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', InsPath);
  if er and (InsPath<>'') then //если ключ существует и там что-то записано
  begin
    Result := InsPath;
  end;
end;

procedure RedesignWizardForm;
begin
  with WizardForm do
  begin
    OnCreate := @WizardFormCreate;
    AutoScroll := False;
    ClientHeight := ScaleY(360);
    ClientWidth := ScaleX(497);
  end;

  with WizardForm.Bevel do
  begin
    Top := ScaleY(313);
    Width := ScaleX(497);
    Height := ScaleY(2);
  end;

  with WizardForm.OuterNotebook do
  begin
    Width := ScaleX(497);
    Height := ScaleY(313);
  end;

  with WizardForm.WizardBitmapImage do
  begin
    Width := ScaleX(498);
    Height := ScaleY(314);
  end;

  with WizardForm.WelcomeLabel2 do
  begin
    Caption := '' + #13#10 +
         '';
    Left := ScaleX(-1);
    Top := ScaleY(-1);
    Width := ScaleX(-1);
    Height := ScaleY(-1);
  end;

  with WizardForm.WelcomeLabel1 do
  begin
    Caption := '';
    Left := ScaleX(-1);
    Top := ScaleY(-1);
    Width := ScaleX(-1);
    Height := ScaleY(-1);
  end;

  with WizardForm.Bevel1 do
  begin
    Top := ScaleY(58);
    Width := ScaleX(499);
    Height := ScaleY(3);
  end;

  with WizardForm.InnerNotebook do
  begin
    Width := ScaleX(417);
    Height := ScaleY(237);
  end;

  with WizardForm.LicenseNotAcceptedRadio do
  begin
    Top := ScaleY(216);
  end;

  with WizardForm.LicenseAcceptedRadio do
  begin
    Top := ScaleY(196);
  end;

  with WizardForm.LicenseMemo do
  begin
    Width := ScaleX(417);
    Height := ScaleY(148);
  end;

  with WizardForm.DiskSpaceLabel do
  begin
    Top := ScaleY(216);
    Width := ScaleX(417);
  end;

  with WizardForm.DirBrowseButton do
  begin
    Left := ScaleX(342);
    Top := ScaleY(80);
  end;

  with WizardForm.DirEdit do
  begin
    Left := ScaleX(0);
    Width := ScaleX(332);
  end;

  with WizardForm.ComponentsDiskSpaceLabel do
  begin
    Top := ScaleY(-1);
    Width := ScaleX(-1);
  end;

  with WizardForm.ComponentsList do
  begin
    Width := ScaleX(417);
    Height := ScaleY(131);
  end;

  with WizardForm.TypesCombo do
  begin
    Width := ScaleX(417);
  end;

  with WizardForm.SelectComponentsLabel do
  begin
    Caption := 'Выберите компоненты, которые вы хотите установить. Нажмите «Далее», когда вы будете готовы продолжить.';
    Height := ScaleY(40);
  end;

  with WizardForm.TasksList do
  begin
    Width := ScaleX(417);
    Height := ScaleY(192);
  end;

  with WizardForm.ReadyMemo do
  begin
    Width := ScaleX(417);
    Height := ScaleY(205);
  end;

  with WizardForm.ProgressGauge do
  begin
    Left := ScaleX(0);
    Width := ScaleX(417);
  end;

  with WizardForm.InfoAfterMemo do
  begin
    Width := ScaleX(417);
    Height := ScaleY(205);
  end;

  with WizardForm.MainPanel do
  begin
    Width := ScaleX(497);
    Height := ScaleY(58);
    OnClick := @MainPanelClick;
  end;

  with WizardForm.WizardSmallBitmapImage do
  begin
    Left := ScaleX(0);
    Top := ScaleY(0);
    Width := ScaleX(498);
    Height := ScaleY(65);
  end;

  with WizardForm.PageDescriptionLabel do
  begin
    OnClick := @PageDescriptionLabelClick;
    Left := ScaleX(-1);
    Top := ScaleY(-1);
    Width := ScaleX(-1);
    Height := ScaleY(-1);
  end;

  with WizardForm.PageNameLabel do
  begin
    Left := ScaleX(-1);
    Top := ScaleY(-1);
    Width := ScaleX(-1);
  end;

  with WizardForm.WizardBitmapImage2 do
  begin
    Top := ScaleY(0);
    Width := ScaleX(498);
    Height := ScaleY(314);
  end;

  with WizardForm.RunList do
  begin
    Left := ScaleX(176);
    Top := ScaleY(163);
    Width := ScaleX(301);
    Height := ScaleY(142);
  end;

  with WizardForm.NoRadio do
  begin
    Left := ScaleX(176);
    Top := ScaleY(185);
    Width := ScaleX(301);
    Height := ScaleY(17);
    Caption := '';
  end;

  with WizardForm.YesRadio do
  begin
    Left := ScaleX(176);
    Top := ScaleY(163);
    Width := ScaleX(301);
    Height := ScaleY(17);
    Caption := '';
  end;

  with WizardForm.FinishedLabel do
  begin
    Caption := '';
    Left := ScaleX(-1);
    Top := ScaleY(-1);
    Width := ScaleX(-1);
    Height := ScaleY(-1);
  end;

  with WizardForm.FinishedHeadingLabel do
  begin
    Caption := '';
    Left := ScaleX(-1);
    Top := ScaleY(-1);
    Width := ScaleX(-1);
    Height := ScaleY(-1);
  end;

  with WizardForm.BeveledLabel do
  begin
    Left := ScaleX(0);
    Top := ScaleY(306);
  end;

  with WizardForm.CancelButton do
  begin
    Left := ScaleX(407);
    Top := ScaleY(327);
  end;

  with WizardForm.NextButton do
  begin
    Left := ScaleX(317);
    Top := ScaleY(327);
  end;

  with WizardForm.BackButton do
  begin
    Left := ScaleX(237);
    Top := ScaleY(327);
    OldEvent_BackButtonClick := OnClick;
    OnClick := @_BackButtonClick;
  end;

{ ReservationBegin }
// Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!

procedure NewButton1Click(Sender: TObject);
begin

end;

procedure MainPanelClick(Sender: TObject);
begin

end;

procedure PageDescriptionLabelClick(Sender: TObject);
begin

end;

procedure _BackButtonClick(Sender: TObject);
begin
  OldEvent_BackButtonClick(Sender);
end;

procedure WizardFormCreate(Sender: TObject);
begin

end;

const
    UNDEF_INDEX = -777;


function GetCursorPos(var lpPoint: TPoint): BOOL; external '[email protected] stdcall';


var
    InfoPic: TBitmapImage;
    LastIndex: Integer;
    TempPath: String;


procedure ShowPicHint(const PicFilePath: String);
var
    pt: TPoint;
begin
    if not GetCursorPos(pt) then Exit;
    InfoPic.Bitmap.LoadFromFile(PicFilePath);
    InfoPic.SetBounds(ScaleX(250), ScaleY(40), ScaleX(165), ScaleY(135));
    InfoPic.Show;
end;


procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
    UndefPic: String;
begin
    if Index = -1 then Exit;
    if Index = LastIndex then Exit;
    try
        case TNewCheckListBox(Sender).ItemCaption[Index] of
            '1. Менеджер Реплеев': UndefPic := 'descriptionimage_1.bmp'; // пишем точно так же, как прописано в компонентах
            '2. Отметки на орудие': UndefPic := 'descriptionimage_2.bmp';
            'Вариант от OldSkool': UndefPic := 'descriptionimage_2_1.bmp';
            'Вариант от ПроТанки': UndefPic := 'descriptionimage_2_2.bmp';
            '3. Командирская камера': UndefPic := 'descriptionimage_3.bmp';
            '4. Статистика за сессию': UndefPic := 'descriptionimage_4.bmp';
            '5. Мод Достижения в бою': UndefPic := 'descriptionimage_5.bmp';
            '6. Белые сбитые гусеницы': UndefPic := 'descriptionimage_6.bmp';
            '7. Цветные отметки попаданий': UndefPic := 'descriptionimage_7.bmp';
            '8. Оповещение союзников о засвете': UndefPic := 'descriptionimage_8.bmp';
            '9. Калькулятор боевой эффективности': UndefPic := 'descriptionimage_9.bmp';

        else
            begin
                LastIndex := UNDEF_INDEX;
                InfoPic.Hide;
                Exit;
            end;
        end;
        if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
        ShowPicHint(TempPath + UndefPic);
    finally
        LastIndex := Index;
    end;
end;


procedure CompOnMouseLeave(Sender: TObject);
begin
    InfoPic.Hide;
    LastIndex := -1;
end;


procedure InitInfo();
begin
    WizardForm.TypesCombo.Hide;
    WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(40), ScaleX(230), ScaleY(190));
    WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
    WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
    TempPath := AddBackslash(ExpandConstant('{tmp}'));
    LastIndex := UNDEF_INDEX;

    with TBevel.Create(WizardForm) do
    begin
      Parent := WizardForm.SelectComponentsPage;
      SetBounds(ScaleX(250), ScaleY(40), ScaleX(165), ScaleY(135));
      Shape := bsFrame;
    end;

    InfoPic := TBitmapImage.Create(WizardForm)
    with InfoPic do
    begin
      Parent := WizardForm.SelectComponentsPage;
      AutoSize := True;
    end;
end;


procedure InitializeWizard();
begin
  RedesignWizardForm;
    InitInfo();
end;

[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030100D03000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038F010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F1065450616E656C094D61696E50616E656C00F10C544269746D6170496D6167651657697A617264536D616C6C4269746D6170496D616765044C656674020005576964746803EF010C4578706C696369744C65667402000D4578706C69636974576964746803EF010000F10E544E65775374617469635465787414506167654465736372697074696F6E4C6162656C044C65667402F803546F7002FA0557696474680205064865696768740206074F6E436C69636B0719506167654465736372697074696F6E4C6162656C436C69636B0C4578706C696369744C65667402F80B4578706C69636974546F7002FA0D4578706C69636974576964746802050E4578706C6963697448656967687402060000F10E544E6577537461746963546578740D506167654E616D654C6162656C044C65667402F803546F7002FA055769647468020D0648656967687402060C4578706C696369744C65667402F80B4578706C69636974546F7002FA0D4578706C696369745769647468020D0E4578706C69636974486569676874020600000000F110544E65774E6F7465626F6F6B506167650C46696E6973686564506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100000000

 

Share this post


Link to post

Short link
Share on other sites

пиши вот в эту тему, там тебе скорее помогут чем тут - 

 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...