問題タブ [timagelist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - Delphi TImageList ビットマップの変更点
Delphi XE2 Update 3 を使用しています。Update 4 は一部のサードパーティ コンポーネントと互換性がないため、まだ更新していません。
アプリケーションで TImageList を使用しています。ソース ビューからフォーム ビュー (F12) に切り替えると、以前は変更されていなかったユニットが突然変更されることに何度も気付きました。F12 キーを押して変更を保存すると、ソース管理を見ると、TImageList.Bitmap プロパティの数バイトが変更されていることがわかります。TortoiseHg Workbench で見られる 1 つの例を次に示します。
他にもマイナーな変更がある場合がありますが、常に TImageList.Bitmap データ内のいくつかの孤立したスポットに限定されています。意図的な変更を行っていないのに、これらの取るに足らない変更を常にソース管理にプッシュするのは本当に苦痛です。
ソース ビューとフォーム ビューを切り替えるときに、Delphi が TImageList.Bitmap データを変更する理由を知っている人はいますか? この制限を回避する方法はありますか?
delphi - ImageListから透明な画像をロードする方法は?
TImageList
画像 (32 ビット深度、透明) を からにロードしたいTImage
。標準的なアプローチはImageList.GetBitmap(Index, Image.Picture.Bitmap);
. ただし、このGetBitmap
方法は透明度では機能しないため、常に不透明なビットマップを取得します。
image - Delphi-「ソース」画像ファイルと私のプロジェクトの画像の間のリンクを維持する自動化された方法が必要
Delphiがうまく管理できないと思うことの1つは、イメージの「ソース」ファイルとプロジェクト内のイメージコンポーネント間のリンクです(ここではD2006ですが、すべてのバージョンに適用されると想定しています)。
プロジェクトにさまざまな静止画像があるとします。背景、ツールバーボタンのグリフ、さまざまなアイキャンディーなどです。ソース、スクレイプ、または作成したPNG / BMPなどのファイルの対応するコレクションがあり、これらが読み込まれています。設計時に画像コンポーネントに挿入します。
1つの問題は、3か月後に、画像コンポーネントのロードに使用されたソース画像ファイルを自動的に検出する方法がないように思われることです。これは、1つまたは複数の画像を編集する必要がある場合にさらに問題になります。
ですから、私が本当に望んでいるのは、プロジェクトのビルドにイメージソースファイルを含める方法です。つまり、ビルドを実行すると、すべてのイメージコンポーネントが最初にソースからリロードされます。現在、PhotoShopなどで一部の画像を変更すると、変更された画像をそれぞれの画像コンテナに再読み込みするための、時間のかかるエラーが発生しやすいプロセスに直面します。
すべての画像がバインドされたリソースを作成し、起動時に画像コンポーネントをロードするコードを追加することは、実行可能な方法ですか?他の人がこの問題を抱えていますか、そしてあなたはそれをどのように管理しますか?
c# - DataTable の特定の列から ImageList を埋める方法は?
何百もの行と多くの列を持つ DataTable があります。列の 1 つは「ImageThumbnail」フォームの 1 つのコントロールにサムネイルを表示したいです。このコントロールは、イメージ ソースとして「ImageList」を想定しています。したがって、データセットの「ImageThumbnail」列から ImageList コントロールに値を入力するのが好きです。DataTable のすべての行をループすることでそれを行うことができましたが、効率的な方法が必要だと思います。
delphi - Delphi TImageList PNG アルファ レンダリングが暗すぎる
Delphi XE3 アプリケーション ツールバー用の PNG アイコンがあります。これをTActionToolbar
経由で に追加するTImageList
と、アルファ チャネルが必要以上に暗くレンダリングされ、アイコンの見栄えが悪くなります。問題は に関係していて、特に に関係しているとは思いTImageList
ませんTActionToolbar
。
Photoshop モックアップ:
にインポートした後の実際の外観TActionToolbar
(アルファは、フォルダーの塗りつぶしの濃い青):
これが私のDelphi Object Inspectorの設定ですTImageList
(いいえ、問題はBlendColor
プロパティではありません):
Delphi/Windows/犯人がアルファチャンネルを適切にレンダリングする方法はありますか? オプションとして、アイコンをすべてビットマップにすることもできますが、恐竜の時代に戻りたくないので、透過色でビットマップを編集するという頭の痛い問題を経験したくありません... TIA.
delphi - ImageList に関連する EInvalidOperation を修正するにはどうすればよいですか
私のアプリケーション (Delphi 7 で作成) は Windows XP SP3 で正しく動作しますが、Windows 7 で実行しようとすると、次の例外が発生します。
EInvalidOperation とメッセージ「Invalid ImageList」
これはメインのアプリケーション コードです。
frMain などのモジュール dmImages は正しく作成されていますが、オブジェクト frameAnagrafica が作成されると、コンストラクター メソッドで例外が発生します。
TframeAnagrafica の「スーパークラス」:
Windows XP では問題ありませんが、Windows 7 を使用すると問題が発生します。この問題を解決するにはどうすればよいですか?
delphi - DELPHI - TPageControl の PNG 画像
私の Delphi XE3 アプリケーションでは、TPageControl コンポーネントを MainForm に配置しました。「Images」プロパティを、いくつかの PNG 画像を含む ImageList にリンクしました。各 TTabSheet の「画像インデックス」プロパティを設定すると、設計時に画像が正しく表現されます。それ以外の場合、アプリケーションを実行すると、TTabSheet に含まれるすべての画像 (背景なしである必要があります) が黒い四角の領域で囲まれていることがわかります。ImageList の設定を確認すると、次のことがわかります。
- -BkColor: clNone
- -BlendColor: clNone
- -色深度: cd32bit
- -DrawingStyle: dsTransparent
- -ImageType: itImage
- -マスク: False
問題に関連するかどうかはわかりませんが、プロジェクトの設定を変更し、「ランタイムテーマを有効にする」という音声を有効にすると、この問題は解決されることに注意してください。
ありがとう。
delphi - Delphi XE2: TImageList を使用してツールバーに透明な GIF イメージを描画する方法
使用: Delphi XE2; VCL フォーム アプリケーション
TImageList を使用して、ActionToolbar (ActionManager を使用) に透明な GIF 画像を描画することは可能ですか?
試してみましたが、ツールボタンの背景が黒くなります。
GIF 画像は 256 色です。透明度があります (Corel PaintShopPro で画像を開いて確認します)。
ImageList で、プロパティを設定しました。
ColorDepth := cd32bit、DrawingStyle := dsTransparent.
設計時および実行時のフォームのスクリーン キャプチャ:
ヒントや回避策をいただければ幸いです。
delphi - TImageListにロードされたgifをアニメーション化するにはどうすればよいですか?
TImageList に入れられた gif 画像をアニメーション化する方法を知りたいです。
TImageList 内の各画像のグラフィックにアクセスできれば、画像のグラフィックを TGIFImage にキャストし、Animate プロパティを true に設定できる可能性があることはわかっています。しかし問題は、TImageList にロードされた画像にアクセスして TGIFImage にキャストし、アニメーション プロパティを設定するにはどうすればよいかということです。
編集:
TTreeView でアニメーション GIF を表示するにはどうすればよいですか?
David Heffernanが答えたように、TImageList は gif 画像の保存には適していません。しかし、この質問の目的は、ツリービューにアニメーション GIF を表示することでした。Remy-lebeauの提案によりそのためのユニットを書きました。この単元では、2 つのクラスを定義しました。プロパティとして TImagelist を使用する最初の TGifImageRefrence を割り当てる必要があり、このイメージリストに gif 画像を追加する手順を持っています。各フレームは単一の画像として Imagelist に保存され、フレームのインデックスとアニメーション速度が保存されます。2 番目のクラスは TGifNode で、その目的は TreeView のノードになることです。プロパティとして TGifImageRefrence を受け入れるタイマーが含まれています。このクラスからツリービューの独自のノードのクラスを継承できます。このユニットを使用して例を作成し、それらをまとめます。http://loghman.ir/MySource/GifInTreeView.zipからダウンロードできます。