Привет Я работаю с wix для создания установки. Мне нужен пользовательский диалог, чтобы пользователь мог определить порт. В диалоговом окне есть элемент управления типа MaskedEdit, где он должен написать порт. Свойство, связанное с элементом управления, имеет заданное по умолчанию значение. Проблема в том, что когда пользователь нажимает следующую кнопку, я хотел бы убедиться, что поле порта имеет значение или показать ему предупреждение. Код для управления выглядит следующим образом:Проверьте, содержит ли элемент управления MaskedEdit текст
<Property Id="DataStoragePort">4323</Property>
<Dialog Id="DataStoragePortConfig" Width="370" Height="270" Title="CellaVision DM1 Setup">
<Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="Next">
</Control>
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="Back">
</Control>
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="Cancel">
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
</Control>
<Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Data Storage Configuration" />
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.InstallDirDlgBannerBitmap)" />
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<Control Id="DSDescription" Type="Text" X="20" Y="60" Width="250" Height="13" NoPrefix="yes" Text="Enter the port that the Data Storage Service should run on" />
<Control Id="DSPort" Type="Text" X="20" Y="80" Width="20" Height="13" NoPrefix="yes" Text="Port:" />
<Control Id="DSText" Type="MaskedEdit" Text="#####" X="45" Y="78" Width="70" Height="14" Property="DataStoragePort" />
</Dialog>
и обработка нажмите на следующую кнопку выглядеть следующим образом:
<Publish Dialog="DataStoragePortConfig" Control="Back" Event="NewDialog" Value="CustomizeDlg">1</Publish>
<Publish Dialog="DataStoragePortConfig" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
но на следующий клик Я хотел бы, чтобы убедиться, что Свойство DataStoragePort не является пустой строкой. Какие-либо предложения? С уважением Daniel
спасибо. Это хорошо работает. Есть ли способ удалить пустые пространства из свойства? Порт, который пользователь устанавливает, может быть длиной всего 3-4 цифры. –
Вы можете попробовать использовать настраиваемое действие (C++ DLL или VBScript). В DLL вы можете использовать функции MsiGetProperty() и MsiSetProperty(). В VBScript вы можете использовать Session.Property («PROPERTY_NAME»). –