2011-06-17 11 views
3

私はこのようなPNG形式の画像のフィルムストリップを持っていますTImageListコントロール。常に透過性を保持します。(デルファイ2010)PNG形式のフィルムストリップをクリッピング

[EDIT]

はい、設計時RRUZで言及したトリックが正常に動作しますが、私は、実行時に画像をクリップしたかった、リソースまたはファイル

+0

私はImageMagickを使ってイメージを別々のフレームに分割し、リソースファイルを使ってそれらをアプリケーションにインポートします。あなたはスクリーンを再開発しようとしているようです。Cursor:= crHourglass –

+0

彼はXPとVista/Win7で砂時計のカーソルを同じように見せたいのでしょうか? – jpfollenius

+0

@Smasher TImageListを通して達成するのは難しいですね –

答えて

4

からフィルムストリップをロードすることによって、すなわち、あなたがこれらに従わなければなりません手順:cd32BitColorDepthプロパティを設定し

  • に、

  • Height = 48、

  • Width = 48、

その後だけにインポート画像をロードし、結果は

enter image description here

+1

ファンキー、それはあなたのためにこれを行うだろうか分からなかった! –

1

あろうイメージリスト。それは大きすぎると文句を言うだろうし、あなたのためにそれを分割するために提供します。 D2005でうまく動作します。

もう1つのヒント:私はAWIcons Pro http://www.awicons.com/icon-editor/を使ってアイコンを編集しています。これには、アイコンをイメージリスト(.bmpまたは.png形式)として書き出して、フィルムストリップをアイコンから外すことができる機能があります。これは、これらのものを.icoフォーマットで編集するのに非常に便利です。一連のセルはすべて同じサイズと深さで、各セルはわずかに変化します。その後、imagelist(私は.pngを使用)としてエクスポートし、Delphiはそれらを個々のセルに分割することができます。非常に滑らか。 AWIconsは無料ではありませんが、このような機能は実際に生産性を高めます。

+0

実行時には?どうやって?どのようなコードで? (彼はデザイン時を尋ねていません) –

1

実行時に、TImageList.FileLoadを呼び出す必要があります。それ以外は機能しません。

これはImageList_LoadImageを呼び出し、uFlagsパラメータの値にビットLR_LOADFROMFILEを含めます。これにより、Windowsはディスク上のファイルからロードされます。この基本機能は、TBitmap(BMP)形式のみをサポートします。

nearly-duplicate questionを参照してください。 PNGのサポートは、PNGデータをPNG形式ではなく、正確にはAMP形式に変換するdesigntime機能で、MS Common Controlsライブラリによって内部的に使用されます。 DFMをテキストとして表示すると、PNG入力が何に変わったのかがわかります。その他の回答は、ビットマップカラーベースの透過性を使用して透明度が保持されていることを示しています。

データをPNG形式にしておきたい場合は、実際にTImageListを使用するためにPNGからTBitmapへの変換を行う必要があるため、VCL TImageListを使用してデータを保存しないでください。

関連する問題