Jump to content
Korean Random

Создание инсталляторов для модпаков на базе Inno Setup


Recommended Posts

Вот ещё проблема SoundCtrlButton.Top := WizardForm.ClientHeight -
Насколько я понял это положение кнопки по вертикале если меняю на SoundCtrlButton.Top := 300
выдаёт ошибку

Link to comment
Short link
Share on other sites

-zav-, ну если Unicode, то возможно. В ANSI можно и без них обходится.

 

З.Ы. Unicode конечно хорошо, но всё же я советовал бы писать на ANSI-версии.

Edited by AtotIK
Link to comment
Short link
Share on other sites

скрин ошибки сделай. Я не могу угадывать..

 

post-6639-0-83253600-1401295662_thumb.png

 

'Music.iss'

[Music]

 

[Files]

Source: "Bass.dll"; Flags: dontcopy nocompression noencryption

Source: "AudioFile.mp3"; Flags: dontcopy

 

[CustomMessages]

SoundCtrlButtonCaptionSoundOn=Music on

SoundCtrlButtonCaptionSoundOff=Music off

 

const

BASS_SAMPLE_LOOP = 4;

BASS_ACTIVE_STOPPED = 0;

BASS_ACTIVE_PLAYING = 1;

BASS_ACTIVE_STALLED = 2;

BASS_ACTIVE_PAUSED = 3;

BASS_UNICODE = $80000000;

BASS_CONFIG_GVOL_STREAM = 9;

const

#ifndef UNICODE

EncodingFlag = 0;

#else

EncodingFlag = BASS_UNICODE;

#endif

type

HSTREAM = DWORD;

 

function BASS_Init(device: LongInt; freq, flags: DWORD;

win: HWND; clsid: Cardinal): BOOL;

external 'BASS_Init@files:bass.dll stdcall';

function BASS_StreamCreateFile(mem: BOOL; f: string; offset1: DWORD;

offset2: DWORD; length1: DWORD; length2: DWORD; flags: DWORD): HSTREAM;

external 'BASS_StreamCreateFile@files:bass.dll stdcall';

function BASS_Start: BOOL;

external 'BASS_Start@files:bass.dll stdcall';

function BASS_Pause: BOOL;

external 'BASS_Pause@files:bass.dll stdcall';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL;

external 'BASS_ChannelPlay@files:bass.dll stdcall';

function BASS_SetConfig(option: DWORD; value: DWORD ): BOOL;

external 'BASS_SetConfig@files:bass.dll stdcall';

function BASS_ChannelIsActive(handle: DWORD): DWORD;

external 'BASS_ChannelIsActive@files:bass.dll stdcall';

function BASS_Free: BOOL;

external 'BASS_Free@files:bass.dll stdcall';

 

var

SoundStream: HSTREAM;

SoundCtrlButton: TNewButton;

 

procedure SoundCtrlButtonClick(Sender: TObject);

begin

case BASS_ChannelIsActive(SoundStream) of

BASS_ACTIVE_PLAYING:

begin

if BASS_Pause then

SoundCtrlButton.Caption :=

ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOn}');

end;

BASS_ACTIVE_PAUSED:

begin

if BASS_Start then

SoundCtrlButton.Caption :=

ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOff}');

end;

end;

end;

 

procedure InitializeWizard2;

begin

ExtractTemporaryFile('AudioFile.mp3');

if BASS_Init(-1, 44100, 0, 0, 0) then

begin

SoundStream := BASS_StreamCreateFile(False,

ExpandConstant('{tmp}\AudioFile.mp3'), 0, 0, 0, 0,

EncodingFlag or BASS_SAMPLE_LOOP);

BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, 2500);

BASS_ChannelPlay(SoundStream, False);

 

SoundCtrlButton := TNewButton.Create(WizardForm);

SoundCtrlButton.Parent := WizardForm;

SoundCtrlButton.Left := 8;

SoundCtrlButton.Top := 300;

SoundCtrlButton.Height - 8;

SoundCtrlButton.Width := 155;

SoundCtrlButton.Caption :=

ExpandConstant('{cm:SoundCtrlButtonCaptionSoundOff}');

SoundCtrlButton.OnClick := @SoundCtrlButtonClick;

end;

end;

 

procedure DeinitializeSetup;

begin

BASS_Free;

end;

 

 

А почему нельзя Top := ScaleY(300); как и всякие координаты?

Пробывал и так и эток не получается (

Edited by liked
Link to comment
Short link
Share on other sites

@liked, в строке, на которую ругается компилятор, прописано вот такое:

SoundCtrlButton.Height - 8;

А должно быть:

SoundCtrlButton.Height:=SoundCtrlButton.Height - 8;

 Прежде чем писать сюда о какой-то ошибке, сначала сам найди её в коде (компилятор так и тычет туда пальцем), и подумай, что же может быть не так..

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

Чего-чего? :heh:

 

З.Ы. Facepalm.jpg

Оригинал такой, это не я писал ) я сам удивился думал грань 0 -1 уже нету а тут есть)

