如何输入在image中输入文本?(40分)

  • 主题发起人 主题发起人 gigglegile
  • 开始时间 开始时间
G

gigglegile

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个画图程序,想要在image中输入文字,请问如何实现?(就是windows自带的画图中的输入文字的功能一样),分都给你们了
 
Image1.Canvas.TextOut(10, 10, 'hello');
 
我的意思是实现动态输入文字!
 
加一个文本框有它上面。当文本框失去焦点时,就把它free.
再>
Image1.Canvas.TextOut(10, 10, 'hello');
 
能够想windows自带的画图中的输入文字的功能一样!
 
我的方法是:
加一个文本框有它上面,在画图程序要输入文字的地方。当它失去焦点的时候,就用TextOut函数画图,画文本的内容。
或者,自己直接在后台建立一个字符串,动态更新绘图。
 
简单!
1. 需要一个Editor,作为输入!
2. Editor key press 为Enter后,将Text 写到 Image上,(有点技巧。。。,位置要跟Editor的一致,如果Image包含图片,Image的canvas是只读的,)。
-----------
其实做这样的功能,我建议你用PaintBox取代Timage。。。。。


 
只能麻烦你去处理WM_CHAR消息了. 原理就是你在用户选择了写字功能时, 在其MOUSE的座标处画一个线框, 做为输入框, 然后开始处理WM_CHAR, 每得一个输入,就把这个字加入一个之串之后, 并在框的范围里重画那个字串, 就是textout了. 如果用户输入了退格之类的编辑键, 相应的修整字串, 然后重画之.
反正画笔就是这样做的, 你看着办吧.
 
1.动态生成一个Memo大小、位置与选定区域相同,贴在TImage前面,供用户编辑;
2.失去焦点时,取回文本,删除或隐藏此Memo;
3.画文本到TImage上.
VCL自己就是么干的,包括许多控件也如法泡制。只不过它们多用自从Edit继承的编辑器,第一个能数上的就是我们最常用的Object Inspector.
 
多人接受答案了。
 
后退
顶部