加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – VCL组件不透明度/透明度

发布时间:2020-12-15 09:46:15 所属栏目:大数据 来源:网络整理
导读:是否可以制造例如20%透明的TMemo或其他vcl组件?像TButton或TEdit? 谷歌搜索解决方案时我发现了这个: From Here,然后我想,如果我在窗体上绘制图像(OnPaint)然后设置AlphaBlend ON,我可以实现这个效果但是没有成功,当整个窗体是透明的时,主要的效果是没有
是否可以制造例如20%透明的TMemo或其他vcl组件?像TButton或TEdit?

谷歌搜索解决方案时我发现了这个:

From Here,然后我想,如果我在窗体上绘制图像(OnPaint)然后设置AlphaBlend ON,我可以实现这个效果但是没有成功,当整个窗体是透明的时,主要的效果是没有实现,没有bg pic背后的备忘录.

我想要实现的效果:(在photoshop中完成)

这可能吗?如果是,怎么样? (我不要求任何人提供完整的src代码,只要文章或小例子,如果可能,或方向,不管我能理解的方式)

thnx注意.

我找到了解决方案,在带有图像背景的表单上创建了alphablended表单,然后在添加的表单上添加备忘录并将其与客户端对齐,而不是最好的方式,但它工作正常:

procedure TForm1.Button1Click(Sender: TObject);
var
 MM : TMyMemo; frm : TForm;
begin
 frm := TForm.Create(Form1);
 frm.BorderStyle := bsNone;
 frm.AlphaBlend := true;
 frm.AlphaBlendValue := 150;
 frm.Left     := Form1.Left + 90;
 frm.Top      := Form1.Top + 90;
 frm.Width    := 300;
 frm.Height   := 300;
 frm.Position := poDesigned;
 frm.Visible := true;

 MM             := TMyMemo.Create(frm);
 MM.Parent      := frm;
 MM.BorderStyle := bsNone;
 MM.ParentColor := False;
 MM.Align       := alClient;
 MM.Color       := clBlack;
 MM.Font.Color  := clWhite;
 MM.Font.Name   := 'Sylfaen';
 MM.Font.Size   := 11;
 MM.Visible     := True;

 frme := True;
end;

但还有另外一个问题,当我按下备忘录时,背景形式失去焦点,当我将新形式的父亲设置为Form1时,上面的问题解决但透明效果消失了(窗口仍然是透明的,但你可以通过bg窗口看到没有可见背景)我该如何解决这个问题?

解决方法

我认为这个问题经常被问到(也许不在这里,但我之前已经多次看过).奇怪的是,答案几乎永远不会出现,尽管它存在,隐藏在讨论这个问题的所有人中间.也许这里的问题将有助于改善未来的搜索过程,仅仅因为它是stackoverflow

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读