내 목표는 사용자가이 설치 프로그램을 사용하고 이름을 삽입하고 언어를 선택하고 맞춤 매개 변수를 설정하는 것입니다. 끝났어. 하지만 필요한 것은 사용자가 응용 프로그램에서 아바타로 넣을 이미지를 선택한다는 것입니다. 그 이유는 사용자가 이미지를 선택하고 응용 프로그램 폴더로 파일을 복사하는 이유입니다. 이 같은맞춤 레이아웃 페이지에서 이미지 파일을 선택하고 설치 폴더에 파일을 복사하십시오.
뭔가 :
이[Code]
{ RedesignWizardFormBegin } // Don't remove this line!
// Don't modify this section. It is generated automatically.
procedure RedesignWizardForm;
begin
with WizardForm.WizardSmallBitmapImage do
begin
Left := ScaleX(350);
Width := ScaleX(150);
Height := ScaleY(57);
end;
with WizardForm.PageDescriptionLabel do
begin
Width := ScaleX(309);
end;
with WizardForm.PageNameLabel do
begin
Width := ScaleX(293);
end;
{ ReservationBegin }
// This part is for you. Add your specialized code here.
{ ReservationEnd }
end;
// Don't modify this section. It is generated automatically.
{ RedesignWizardFormEnd } // Don't remove this line!
var
NameEdit: TNewEdit;
ParametresEdit: TNewEdit;
LanguageCombo: TNewComboBox;
LanguageNames: TStringList;
function ConvertLanguageName(const Value: string): string;
var
I: Integer;
WideCharCode: Word;
begin
Result := '';
I := 1;
while I <= Length(Value) do
begin
if Value[I] = '<' then
begin
WideCharCode := StrToInt('$' + Copy(Value, I + 1, 4));
I := I + 6;
end
else
begin
WideCharCode := Ord(Value[I]);
I := I + 1;
end;
SetLength(Result, Length(Result) + 1);
Result[Length(Result)] := Chr(WideCharCode);
end;
end;
function GetLanguageName(const Value: string): string;
begin
Result := LanguageNames[LanguageCombo.ItemIndex];
end;
function GetPlayerName(const Value: string): string;
begin
Result := NameEdit.Text;
end;
function GetParametres(const Value: string): string;
begin
Result := ParametresEdit.Text;
end;
procedure InitializeWizard;
var
PlayerSettingsPage: TWizardPage;
NameLabel: TLabel;
LanguageLabel: TLabel;
ParaLabel: TLabel;
Info1Label: TLabel;
Info2Label: TLabel;
Info3Label: TLabel;
Info4Label: TLabel;
Info5Label: TLabel;
Info6Label: TLabel;
begin
RedesignWizardForm;
PlayerSettingsPage := CreateCustomPage(wpSelectComponents, 'Ingrese Datos', 'Informacón del juego');
NameLabel := TLabel.Create(WizardForm);
NameLabel.Parent := PlayerSettingsPage.Surface;
NameLabel.Left := 0;
NameLabel.Top := 0;
NameLabel.Font.Style := [fsBold];
NameLabel.Caption := 'Nombre';
NameEdit := TNewEdit.Create(WizardForm);
NameEdit.Parent := PlayerSettingsPage.Surface;
NameEdit.Left := 0;
NameEdit.Top := NameLabel.Top + NameLabel.Height + 4;
NameEdit.Width := 180;
ParaLabel := TLabel.Create(WizardForm);
ParaLabel.Parent := PlayerSettingsPage.Surface;
ParaLabel.Left := 0;
ParaLabel.Top := 100;
ParaLabel.Font.Style := [fsBold];
ParaLabel.Caption := 'Parametros de Left 4 Dead 2';
ParametresEdit := TNewEdit.Create(WizardForm);
ParametresEdit.Parent := PlayerSettingsPage.Surface;
ParametresEdit.Left := 0;
ParametresEdit.Top := ParaLabel.Top + ParaLabel.Height + 4;
ParametresEdit.Width := 180;
Info1Label := TLabel.Create(WizardForm);
Info1Label.Parent := PlayerSettingsPage.Surface;
Info1Label.Left := 190;
Info1Label.Top := 15;
Info1Label.Font.Style := [fsBold];
Info1Label.Caption := 'Introduzca su Nombre que se mostrara';
Info2Label := TLabel.Create(WizardForm);
Info2Label.Parent := PlayerSettingsPage.Surface;
Info2Label.Left := 190;
Info2Label.Top := 30;
Info2Label.Font.Style := [fsBold];
Info2Label.Caption := 'en el juego';
Info3Label := TLabel.Create(WizardForm);
Info3Label.Parent := PlayerSettingsPage.Surface;
Info3Label.Left := 190;
Info3Label.Top := 65;
Info3Label.Font.Style := [fsBold];
Info3Label.Caption := 'Selecciona tu Idioma';
Info4Label := TLabel.Create(WizardForm);
Info4Label.Parent := PlayerSettingsPage.Surface;
Info4Label.Left := 190;
Info4Label.Top := 120;
Info4Label.Font.Style := [fsBold];
Info4Label.Caption := '-console: Muestra la consola';
Info5Label := TLabel.Create(WizardForm);
Info5Label.Parent := PlayerSettingsPage.Surface;
Info5Label.Left := 190;
Info5Label.Top := 135;
Info5Label.Font.Style := [fsBold];
Info5Label.Caption := '-novid: Salta el intro del juego';
Info6Label := TLabel.Create(WizardForm);
Info6Label.Parent := PlayerSettingsPage.Surface;
Info6Label.Left := 190;
Info6Label.Top := 150;
Info6Label.Font.Style := [fsBold];
Info6Label.Caption := '-sw: Fuerza al juego en modo ventana';
LanguageNames := TStringList.Create;
#sub AddLanguageInternalNames
#define GetLanguageInternalName(str S) \
Local[0] = Copy(S, Pos("Name:", S) + Len("Name:")), \
Local[1] = Copy(Local[0], Pos("""", Local[0]) + 1), \
Copy(Local[1], 1, Pos("""", Local[1]) - 1)
#emit ' LanguageNames.Add(''' + GetLanguageInternalName(LanguageList[LanguageIndex]) + ''');'
#endsub
#for {LanguageIndex = 0; LanguageIndex < LanguageCount; LanguageIndex++} AddLanguageInternalNames
LanguageLabel := TLabel.Create(WizardForm);
LanguageLabel.Parent := PlayerSettingsPage.Surface;
LanguageLabel.Left := 0;
LanguageLabel.Top := NameEdit.Top + NameEdit.Height + 8;
LanguageLabel.Font.Style := [fsBold];
LanguageLabel.Caption := 'Lenguaje';
LanguageCombo := TNewComboBox.Create(WizardForm);
LanguageCombo.Parent := PlayerSettingsPage.Surface;
LanguageCombo.Left := 0;
LanguageCombo.Top := LanguageLabel.Top + LanguageLabel.Height + 4;
LanguageCombo.Width := NameEdit.Width;
LanguageCombo.Style := csDropDownList;
#sub AddLanguageDisplayNames
#define GetLanguageDisplayName(str S) \
ReadIni(S, "LangOptions", "LanguageName")
#define GetLanguageFile(str S) \
Local[0] = Copy(S, Pos("MessagesFile:", S) + Len("MessagesFile:")), \
Local[1] = Copy(Local[0], Pos("""", Local[0]) + 1), \
StringChange(Copy(Local[1], 1, Pos("""", Local[1]) - 1), "compiler:", CompilerPath)
#expr LanguageName = GetLanguageDisplayName(GetLanguageFile(LanguageList[LanguageIndex]))
#emit ' LanguageCombo.Items.Add(ConvertLanguageName(''' + LanguageName + '''));'
#endsub
#for {LanguageIndex = 0; LanguageIndex < LanguageCount; LanguageIndex++} AddLanguageDisplayNames
LanguageCombo.ItemIndex := LanguageNames.IndexOf(ActiveLanguage);
end;
procedure DeinitializeSetup;
begin
LanguageNames.Free;
end;
내 코드는 현재이 페이지를 생산 : 사람이 도울 수 있다면
이, 내 코드는 크게 감사하겠습니다
문제는 무엇인가
그런 다음
CurStepChanged(ssPostInstall)
에서 선택한 아바타를 설치? 너는 무엇을 놓치고 있니? 파스칼에서 파일을 복사하는 방법? 복사본을 트리거하는 방법? 또는 다른 것? –사용자가 파일을 찾은 다음이 파일을 응용 프로그램 폴더에 복사하면됩니다. –
코드가 생성하는 사용자 정의 페이지가 질문과 관련이 있습니까? –