用Image做一个带图形不规则窗体,环境如下:
当我给Form 的TransparentColor:=True; TransparentColorValue:=clWhite;
并且 创建字透明窗体,现出现如下问题:
1、窗口边角,能形成不规则的图形(该Image加载的图片背景色为白色),但是,整个窗口,在加载别的的控件时,只要该控件背景色为白色,这时这个控件,也为透明的,可如何让这些控件不透明呢。2、设Form 的TransparentColor:=False; 能否将Image加载的控件背景色,如白色去掉。请高手指点,这个要采用以上哪个方法好实现呢。
当我给Form 的TransparentColor:=True; TransparentColorValue:=clWhite;
并且 创建字透明窗体,现出现如下问题:
1、窗口边角,能形成不规则的图形(该Image加载的图片背景色为白色),但是,整个窗口,在加载别的的控件时,只要该控件背景色为白色,这时这个控件,也为透明的,可如何让这些控件不透明呢。2、设Form 的TransparentColor:=False; 能否将Image加载的控件背景色,如白色去掉。请高手指点,这个要采用以上哪个方法好实现呢。
解决方案 »
- 救命,关于post提交数据时Accept-Encoding的问题
- DLL的函数用到string的问题
- 谁有ODAC 6.5啊???如果有的发份给我把谢谢 [email protected]
- TABLE控件动态增加字段
- 如何通过代码控制StringGrid的Options的属性
- 在DBGRIDEH网格中我想在(数量)这个字段中输入 39+20 然后数量自动变为59 但是现有的DBGRIDEH会出错的,请问高手如何解决
- 因业务需要,本公司高薪聘Delphi开发人员
- 如何用Delphi工具---Image Editor 将已存在的位图文件编辑成资源文件?
- 请问MASM是什么?有没有相关文档资料可以下载?
- 读取注册表中还未创建的记录的数据时,会出现错误,要怎么拦截该错误呢(我不希望用户看到该错误)
- 有关数据库添加数据的问题
- 紧急:进入系统什么也做不了,这个问题该如何解决
procedure DrawTrans(DestCanvas: TCanvas; X,Y: smallint; SrcBitmap:TBitmap; AColor: TColor);
var
ANDBitmap, ORBitmap: TBitmap;
CM: TCopyMode;
Src: TRect;
begin
ANDBitmap:= NIL;
ORBitmap:= NIL;
try
ANDBitmap:= TBitmap.Create;
ORBitmap:= TBitmap.Create;
Src := Bounds(0,0, SrcBitmap.Width, SrcBitmap.Height);
with ORBitmap do
begin
Width:= SrcBitmap.Width;
Height:= SrcBitmap.Height;
Canvas.Brush.Color := clBlack;
Canvas.CopyMode := cmSrcCopy;
Canvas.BrushCopy(Src, SrcBitmap, Src, AColor);
end;
with ANDBitmap do
begin
Width:= SrcBitmap.Width;
Height:= SrcBitmap.Height;
Canvas.Brush.Color := clWhite;
Canvas.CopyMode := cmSrcInvert;
Canvas.BrushCopy(Src, SrcBitmap, Src, AColor);
end;
with DestCanvas do
begin
CM := CopyMode;
CopyMode := cmSrcAnd;
Draw(X,Y, ANDBitmap);
CopyMode := cmSrcPaint;
Draw(X,Y, ORBitmap);
CopyMode := CM;
end;
finally
ANDBitmap.Free;
ORBitmap.Free;
end;
end;