2012-02-11 20 views
5

私のアプリケーションにInno Setupを使用しています。インストール中にInno Setupにリンク(ライセンス契約)を表示したいのですが(別のライセンス契約ウィザードを除く)私はこのリンクをいくつかのタスクと組み合わせたい。ユーザーがそのリンクをクリックすると、特定のURLに移動します。インストール中にInno Setupで使用許諾契約書を表示する

答えて

2

ファイルサイズが非常に小さい場合はワードパッドを使用してRTF形式のライセンステキストを作成し、テキストにハイパーリンクを入力します。追加機能は必要ありません(例: 'http://stackoverflow.com')。 InnoSetupはこのURLを表示してクリック可能にします。電子メールのリンクが正しく機能しないことに注意してください。

したいですか?このテキスト全体をワードパッドに保存し、RTFとして保存し、InnoSetupにリンクします。

オランダ

8

私はかなり遅れてここにいる知っている...次のコードスクリプトは、ウィザード形式の左下の部分にLicense Agreementリンクラベルを作成します。そのラベルは青い下線付きのフォントとホバー上の手カーソルを持っているので、一般的なWebページリンクのように見えます。クリックイベントでは、指定されたURLがデフォルトのWebブラウザで開かれます。このラベルは、ライセンスページ以外のすべてのウィザードページ上に表示されている:

[Code] 
var 
    LicenseLinkLabel: TLabel; 

procedure LicenseLinkClick(Sender: TObject); 
var 
    ErrorCode: Integer; 
begin 
    ShellExec('', 'http://www.stackoverflow.com', '', '', SW_SHOW, ewNoWait, 
    ErrorCode); 
end; 

procedure InitializeWizard; 
begin 
    LicenseLinkLabel := TLabel.Create(WizardForm); 
    LicenseLinkLabel.Parent := WizardForm; 
    LicenseLinkLabel.Left := 8; 
    LicenseLinkLabel.Top := WizardForm.ClientHeight - 
    LicenseLinkLabel.ClientHeight - 8; 
    LicenseLinkLabel.Cursor := crHand; 
    LicenseLinkLabel.Font.Color := clBlue; 
    LicenseLinkLabel.Font.Style := [fsUnderline]; 
    LicenseLinkLabel.Caption := 'License Agreement'; 
    LicenseLinkLabel.OnClick := @LicenseLinkClick; 
end; 

procedure CurPageChanged(CurPageID: Integer); 
begin 
    LicenseLinkLabel.Visible := CurPageID <> wpLicense; 
end; 

、結果(クリックで拡大):

Click to enlarge Click to enlarge

+0

この記事はさえて(あなたの質問に答えた場合そのような遅れ:-)、あなたは[それを受け入れると思うかもしれません](http://meta.stackexchange.com/a/5235/179541)、そうでなければ、ここにコメントを残すことを躊躇しないで、あなたの正確なニーズ。ありがとう! – TLama

+0

Inno docsはCurPageChangedをリストアップしていませんでしたが、OnActivateイベントとOnNextButtonClickイベントを連携させることで、TWizardPageで作業するshow/hideを取得することができました。 – MikeKusold