[Setup]
AppName=LancherGame
AppVersion=1.0
VersionInfoVersion=1.0
CreateAppDir=no
SetupIconFile=SetupIconFile.ico
OutputBaseFilename=Luncher
OutputDir=.
CreateUninstallRegKey=no
Uninstallable=no
AppCopyright=Copyright Vint56
VersionInfoDescription=LancherGame
[code ]
var
LanguageLabel: TLabel;
PanelForm: TPanel;
Language: TNewComboBox;
Close,Save: TPanel;
s1,s2: String;
Run: TNewCheckBox;
ResultCode: Integer;
function ReleaseCapture(): Longint; external '
ReleaseCapture@user32.dll stdcall';
procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0)
end;
procedure RePlaceTextinFile(FilePath:string; find:string; replace:string);
var
S: TArrayOfString;
i : Integer;
begin
if not FileExists(FilePath) then begin MsgBox('Файл не найден ' + FilePath, mbError, mb_Ok); Exit;end; // если файла нет, выходим
LoadStringsFromFile(FilePath, S); // загружаем файл
for i:= 0 to GetArrayLength(S)-1 do begin
if (Pos(AnsiUpperCase(find), AnsiUpperCase(S
)) > 0) then begin
StringChangeEx(S, find, replace, True);
end;
end;
SaveStringsToFile(FilePath, S, False); // сохраняем файл
end;
procedure SaveClick(Sender: TObject);
begin
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
procedure CloseClick(Sender: TObject);
begin
WizardForm.Close;
end;
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False
Cancel:=True
end;
procedure InitializeWizard();
begin
with WizardForm do begin
BorderStyle:=bsNone;
Bevel.Hide;
InnerNotebook.Hide;
OuterNotebook.Hide;
Width:=ScaleX(308);
Height:=ScaleY(153);
Position:=poScreenCenter;
end;
PanelForm := TPanel.Create(WizardForm);
with PanelForm do
begin
Parent := WizardForm;
Left := ScaleX(0);
Top := ScaleY(0);
Width := ScaleX(308);
Height := ScaleY(153);
BevelInner := bvLowered;
end;
//Создаем лейбл на всю форму, чтоб ее можно было двигать
with TLabel.Create(WizardForm) do begin
Parent:=PanelForm;
AutoSize:=False;
Top:=0;
Left:=0;
Width:=WizardForm.Width;
Height:= WizardForm.Height
Transparent:=True;
OnMouseDown:=@LabelOnMouseDown;
end;
//Теперь тут можно делать чекбоксы
LanguageLabel := TLabel.Create(WizardForm);
with LanguageLabel do
begin
Parent := PanelForm;
Caption := 'Selet game language:';
Left := ScaleX(30);
Top := ScaleY(24);
Width := ScaleX(110);
Height := ScaleY(15);
end;
Language := TNewComboBox.Create(WizardForm);
with Language do
begin
Parent := PanelForm;
Left := ScaleX(153);
Top := ScaleY(20);
Width := ScaleX(123);
Height := ScaleY(21);
Items.Add('japanese');
Items.Add('polish');
Items.Add('hungarian');
Items.Add('czech');
Items.Add('brazilian');
Items.Add('german');
Items.Add('spanish');
Items.Add('italian');
Items.Add('french');
Items.Add('english');
Items.Add('russian');
ItemIndex := 0;
end;
Save := TPanel.Create(WizardForm);
with Save do
begin
Parent := PanelForm;
Left := ScaleX(30);
Top := ScaleY(107);
Width := ScaleX(165);
Height := ScaleY(24);
BevelInner := bvLowered;
Caption := 'Save';
OnClick := @SaveClick;
end;
Close := TPanel.Create(WizardForm);
with Close do
begin
Parent := PanelForm;
Left := ScaleX(204);
Top := ScaleY(107);
Width := ScaleX(72);
Height := ScaleY(24);
BevelInner := bvLowered;
Caption := 'Close';
OnClick := @CloseClick;
end;
Run := TNewCheckBox.Create(WizardForm);
with Run do
begin
Parent := PanelForm;
Left := ScaleX(30);
Top := ScaleY(73);
Width := ScaleX(86);
Height := ScaleY(20);
Caption := 'Launch game';
// Checked:=true;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = 1)or(PageID = 2)or(PageID = 3)or(PageID = 4)or(PageID = 5)or(PageID = 6)or(PageID = 7)or(PageID = 8)or(PageID = 9)or(PageID = 10)or(PageID = 11)or(PageID = 13)or(PageID = 14) then
Result:= True;
end;
function InitializeSetup(): Boolean;
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'japanese', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'polish', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'hungarian', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'czech', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'brazilian', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'german', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'spanish', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'italian', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'french', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'russian', 'english');
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'english');
result:=True;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
case Language.ItemIndex of
0:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'japanese'); //заменяем слово english на russian
end;
1:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'polish'); //заменяем слово russian на english
end;
2:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'hungarian'); //заменяем слово russian на english
end;
3:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'czech'); //заменяем слово english на russian
end;
4:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'brazilian'); //заменяем слово russian на english
end;
5:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'german'); //заменяем слово russian на english
end;
6:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'spanish'); //заменяем слово english на russian
end;
7:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'italian'); //заменяем слово russian на english
end;
8:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'french'); //заменяем слово russian на english
end;
9:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'english'); //заменяем слово english на russian
end;
9:
begin
RePlaceTextinFile(ExpandConstant('{src}\steam_emu.ini'), 'english', 'russian'); //заменяем слово english на russian
end;
end;
end;
procedure DeinitializeSetup();
begin
if Run.Checked then
begin
Exec(ExpandConstant('{src}\farcry3.exe'), '', '', SW_SHOW, ewNoWait, ResultCode);
end;
end;