![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос по скрипиту на delphi
Noobik © (2008-07-31 22:46:00)Есть код... Но где то в нём ошибка... Это код для инсталлера. Он на Delphi
а я 0 в программировании - не знаю у кого ещё спросить...
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Doom Remake 3: Risen Version"
#define MyAppVerName "Doom Remake 3: Risen Version"
#define MyAppPublisher "Doomerzed"
#define MyAppURL " http://site.ru"
#define MyAppExeName "MyProg.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{B7B472AC-0DB2-4C41-B51E-C8959EE82CCD}
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
CreateAppDir=no
LicenseFile=C:\Risen3D\licen.txt
InfoBeforeFile=C:\Risen3D\Readit.txt
OutputDir=C:\Documents and Settings\User\Desktop
OutputBaseFilename=setup
SetupIconFile=C:\Documents and Settings\User\Desktop\doom.ico
Compression=lzma
SolidCompression=yes
WindowVisible=yes
WindowResizable=no
WindowShowCaption=no
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
[Files]
Source: "C:\Risen3D\*"; DestDir: "{win}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
//files to slideshow
Source: C:\pack\0.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\1.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\2.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\3.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\4.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\5.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\6.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\7.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\8.jpg; DestDir: {tmp}; Flags: dontcopy
Source: "C:\BASS.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "C:\pack\d_e1m1.ogg"; DestDir: "{tmp}"; Flags: dontcopy
[Code]
const
BACKGROUND=6;
TIMER=16;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external 'isxbb_AddImage@files:isxbb.dll stdcall';
function isxbb_Init(hWnd: Integer): Integer;
external 'isxbb_Init@files:isxbb.dll stdcall';
function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external 'isxbb_StartTimer@files:isxbb.dll stdcall';
function isxbb_KillTimer(Flags: Cardinal): Integer;
external 'isxbb_KillTimer@files:isxbb.dll stdcall';
procedure InitializeWizard();
begin
ExtractTemporaryFile('1.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\1.jpg',BACKGROUND);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
//что-то начинается
if CurStep=ssInstall
then
begin
ExtractTemporaryFile('2.jpg');
ExtractTemporaryFile('3.jpg');
ExtractTemporaryFile('4.jpg');
ExtractTemporaryFile('5.jpg');
ExtractTemporaryFile('6.jpg');
ExtractTemporaryFile('7.jpg');
ExtractTemporaryFile('8.jpg');
isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\3.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\4.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\5.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\6.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\7.jpg',BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant('{tmp}')+'\8.jpg',BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant('{hwnd}')));
isxbb_StartTimer(2,BACKGROUND)
end
else if CurStep=ssPostInstall then
isxbb_KillTimer(BACKGROUND);
end;
const
BASS_SAMPLE_LOOP = 4;
type
HSTREAM = DWORD;
function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean;
external 'BASS_Init@files:BASS.dll stdcall delayload';
function BASS_StreamCreateFile(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): HSTREAM;
external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';
function BASS_Start(): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';
function BASS_Stop(): Boolean;
external 'BASS_Stop@files:BASS.dll stdcall delayload';
function BASS_Free(): Boolean;
external 'BASS_Free@files:BASS.dll stdcall delayload';
procedure InitializeWizard();
var
Name1: string;
i: Integer;
begin
ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('d_e1m1.ogg');
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
BASS_Start();
Name1:=ExpandConstant('{tmp}\d_e1m1.ogg');
i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
if i <> 0 then
begin
BASS_ChannelPlay(i, True);
end;
end;
end;
procedure DeInitializeSetup();
begin
BASS_Stop();
BASS_Free();
end;
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=False;
Confirm:=False;
if MsgBox('Хорошенько поDOOMайте прежде чем отменить установку! Вы действительно не любите Doom?',
mbError, MB_YESNO) = idYes
then
Cancel:=true;
end;
[Icons]
Name: "{commonprograms}\Doom Remake3"; Filename: "{app}\Risen3D\R3DLaunch\r3dlauncher.exe"; WorkingDir:
{app}\Risen3D\R3DLaunch
Проблема в процедуре InitializeWizard которая вызывается дважды...
Как это исправить?
Правильный$Вася (2008-08-02 15:34:00) [1]
> Проблема в процедуре InitializeWizard которая вызывается
> дважды...Как это исправить?
ну, она не вызывается, а описана дважды
уж не знаю, нормально ли это для Inno, но для языков программирования это требует специальных бубнов
а что это за Doom3 и откуда взялся-таки скрипт? может, спросить у его автора?
Cobalt (2008-08-02 09:07:00) [2]А в чем ошибка-то заключается?
И на каком этапе происходит?
Сергей М. (2008-08-01 17:49:00) [3]
> Он на Delphi
Он нена Delphi.
Это InnerFuse Pascal Script.
tesseract (2008-07-31 23:30:00) [4]
> Если кто знает - то помогите пожалуйста.
Помочь в чём ? Я неплохо знаю inno, но код странноват. Не похож на мои разработки. И слишком много всяких extract.
Noobik (2008-07-31 23:22:00) [5]Хотя бы ту часть что я показал... там где InitializeWizard ... это явно
кусок чисто программерский... все эти procesure, begin... в этом хоть как то
можно наверное разобраться тем кто знает языки программирования? Или нет?
Я не знаю... Если кто знает - то помогите пожалуйста.
Noob (2008-07-31 23:19:00) [6]Но написан он используя синтаксис от делфи..
Поросенок Винни-Пух (2008-07-31 22:50:00) [7]это скрипт на Inno. Не на делфи