是否可以制作例如 20% 透明的 TMemo 或其他 vcl 组件?像 TButton 或 TEdit?
在谷歌搜索解决方案时,我发现了这个:
从这里,然后我想,如果我在表单上绘制图像(OnPaint)然后将AlphaBlend设置为ON,我可以实现这个效果但是没有成功,当整个表单是透明的时,主要需要的效果没有达到,备忘录后面没有bg pic .
我想要达到的效果:(在photoshop中完成)
这可能吗?如果是,如何?(我不要求任何人提供完整的 src 代码,如果可能的话,只要求文章或小例子,或方向,无论我能理解它的方式)
谢谢关注。
我找到了解决方案,在带有图像背景的表单上创建字母混合表单,然后在添加的表单上添加备忘录并将其与客户端对齐,这不是最好的方法,但它工作正常:
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窗口看到不可见背景)我该如何解决这个问题?