4

VCL Styles for Inno Setup を使用してインストーラーをスキンしようとしたところ、小さな問題が発生しました。誰かが助けてくれることを願っています。

あらかじめお詫び申し上げます。私はしばらくの間、これらをいじくり回しており、あちこちのクリップを取り込んで、自分のインストーラーで希望どおりに動作させるようにしましたが、プログラミングに関しては決してグルではありません. 実際、それは私に片頭痛を与えますが、どうにかしてそれを成し遂げなければなりません. 要するに、私のコーディングは決してエキスパートではありませんが、物事を成し遂げようとしています。

私は 2008 年に作成したインストーラーを使用しています。つい最近、インストーラーに追加して、より自動的に実行するようにし、洞察に富んだプロンプトを減らし、見栄えを良くしたいと考えました。

最初に作成したときに Sherlock Software の InnoTools Downloader を追加しましたが、それ以来、まったく問題なく使用しています。

VCL Styles を追加したばかりですが、InnoTools Downloader 内に、残りのインストーラーと一緒にスキンを適用する方法がまったくわからない要素があります。それ以外は問題ないように見えますが、ダウンロード ページ内の小さなボックスが灰色でした。

ここに画像の説明を入力

そこで、Mitrich Software の Inno Download Plugin を試してみました。ねえ、灰色のボックスは消えましたが、くそっ.. エラー ウィンドウのテキストは、白い背景に明るい灰色で、判読できません。

ここに画像の説明を入力

さらに検索を行ったところ、How to apply VCL styles to DLL-based forms が見つかりました。以下を使用して Sherlock Software の InnoTools Downloader をロードしようとしたとき:

procedure DllLoadStyle(const StyleFilename: WideString);
  external 'DllLoadStyle@files:itdownload.dll stdcall';

エラーが発生しました:不明なタイプ 'WideString'

ANSI バージョンの Inno Setup を使用しているのは、何年も前に最初に Unicode バージョンを試したときに InnoTools ダウンローダーが台無しになり、それ以来 ANSI を使用しているためです。

VCL が既に使用していたフォーマットに合わせて、WideString をただの String に変更してみました。

procedure LoadVCLStyle(VClStyleFile: String);
  external 'LoadVCLStyleA@files:VclStylesInno.dll stdcall';

しかし、残念ながら、インストーラーの実行時にエラーが発生しました。

Runtime Error (at -1:0):
Cannot Import dll:C:\...\Temp\is-XXXXX.tmp\itdownloaded.dll

1) 両方のダウンローダが外部の .dll を使用しているため、この部分をスキン化するのはちょっと運が悪いのでしょうか? 2) VCL にページ上のその要素をスキンするように指示する方法はありますか? 3) どちらの .dll ファイルも、リンクされたページ (および元の VCL .dll ファイル) と同様の方法でロードできますか? 4) Inno Setup の Unicode バージョンを使用すると、これを解決するための追加の手段が得られますか (元のインストーラーで大量のコードを書き直す必要がない限り)?

申し訳ありませんが、現時点では、新しいページとの関係がよくわかりません。私がインストーラーで行ったことのほとんどは、MsgBox を使用して、ユーザー入力を必要とする可能性のある新しい更新やその他の通知がある状況でそれらを処理する必要がないようにします。

役立つ場合は、インストーラーの 1 つから取得したサンプル コードをまとめます。要求があれば投稿できます。おそらく、実際のプログラマーにとっては大きな混乱であり、誰もが頭を悩ませたくない (またはむち打ち症でうんざりして頭を振っている) のを見ることさえできますが、それが役立つかどうか、または私が既に入れたものがここで、私が何に遭遇したかを説明するのに十分です。

評判が10になったらサンプル画像も載せますので参考になさってください。

私はいつでもそれを受け入れることができますが、それを修正したいと思っています。これが私の最初の質問であるため、不明な点がある場合は事前に謝罪します.

助けと洞察を前もって感謝します。

Inno Setup 1.2.2.1 の VCL スタイル / ispack-5.5.5.exe からインストールされた Inno Setup 5.5.5a / InnoTools Downloader 0.3.5 / Inno Download Plugin 1.4.0。

編集:画像を追加しました(そうするためのポイントをありがとう)。ダウンロードに失敗したというエラーは無視してください。ウィンドウとポップアップのスキニングをキャプチャするボックスが停止してポップアップするようにしました。

4

3 に答える 3

3

VCL Styles for Inno セットアッププラグインは、これらの inno コントロールにのみスタイルを適用できます

  • TNewEdit

  • TEdit

  • TPassword編集

  • TNewMemo

  • TNewComboBox

  • TNewListBox

  • TListBox

  • TNewButton

  • TNewCheckBox

  • TNewRadioButton

  • TSelectFolderForm

  • TFolderTreeView

  • TStartMenuFolderTreeView

  • TRichEditViewer

  • TNewStaticText

  • TNewNotebook

  • TNewNotebookPage

  • Tパネル

    InnoTools Downloaderそのため、プラグインで使用されるようなサードパーティ コンポーネントにスキンを適用することはできません。とにかく、プロジェクトの問題ページでそのような機能をリクエストできます。

于 2014-10-07T17:34:43.703 に答える
1

私は実際にあなたが使用しているこのコードを書きました。しばらく前に書いたので、もうほとんど慣れていませんが、問題は、私が書いたときのように、Inno Setup の Unicode バージョンを使用していないことです。Unicode バージョンへの切り替えは常に非常に単純であるとは限りません。プロジェクトを調整するために多くのことをしなければならない場合があります。ただし、このWideString型は Unicode バージョンでのみ使用できます (Unicode 型であるため)。

于 2014-10-07T14:21:12.067 に答える
1

更新: Mitrich Software の Inno Download Plugin の作成者が更新をリリースしました。Inno Download Plugin 1.4.1 は、ポップアップの問題を修正し、灰色のボックスを表示せずにダウンロード ページをスキンします。乾杯、そしてみんなの助けに感謝します。

https://groups.google.com/forum/#!topic/inno-download-plugin/DzhRiLYi66c

これまでのところ、Sherlock Software Web サイトの InnoTools Downloader の電子メール アドレスは回復しています。

VCL Styles バグ レポートからの返信がまだありません: https://code.google.com/p/vcl-styles-plugins/issues/detail?id=5&can=1

于 2014-10-25T08:54:54.990 に答える