Canvas上输出一些文字,如何抺去?
如 Canvas.TextOut(100,100,'I love Delphi!');
请问如何将汉字抺去?(不能用Canvas.TextOut(100,100,'                  ');)

解决方案 »

  1.   

    Canvas.Rectangle(-1, -1, 101, 101);
      

  2.   

    Canvas.TextOut(100,100,'            ');
      

  3.   

    很简单
    执行
    Self.Repaint;
      

  4.   

    偶试过了!
    1:  Canvas上可能有好多文字,我要准确到每一个象素
       所以Canvas.Rectangle(-1, -1, 101, 101); 不行
    2: 我早说过了 Canvas.TextOut(100,100,'            ');不太好!
    3: Self.Repaint;就不行
      

  5.   

    Self.Repaint;怎么不可以,我试了,可以阿,你到底想完成什么功能,说详细点
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Canvas.TextOut(100,100,'I love Delphi!');
      Canvas.TextOut(200,200,'I love Delphi!');end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      Self.Repaint ;
    end;
      

  6.   

    Canvas.TextOut(100,100,'I love Delphi!');字体颜色用底色brush.style:=bsclear;
      

  7.   

    调整canvas.copymode,用不同的mode再画一次
      

  8.   

    To: u2m(UpToMe)你的代码我试过了,那是TForm的Canvas上输出文字,用self.Repaint是可以。
    如果是一个TImage的Canvas.那段肯定不行啦!如下面的代码:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      image1.Canvas.TextOut(100,100,'I love Delphi!');
      image1.Canvas.TextOut(200,200,'I love Delphi!');end; procedure TForm1.Button2Click(Sender: TObject);
    begin
        image1.Repaint;
    end;肯定是不行的!
      

  9.   

    用Image.Canvas.FillRect方法呢?试过没有?
      

  10.   

    试过了!如果我的Image上已经着色了.用FillRect留下了一个方框!我需要的是只能清除掉汉字,而不能修改Canvas的背景等!
      

  11.   

    To: eliphe(eliphe Alotus) 这个思路可以一试!呵呵
      

  12.   

    我在你认为不可以的方法中找到一个精确到每个象素的办法你看可以吗?
    全局变量s:='你好呀!可以把我抹除吗?..............................................'
    然后用;image1.canvas.textout(80,80,s);显示在image1上边
    抹去就用下边的精确方法;
    procedure TForm1.Button2Click(Sender: TObject);
    var
     j, i:integer;
    begin
      i:=image1.Canvas.TextWidth(s);
      s:='';
      for j:=1 to i do
      begin
       s:=s+' ';
      end;
      image1.Canvas.TextOut(80,80,s);
    end;
      

  13.   

    问题解决了,(最笨的方法也是最好用的方法---- 用 eliphe(eliphe Alotus)  的办法
    )开始散分!同时谢谢各位大虾!呵呵