CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

Memo/RichEdit 问题

楼主willingsilly()2002-05-26 09:04:02 在 Delphi / VCL组件开发及应用 提问

怎么在Memo/RichEdit左边显示行号?(如ConTxt/utralEdit) 问题点数:100、回复次数:10Top

1 楼lxpbuaa(桂枝香在故国晚秋)回复于 2002-05-26 09:16:55 得分 10

procedure   TForm1.Button1Click(Sender:   TObject);  
  var   I:   Integer;  
  begin  
      for   I   :=   1   to   Memo1.Lines.Count   do  
  0A     begin  
          Memo1.Lines.Strings[I-1]   :=   IntToStr(I)   +   #9   +   Memo1.Lines.Strings[I-1];  
  0A     end;  
  end;  
   
   
  —————————————————————————————————  
  MaximStr   :=   '宠辱不惊,看庭前花开花落,去留无意;  
                            毁誉由人,望天上云卷云舒,聚散任风。';  
  if   Not   Assigned(I)   then  
      I   :=   TI.Create(Nil);  
  I.Maxim   :=   MaximStr;  
  I.Explain   :=   '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';  
  I.Desire   :=   '加不加分随你';  
  —————————————————————————————————  
   
   
           
  Top

2 楼willingsilly()回复于 2002-05-26 09:22:17 得分 0

这样搞,编辑时那不就乱了!  
  可能我没说清楚,我的意思是在Memo/RichEdit的left处显示,但不含在Text字符串属性里(像滚动条一样)Top

3 楼winglion(铁石)回复于 2002-05-26 09:46:04 得分 10

就是,   willingsilly(偷溜)   你自己也清楚,可以用一个panel或什么地放在  
  memo左边,行号自己写上。Top

4 楼willingsilly()回复于 2002-05-26 09:51:51 得分 0

试过,高度搞不准,且捕捉不到滚动条的滚动消息(是了,怎么得到?),怎么改变行号?Top

5 楼outer2000(天外流星)回复于 2002-05-26 10:02:01 得分 10

有个偷懒的办法,可以在MEMO左边放一个LISTBOX,只要把字体等设的和MEMO一样就可以在里面写行号了,高度一致。Top

6 楼willingsilly()回复于 2002-05-26 10:24:24 得分 0

真高!!  
  又怎么捕捉滚动条的滚动消息?Top

7 楼eulb(执子之手,与子偕老)回复于 2002-05-26 10:36:19 得分 10

捕获滚动消息:  
   
  procedure   WMHScroll(var   Message:   TWMHScroll);   message   WM_HSCROLL;  
  procedure   WMVScroll(var   Message:   TWMVScroll);   message   WM_VSCROLL;Top

8 楼willingsilly()回复于 2002-05-26 10:50:39 得分 0

谢了,下次结分Top

9 楼willingsilly()回复于 2002-06-03 17:17:56 得分 0

捕获滚动消息:  
  procedure   WMHScroll(var   Message:   TWMHScroll);   message   WM_HSCROLL;  
  procedure   WMVScroll(var   Message:   TWMVScroll);   message   WM_VSCROLL;  
  没用啊!捉不到!Top

10 楼agui(阿贵: 高级图形用户界面)回复于 2002-06-04 11:20:36 得分 60

是的,用  
  procedure   WMHScroll(var   Message:   TWMHScroll);   message   WM_HSCROLL;  
  procedure   WMVScroll(var   Message:   TWMVScroll);   message   WM_VSCROLL;  
  捕捉不到Memo的消息,只能捕捉到Form的滚动消息。  
   
  可以利用TControl.WindowProc(参考Delphi帮助)捕捉:  
  TForm1   =   class(TForm)  
  ...  
  private  
      FOldWinProc:   TWndMethod;  
   
      procedure   NewWinProc(var   Msg:   TMessage);  
  end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      FOldWinProc   :=   Memo1.WindowProc;   //   保存原来的消息处理方法  
      Memo1.WindowProc   :=   NewWinProc;     //   用新的代替  
  end;  
   
  procedure   TForm1.FormDestroy(Sender:   TObject);  
  begin  
      Memo1.WindowProc   :=   FOldWinProc;   //   还原消息处理方法  
  end;  
   
  procedure   TForm1.NewWinProc(var   Msg:   TMessage);  
  begin  
      FOldWinProc(   Msg   );   //   选择原来的处理  
      //   判断是否滚动消息  
      if   Msg.Msg=WM_VSCROLL   then  
      begin  
          //   进行你的动作,如:ListBox.Perform(   Msg.Msg,   Msg.WParam,   Msg.LParam   );  
      end;  
  end;  
  Top

相关问题

  • 关于richedit和memo的问题
  • RichEdit
  • RichEdit
  • RICHEDIT
  • 关于RICHEDIT、MEMO和FINDTEXT的一个问题??
  • 请问怎样使richedit、edit、memo等控件的背景透明?
  • RichEdit/Memo怎么实现对框定文字添加标签
  • Memo如何在程序中给它的文本加回车&Memo和RichEdit的区别?两个问题
  • 请问如何用memo实现查找,memo没有FindText()方法,只有RichEdit才有?
  • 如何使Memo摆脱64k的限制,不要RichEdit,最后40分了

关键词

  • 消息
  • memo
  • 滚动
  • foldwinproc
  • 行号
  • richedit
  • newwinproc
  • twmhscroll
  • twmvscroll
  • wmhscroll

得分解答快速导航

  • 帖主:willingsilly
  • lxpbuaa
  • winglion
  • outer2000
  • eulb
  • agui

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo