• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi中关于Canvas.TextOut

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 

我想让字符串在Canvas上显现出来,但不知道如何改变字底边的颜色,想变成透明或其它色彩都行,
只是希望所输出的字符串不会影响到Canvas里边的图形。请问前辈们让如何做呢?

Canvas.Font.Color:=clblue;//字体颜色
//Canvas.Brush.Color:=clred;//
底色
Canvas.Brush.Style := bsClear;//
透明
canvas.textout(0,0,'avalokita');


拉两个 TImage
procedure TfrmMain.FormCreate(Sender: TObject);
begin
Image1.Canvas.Brush.Color := clBlack;
Image1.Canvas.FillRect(Image1.ClientRect);
Image1.Canvas.Font.Color := clRed;
Image1.Canvas.Font.Name := 'Times New Roman';
Image1.Canvas.Font.Size := 18;
Image1.Canvas.TextOut(9, 36, 'Delphi');
end;

//
水平转
procedure TfrmMain.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 1 to Image1.Width do
BitBlt(Image2.Canvas.Handle, i, 0, 1, Image2.Height,
Image1.Canvas.Handle, Image1.Width - i, 0, SRCCOPY);

Image2.Refresh;
end;

//
垂直转
procedure TfrmMain.Button2Click(Sender: TObject);
var
i: integer;
begin
for i := 1 to Image1.Height do
BitBlt(Image2.Canvas.Handle, 0, i, Image2.Width, 1,
Image1.Canvas.Handle, 0, Image1.Height - i, SRCCOPY);

Image2.Refresh;
end;

---------------------------------------------


  
1.
具有CANVAS属性的控件:   
TBitmap,TComboBox,TDBComboBox,TDBGrid,TDBListBox,TDirectoryListBox,
TDrawGrid,TFileListBox,TForm,THeaderControl,TImage,TListBox,TOutline,
TPaintBox,TPrinter,TStatusBar,TStringGrid
,   
  
2.CANVAS
属性及命令:篇幅所限,省略参数及格式说明,具体请参考文后程序及DELPHI帮助文件:   
  
canvas.rectangle():
画矩形pen.color:定义画笔颜色   
roundrect():
画圆角矩形pen.width:定义画笔宽度   
arc():
画弧线(不填充) brush.color:定义填充颜色   
chord():
画弧线(填充) textout():在固定位置输出字符串   
pie:
画扇形 textwidth:取字符串高度   
polygon():
画多边形填充textheight:取字符串宽度   
polyline():
多点联机(不填充)font.color:指定字体颜色   
Pixels():
指定固定象素点颜色值font.size:指定字体大小   
moveto():
指明画线起点 Ellipse():画圆或椭圆   
lineto():
指明画线终点   
  
  
3.
使用CANVAS注意事项:当窗口进行重画时,画布上的图像将消失,比如当窗口进行最小化又重新恢复时,就会引起画布上图像的消失,另外当刚刚运行程序时,窗口也是属于重新绘制,所以如果在绘制窗口之前在画布上绘图,弹出窗口后将不能显示出图像,比如在TForm1.FormCreate()事件中进行画布绘图操作将是徒劳的,但可以在此事件中进行画布操作的准备工作,比如设置画笔的颜色和宽度等。

procedure TForm1.SpeedButton5MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
if Sender is Tspeedbutton then
begin
    statusbar1.canvas.Brush.Color:=clwhite;
    statusbar1.canvas.fillRect(statusbar1.Canvas.ClipRect);//
清空画布
    statusbar1.Panels[0].Style:=psOwnerDraw;
    statusbar1.Canvas.font.Color:=clred;//
字体颜色
    statusbar1.Canvas.Brush.Color:=clblue;//
底色
    statusbar1.Canvas.brush.style:=bsclear; //
透明
    statusbar1.Canvas.TextOut(0,5,'This   is   sample'); //
定位x,y坐标轴及输入文字
end;
end;


Canvas.Brush.Style:=bsclear 可以去掉字体的背景


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB代码加密生成.p文件发布时间:2022-07-18
下一篇:
Ubuntu 16.04安装Matlab 2016b教程发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap