强贴,100分!TEdit目前只能显示单种颜色的字体,如何对TEdit进行改造,可以支持不同字体和颜色??
解决方案 »
- 关于在SQL语句中使用 string型的问题!
- 以前搞java的现在要开始做delphi
- 调用DLL中函数产生Invalid pointer Opreation 问题(不是返回string)
- 我在新开的线程中传入了个Timer,可我只要鼠标一动Timer就不动了,这是怎么回事,该如何解决?
- 请问三层分布式数据库要用到哪些控件?
- 很急的問題﹐大家看看﹐關于delphi+excel
- *.rtf文件直接转换为*.txt文件?
- 郁闷
- 入门问题:用Delphi怎样动态生成控件?
- ***********请问如何在窗体外的屏幕上画一个点或输出一段文字?***********!!!!!!!!!!!!!!!!!!!!!!!!!!!!?????????????????????
- 工作郁闷
- 大家看看这段代码错在哪里?
要不你可以自己从一个TCustomControl继承下来写一个。
要不用RichEdit,来实现
var
tmpCanvas: TCanvas;
begin
tmpCanvas := TCanvas.Create;
tmpCanvas.Handle := GetDC(Edit1.Handle);
tmpCanvas.Font.Color := clRed;
tmpCanvas.TextOut(0, 0, '我');
tmpCanvas.Font.Color := clGreen;
tmpCanvas.TextOut(10, 0, '是');
tmpCanvas.Free;
end;
这也太假了吧,太难控制了
你得重画一次,否则就没有了我想说的是,这样做也是可以达到一种效果,呵呵对于字符的位置,楼主可以用画的GetTextHeight方法来得到
宽度也有相应的方法如果楼主想写一个好一点的,那跟
linzhengqun(风。爱的翔舞)说的一样,还不如从TCustomControl继承一个下来
所以建议楼主用RichEdit吧,也可以做成和Edit一样,只能输入一行数据的。