@liked, в строке, на которую ругается компилятор, прописано вот такое:

SoundCtrlButton.Height - 8;

А должно быть:

SoundCtrlButton.Height:=SoundCtrlButton.Height - 8;

 Прежде чем писать сюда о какой-то ошибке, сначала сам найди её в коде (компилятор так и тычет туда пальцем), и подумай, что же может быть не так..

Вопрос зачем SoundCtrlButton.Height:=SoundCtrlButton.Height - 8;

SoundCtrlButton.Height:= 8; всё работает) 

спасибо да не в внимательный я видать 

Link to comment
Short link
Share on other sites

 

 

Вопрос зачем SoundCtrlButton.Height:=SoundCtrlButton.Height - 8;

SoundCtrlButton.Height:= 8; всё работает)

Ну, я же не знаю, что ты хотел сделать.. общую высоту формы равную 8, или высоту формы, меньше стандартной на 8.
Link to comment
Short link
Share on other sites

Ну, я же не знаю, что ты хотел сделать.. общую высоту формы равную 8, или высоту формы, меньше стандартной на 8.

Всё получилось спасибо :) вот думаю чёб ещё прикрутить прикольного

Edited by liked
Link to comment
Short link
Share on other sites

Уважаемые, я тут порылся в паутине, но не увидел ответа на интересующий вопрос.

А вопрос такой: прикрутили мы картинку (кнопку), задали процедуру на ее тык - перейти по урл-ссылке. Все замечательно, но! Эта гадость (установщик) все время подсовывает Эксплорер. А есть возможность  указать, чтобы вызывался браузер, заданный в системе по умолчанию (хром, опера или еще что, стоящее у конечного пользователя)?

procedure NewButton1Click(Sender: TObject);
var ResCode: Integer;
begin
ShellExec('', 'http://всякая фигня', '' , '', SW_SHOW, ewNoWait, ResCode)
end;

Все пишут о "браузере по умолчанию" и указывают эту процедуру. У меня по умолчанию гугль-хром, но открывается ссылка в Эксплорере. На работе, на другом компе, та же история.

Что я не так прописал?

Link to comment
Short link
Share on other sites

Всё так. Странно.

Вот и я удивляюсь. Скорее всего это связано с Вин8.1 (дома стоит у меня и на рабочем компе). Только что проверил свои рабочие програмки на втором рабочем компе (там у меня Вин7 стоит) - открывает ссылку нормально в Хроме. 

Link to comment
Short link
Share on other sites

Столкнулся с такой вот проблемой когда много модов и весят много доходит до окна выбора модов и виснет... удаляю тяжёлые моды с сборки всё ок, повисание 1-2 сек потом норм.

 

Если пути до папок модов не прописывать! инсталлятор литает. только добавляешь пути к папкам подвисает 

 

Вот ссылка на инсталятор http://yadi.sk/d/2bACYQDLRfZWb

Edited by liked
Link to comment
Short link
Share on other sites

Вот и я удивляюсь. Скорее всего это связано с Вин8.1 (дома стоит у меня и на рабочем компе). Только что проверил свои рабочие програмки на втором рабочем компе (там у меня Вин7 стоит) - открывает ссылку нормально в Хроме. 

 

Это самое, в программе твоей вызов приложения идёт через встроенную виндовскую функцию через стандартные dll-библиотеки винды. Эта функция как-то определяет какой у тебя сейчас по умолчанию браузер стоит и его и запускает. Раз она не запускает хром, значит тут два варианта, либо та функция , которую использует инно-сетап в винде устаревшая, т.е. из старых, оставленных только для совместимости винды со старыми программами и потому она уже кривая, либо в 8-ке у тебя хром как-то криво зарегистрировался в системе и не везде себя прописал браузером по умолчанию.

 

Думаю надо сначала проверить, а как будет работать на другом компе с 8-ой и если тот же косяк, то поискать в тырнете другой вариант реализации ссылки в инно.

Edited by StranikS_Scan
Link to comment
Short link
Share on other sites

 

Думаю надо сначала проверить, а как будет работать на другом компе с 8-ой и если тот же косяк, то поискать в тырнете другой вариант реализации ссылки в инно.

Оки. Спасибо за инфу. Нечто подобное я и предполагал. У меня две 8.1 и на обеих такая фиговина. В восьмерке вообще проблема с администрированием, так что склонен предположить, что это персональная бяка Вин8. Если найду решение - обязательно отпишусь. Потомкам в назидание :-)

Link to comment
Short link
Share on other sites

Вот не пойму почему при наличии файлов он начинает подвисать, а когда нету файлов всё ок работает :(

 Какое у тебя сжатие стоит? попробуй поставить полегче.

Link to comment
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...