(急需(分数多多呢!))如何让Delphi在Image(有Bitmap)上写字(背景应为透明,例如TextOut的白色背景是不行的)??????

yxf 2000-03-20 09:22:00
...全文
491 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hirong 2000-03-21
  • 打赏
  • 举报
回复
记得在VC++中只要将DC设置成透明的就可以了
pDC->SetBkMode(TRANSPARENT);
DELPHI我没试过.
ahao 2000-03-21
  • 打赏
  • 举报
回复
不对,我搞错了,如果有Bitmap的话还是把Transparent去掉吧,不然会闪烁的,前面几位已经说对了.
ahao 2000-03-21
  • 打赏
  • 举报
回复
哈哈,我的一定行:
用BCB是:
Image1->Transparent=true;
Image1->Canvas->Brush->Style = bsClear;
Image1->Canvas->Font->Size=9;
Image1->Canvas->Font->Name="宋体";
Image1->Canvas->TextOut(10, 10, "透明汉字");
改成Delphi可能是:
Image1.Transparent=true;
Image1.Canvas.Brush.Style = bsClear;
Image1.Canvas.Font.Size=9;
Image1.Canvas.Font.Name='宋体';
Image1.Canvas.TextOut(10, 10, '透明汉字');
OK?
sunsetyang 2000-03-21
  • 打赏
  • 举报
回复
已经写在image1中的东西会丢失?不会吧!!
dengdeng 2000-03-21
  • 打赏
  • 举报
回复
ahao 的回答是对的。

不过最好把代码写在Image1所在Form的OnPaint事件中,避免刷新后丢失。
5201314 2000-03-20
  • 打赏
  • 举报
回复
在quickreport上试试!我也在研究这个问题!欢迎交流!
Mars 2000-03-20
  • 打赏
  • 举报
回复
with image1 do
begin
canvas.brush.style:=bsclear;
canvas.textout(widht div 2,height div 2,'hello');
end;
//ok!!!
huzi 2000-03-20
  • 打赏
  • 举报
回复
用Label也可以呀。Label有透明属性
Lin 2000-03-20
  • 打赏
  • 举报
回复
没有问题啊, 只需设置CanvasBrush.Style为bsClear就OK, 如:
...
Image1.Canvas.Brush.Style := bsClear;
Image1.Canvas.TextOut(10, 10, '透明汉字');
...

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