Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по скрипиту на 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. Не на делфи


Наверх

Титульная страница Поиск, карта сайта Написать письмо