DelphiとDirectXのDelphiX(9):透明色と透明かどうか
1621 ワード
TDXImageList.各TPictureCollectionItemのデフォルトの透明色は黒で、デフォルトは透明です.
この例で使用するテスト画像:
http://files.cnblogs.com/del/Transparent.rar
本例の効果図:
コードファイル:
この例で使用するテスト画像:
http://files.cnblogs.com/del/Transparent.rar
本例の効果図:
コードファイル:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DXDraws, StdCtrls, DXClass;
type
TForm1 = class(TForm)
DXDraw1: TDXDraw;
DXImageList1: TDXImageList;
CheckBox1: TCheckBox;
procedure FormCreate(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
PicItem: TPictureCollectionItem;
procedure TForm1.FormCreate(Sender: TObject);
const
ImgPath1 = 'C:\Temp\Transparent.bmp';
begin
DXImageList1.DXDraw := DXDraw1;
PicItem := TPictureCollectionItem(DXImageList1.Items.Add);
PicItem.Picture.LoadFromFile(ImgPath1);
PicItem.TransparentColor := $FFFFFF; { ; }
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
const
arr: array[Boolean] of string = (' ', ' ');
begin
DXDraw1.Surface.Fill($FF0000);
PicItem.Restore;
PicItem.Transparent := CheckBox1.Checked;
PicItem.Draw(DXDraw1.Surface, 10, 10, 0);
DXDraw1.Flip;
CheckBox1.Caption := arr[CheckBox1.Checked];
end;
end.