Genri Чего-то я немного ступил по поводу того как скачать IPUtils.dll
Вообщем пока всё идёт нормально, но есть некоторые недочёты:
1. Не записывается определяемый при установки IP в ini-файл.
Вы меня наверное не совсем правильно поняли, но это ini должен храниться на локальном диске, а не на серваке, который указывается при установке. Соответственно проблема в том как преобразовать параметр
\\{code:GetServerIP}\ так, чтобы он дописался в строчку
String: "\\{code:GetServerIP}\{app}\Base\Turuchet.gdb" - примерно так.
2. Непорядок с порядком отображения страниц, у меня получается так, что сначала вылазит окошко с выбором IP, а потом тип установки, хотя должно быть наоборот. Это как-то исправляется?
Мой код:
Код: [Code]
...
procedure InitializeWizard;
var
button : TButton;
begin
UsagePage := CreateInputOptionPage(wpWelcome,
'', '', True, False);
UsagePage.Add('Сервер');
UsagePage.Add('Клиент');
case GetPreviousData('UsageMode', '') of
'Сервер': UsagePage.SelectedValueIndex := 0;
'Клиент': UsagePage.SelectedValueIndex := 1;
else
UsagePage.SelectedValueIndex := 0;
end;
ServerPage := CreateInputQueryPage(
wpWelcome,
'Select Server',
'What machine is your server on?',
'You must tell us which machine you will use as a server so that the program can connect automatically when it is started.');
ServerPage.Add('Server IP-address:', False);
button := TButton.Create(WizardForm);
button.Parent := ServerPage.Surface;
button.Left := WizardForm.DirBrowseButton.Left;
button.Top := ServerPage.Edits[0].Top - (WizardForm.DIREDIT.Top - WizardForm.DirBrowseButton.Top);
button.Width := WizardForm.DirBrowseButton.Width;
button.Height := WizardForm.DirBrowseButton.Height;
button.Caption := WizardForm.DirBrowseButton.Caption;
button.OnClick := @BrowseComputer
ServerPage.Edits[0].Width := WizardForm.DIREDIT.Width;
LocalPage := CreateInputQueryPage(
wpWelcome,
'Your local ip',
'What machine is your server on?',
'You must tell us which machine you will use as a server so that the program can connect automatically when it is started.');
LocalPage.Add('Local IP-address:', False);
LocalPage.Values[0]:= GetLocalIPAddress;
LocalPage.Edits[0].Enabled := True;
end;
...
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = LocalPage.ID) and (UsagePage.SelectedValueIndex = 1) then
Result := True
else if (PageID = ServerPage.ID) and (UsagePage.SelectedValueIndex = 0) then
Result := True
else
Result := False;
end;