web-dev-qa-db-ja.com

組み込みツールのみを使用してDelphiXEでコンポーネントアイコンを作成するための最良の方法

Delphi 7には、.dcrファイルの読み取りと書き込みが可能なイメージエディタプログラムが含まれています。これは、拡張子が異なる単なるバイナリリソースファイル(.resファイル)であり、慣例により.dcrファイルには、コンポーネント名に対応する名前を持つ名前付きビットマップリソース(TMyComponentという名前のコンポーネントのTMYCOMPONENTという名前のビットマップリソース)を持つコンパイル済みリソースが含まれています。これらのビットマップは、delphiコンポーネントパレット、および非ビジュアルコンポーネントをドロップしたときにフォームまたはデータモジュールにアイコンを配置するために使用される「アイコン」の出所です。

Delphi XEに10年早送りし、ビットマップファイルとRCファイルを使用してコンポーネントアイコンを作成し、DelphiIDEの一部として.DCRファイルにビルドしようとしています。

次のように、.Rcファイルと次のような宣言を.dpk(パッケージソース)ファイルに追加するだけです。

{$R mypackageicons.rc mypackageicons.dcr}

コンポーネントアイコンを含むサンプル.rcファイル:

 // COMPONENT ICON RESOURCES
 TMYCOMPONENT BMP "TMYCOMPONENT.BMP"

しかし、私はこれを機能させることができません。奇妙なRLINK32エラーが発生し、試してみるとIDE borlandmm.dllでクラッシュするようです。

[DCC Error] E2161 Error: RLINK32: Unsupported 16bit resource in file "C:\temp\compicon\COMPONENTICONS.rc"
[DCC Fatal Error] F2084 Internal Error: AV21515155-W06000D07-1

問題のビットマップファイルは、単純な256色のbmpファイルサイズ24x24ピクセルであり、16色のビットマップも試しましたが運がありませんでした。 ImageEditプログラムは、Delphiコンポーネントアイコンを作成するために使用できることを私が知っている唯一の方法であるように思われます。

私は何を見逃していますか?

更新:外部ツールはDelphi 7画像エディタにアクセスできない人にとっては素晴らしいソリューションであり、実際には優れているかもしれませんが、付属のものだけを使用してこれを実行したいと思いますDelphi、1つの{$ R}宣言、テキストファイル、およびペイントブラシで作成されたbmpファイルを使用するだけで可能になるはずだからです。確かに、この素​​晴らしい1.5ギガバイトの開発者ツールを使用して、コンポーネントアイコンを作成する方法を作成することを省略しませんでした。 .. pdate2:そして方法があります;ルディV.はそれを見つけました。

21
Warren P

私は以下を使用して大成功を収めました:

更新

XEで次のことを試したところ、成功しました。

  • NewAnimates.pasに新しいコンポーネントTNewAnimateを作成しました。
  • TNewAnimate.pasdclusr.dpkに追加しました。
  • プロジェクト→リソースと画像...を使用してビットマップを追加しました(TMRUComboBox.bmpと呼ばれます。とにかくそれがありました)。 -)。dpkにダイアログを表示し、名前を付けました[〜#〜] tnewanimate [〜#〜]
  • 再インストールしましたdclusr.dpk

dclusr.pdkのソースファイルに新しいエントリが追加されました{$R *.dres}(拡張子に注意してください)。 TNewAnimateSamplesパレットにあり、グリフがTMRUComboBox.bmpにあることがわかりました。

dclusr.dresと同じディレクトリにdclusr.dpk(通常はC:\ Program Filesの下にありますが、セットアップにはありません) )。 XN Resource Editorで開こうとしましたが、不可解なエラーメッセージで開くことができませんでした。通常の。resファイルではないようです。

enter image description here

22
Rudy Velthuis

リソースエディタ を試してください。古い画像エディタの素晴らしい代替品。

6
kludg

Delphi XE5upd2を使用して以前の応答を調査しました。あまり成功していません。そこで、新しいソリューションを構築しようとしましたが、以前の回答から派生したソリューションを見つけました。

要するに:1。Windowsペイントプログラムを使用してビットマップを作成します。 2.ビットマップを使用してリソーススクリプトファイルを作成します。 3.スクリプトをBRCC32でコンパイルして、dcrファイルを生成します。4。dcrファイルをパッケージソースに含めます。5。パッケージを再コンパイル/インストールします。

これを自動化するには、BRCC32コマンドラインをパッケージプロジェクトの「ビルド前のイベント」に追加するだけで十分です。このようにして、各ビルドの前にdcrファイルが再作成されます。

詳細な説明については、私のブログ http://francois-piette.blogspot.be/2014/02/howto-create-dcr-file-for-your-delphi.html を参照してください。

3
fpiette

最初に「mypackageicons.rc」ファイルをプロジェクトに追加します。これにより、コンパイル時に「mypackageicons.res」が生成されます(「リソースファイルを含める」という質問に関連するSO answer を参照) .RESファイルではなく.RCファイルによるプロジェクトで」)。

コンポーネントユニット(または.dpk)にも{$R mypackageicons.res mypackageicons.dcr}を含めます。これは「.dcrファイル」を生成しませんが、コンポーネントのアイコンを設定します。


「BMP」リソースを使用したテストが失敗したことに注意してください。リソースタイプとして「BITMAP」を使用しました。

3
Sertac Akyuz