小菜菜同学 发表于 2005-4-29 10:35

Form->Canvas->TextOut与Label->Caption的区别

<P>Form1-&gt;Canvas-&gt;TextOut与Label1-&gt;Caption在坐标上的区别</P>
<P>前者在LEFT〈100,TOP〈100左右,时反映的不是真的坐标,不知道怎么回事?</P>
<P>如String str="";
str=str+"x="+IntToStr(X)+"  "+"y="+IntToStr(Y);
Form1-&gt;Canvas-&gt;TextOut(20,20,str);
Label1-&gt;Caption="x="+IntToStr(X)+"  "+"y="+IntToStr(Y);</P>
<P>两者LEFT〈100,TOP〈100左右,数值不一样。且若没有第四行,第二行写成str=str+"x="+X+"  "+"y="+Y;也可。不知道什么原因?</P>
[此贴子已经被作者于2005-4-29 10:36:51编辑过]

ilikenba 发表于 2005-4-29 10:52

这里的变量X,Y是什么意思?

小菜菜同学 发表于 2005-4-29 11:01

呵呵,没写清楚,是鼠标的坐标。(MouseMove)

ilikenba 发表于 2005-4-29 11:26

<P>Note: TextOut does not erase the background before writing Text. To erase the background first, use the FillRect method.</P><P>上面是TextOut的一个注释!意思是TextOut方法在写之前是不能自动清除背景的!为了清除需要使用FillRect方法!所以可以将代码改成:</P><P>String str="";
str=str+"x="+IntToStr(X)+"  "+"y="+IntToStr(Y);
Form1-&gt;Canvas-&gt;FillRect(Rect(0,0,100,100));
Form1-&gt;Canvas-&gt;TextOut(20,20,str);
Label1-&gt;Caption="x="+IntToStr(X)+"  "+"y="+IntToStr(Y);</P><P>这样就没有问题了!</P>

小菜菜同学 发表于 2005-4-29 11:52

<P>Form1-&gt;Canvas-&gt;FillRect(Rect(0,0,100,100));</P><P>是清除(0,0),(100,100)的屏幕吗?</P>

ilikenba 发表于 2005-4-29 11:59

对!我这里只是随便写的大小,你可以改一下!
页: [1]
查看完整版本: Form->Canvas->TextOut与Label->Caption的区别