標準のウィンドウ情報(警告とエラー)アイコンをpagecontrolのタブのインデックスに塗りたいと思います。しかし、ウィンドウの背景色が白でない場合、結果は悪く見えます。ここで標準ウィンドウの情報アイコンをpagecontrolのタブのインデックスにうまく塗る方法
program Project111;
uses
Vcl.Forms,
Vcl.Controls,
Vcl.Graphics,
Winapi.Windows,
Vcl.ComCtrls,
Vcl.ImgList;
{$R *.res}
var
mainForm: TForm;
imageList: TImageList;
icon: TIcon;
pageControl: TPageControl;
tabSheet: TTabSheet;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm, mainForm);
imageList := TImageList.Create(mainForm);
imageList.ColorDepth := cd32bit;
icon := TIcon.Create;
try
icon.Handle := LoadImage(0, IDI_INFORMATION, IMAGE_ICON, 16, 16, {LR_DEFAULTSIZE or} LR_SHARED);
imageList.AddIcon(icon);
finally
icon.Free;
end;
pageControl := TPageControl.Create(mainForm);
pageControl.Parent := mainForm;
pageControl.Images := imageList;
tabSheet := TTabSheet.Create(mainForm);
tabSheet.Parent := pageControl;
tabSheet.PageControl := pageControl;
tabSheet.ImageIndex := 0;
Application.Run;
end.
あなたは白の境界線があいまいで見ることができるように、私はそれが理由TImageListのことで、適切なアルファ透明性の欠如であると思いますが、私は修正する方法がわかりませんこの。
解決策はTImageListを使用する必要はありません。他の方法を使用してもうれしいです。キャプションもあり、すべてのインデックスにアイコンが付いているわけではなく、アイコンがコンテキストの変更に応じて変更/追加/削除される可能性があることに注意してください。
私はDelphi XE-2を使用しています。DevExpressコンポーネントもあります。
が、これは非常に広範囲に及ぶことを期待しています。画像そのものがどのように作成されたかという性質は、それらが明るい背景で使用されることを前提としています。問題は実際の画像にあります。それほど多くのコードではこれを解決できません。この修正は、暗い背景で使用するために最適化された画像を提供することです。あるいは、私たちはソフトウェアのすべてのボタンとアイコンをこの正確な理由のベクタフォントに更新するのに半年を費やしました。今、私たちはどんな背景でも私たちが望むものを色付けできます。 –