Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здравствуйте уважаемые форумчане.

У меня такой вопрос - имеется кусок скрипта со слайдшоу для препроцессора:
Код
Код: Выделить весь код
[Files]                                       
  ; Файлы заставки
Source: SlideShou\*; DestDir: {tmp}; Flags: dontcopy deleteafterinstall noencryption nocompression;
Source: J:\Soft\ISS\Resource\isgsg_0.6.0.69.dll; DestDir: {tmp}; DestName: isgsg.dll; Flags: dontcopy deleteafterinstall noencryption nocompression overwritereadonly

[-Code-]
//Слайд шоу
const
  Indent=25;

function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall delayload';
function ssInitialize(hParent:HWND;ssTimeShow:integer;FadeOut:boolean;StretchMode:integer;BkgColor:DWORD):boolean; external 'ssInitialize@files:isgsg.dll stdcall delayload';
procedure ssDeInitialize; external 'ssDeInitialize@files:isgsg.dll stdcall delayload';
procedure ssAddImage(FileName:PAnsiChar); external 'ssAddImage@files:isgsg.dll stdcall delayload';
procedure ssStartShow; external 'ssStartShow@files:isgsg.dll stdcall delayload';
procedure ssStopShow; external 'ssStopShow@files:isgsg.dll stdcall delayload';
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

procedure InitializeWizard4();
begin
  ssInitialize(GetWindowLong(MainForm.Handle,-8),8,False,1,$FF000000);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep=ssInstall then begin
    ExtractTemporaryFile('Screen (1).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (1).jpg');
    ExtractTemporaryFile('Screen (2).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (2).jpg');
    ExtractTemporaryFile('Screen (3).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (3).jpg');
    ExtractTemporaryFile('Screen (4).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (4).jpg');
    ExtractTemporaryFile('Screen (5).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (5).jpg');
    ExtractTemporaryFile('Screen (6).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (6).jpg');
    ExtractTemporaryFile('Screen (7).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (7).jpg');
    ExtractTemporaryFile('Screen (8).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (8).jpg');
    ExtractTemporaryFile('Screen (9).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (9).jpg');
    ExtractTemporaryFile('Screen (10).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (10).jpg');
    ExtractTemporaryFile('Screen (11).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (11).jpg');
    ExtractTemporaryFile('Screen (12).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (12).jpg');
    ExtractTemporaryFile('Screen (13).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (13).jpg');
    ExtractTemporaryFile('Screen (14).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (14).jpg');
    ExtractTemporaryFile('Screen (15).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (15).jpg');
    ExtractTemporaryFile('Screen (16).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\Screen (16).jpg');
    ssStartShow;
  end;
  if CurStep=ssPostInstall then ssStopShow;
end;

procedure CurPageChanged2(CurPageID: Integer);
begin
  if CurPageID=wpInstalling then begin
    WizardForm.MainPanel.Visible:=False;
    WizardForm.Bevel1.Visible:=False;
    WizardForm.Width:=ScaleX(395);
    WizardForm.Height:=ScaleY(142);
    WizardForm.Left:=ScaleX(GetSystemMetrics(0)-WizardForm.Width-Indent);
    WizardForm.Top:=ScaleY(GetSystemMetrics(1)-WizardForm.Height-Indent);
    WizardForm.InnerNotebook.Left:=ScaleX(10);
    WizardForm.InnerNotebook.Top:=ScaleY(10);
    WizardForm.InnerNotebook.Width:=ScaleX(370);
    WizardForm.StatusLabel.Left:=ScaleX(0);
    WizardForm.StatusLabel.Top:=ScaleY(0);
    WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.FileNameLabel.Left:=ScaleX(0);
    WizardForm.FileNameLabel.Top:=ScaleY(20);
    WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.ProgressGauge.Top:=ScaleY(40);
    WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.CancelButton.Left:=ScaleX(154);
    WizardForm.CancelButton.Top:=ScaleY(80);
  end;
  if (CurPageID=wpFinished) or (CurPageID=wpInfoAfter) then begin
    if WizardForm.Width<>502 then begin
      WizardForm.Visible:=False;
      WizardForm.Width:=ScaleX(502);
      WizardForm.Height:=ScaleY(392);
      WizardForm.Left:=(GetSystemMetrics(0)-WizardForm.Width) div 2;
      WizardForm.Top:=(GetSystemMetrics(1)-WizardForm.Height) div 2;
      WizardForm.MainPanel.Visible:=True;
      WizardForm.Bevel1.Visible:=True;
      WizardForm.InnerNotebook.Left:=ScaleX(40);
      WizardForm.InnerNotebook.Top:=ScaleY(72);
      WizardForm.InnerNotebook.Width:=ScaleX(417);
      WizardForm.Visible:=True;
    end;
  end;
end;

procedure DeinitializeSetup3();
begin
  ssDeInitialize;
end;


Так вот можно ли каким-нибудь образом организовать автоматическое создание списка изображений (циклом или ещё как) в зависимости от количества файлов в папке, чтобы если
Source: SlideShou\* содержит 15 изображений то
ExtractTemporaryFile('Screen (1).jpg');
ssAddImage(ExpandConstant('{tmp}')+'\Screen (1).jpg');
.......

ExtractTemporaryFile('Screen (15).jpg');
ssAddImage(ExpandConstant('{tmp}')+'\Screen (15).jpg');
ssStartShow;

а если содержит 30 изображений то
ExtractTemporaryFile('Screen (1).jpg');
ssAddImage(ExpandConstant('{tmp}')+'\Screen (1).jpg');
.......

ExtractTemporaryFile('Screen (30).jpg');
ssAddImage(ExpandConstant('{tmp}')+'\Screen (30).jpg');
ssStartShow;

Отправлено: 19:16, 27-10-2015 | #1015