Здравствуйте уважаемые форумчане.
У меня такой вопрос - имеется кусок скрипта со слайдшоу для препроцессора:
Код
Код:

[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;