CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

简单问题,如何在tmemo中知道自己所在的行数和列数

楼主xch28(①日蚀)2003-06-01 16:33:49 在 Delphi / VCL组件开发及应用 提问

请告诉在那个事件中写,怎么写。谢谢,在线等,在线结分 问题点数:50、回复次数:5Top

1 楼xch28(①日蚀)回复于 2003-06-01 16:37:04 得分 0

up一下。Top

2 楼feng93017(Edge)回复于 2003-06-01 18:02:22 得分 0

Delphi中有控件MEMO,当使用应控件输入内容或编辑时,如何确定光标当前的位置呢?这时就可以调用WINDOWS   API中的EM_LINEFROMCHAR和EM_LINEINDEX消息来确定MEMO控件中光标的当前行和列,具体调用方法的过程如下:  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
   
  var  
   
  LineNum:longint;  
   
  CharsBeforeLine:longint;  
   
  begin  
   
  LineNum   :=   SendMessage(Memo1.Handle,EM_LINEFROMCHAR,  
   
              Memo1.SelStart,0);  
   
  CharsBeforeLine:=SendMessage(Memo1.Handle,EM_LINEINDEX,  
   
              LineNum,0);  
   
  Label1.Caption:='Line:   '+IntToStr(LineNum   +   1);  
   
  Label2.Caption:='Position:   '+IntToStr((Memo1.SelStart   -  
   
                     CharsBeforeLine)+1);  
   
  end;  
   
  //另一种方法  
   
  定义变量iLine:   Integer;  
   
  {   使用em_LineFromChar消息   }  
   
  iLine   :=   Memo1.Perform(em_LineFromChar,   $FFFF,   0);  
   
  {   第一行为0   }  
   
  messageDlg('行号:   '   +   IntToStr(iLine),   mtInformation,[mbOK],   0   )   ;  
  Top

3 楼xch28(①日蚀)回复于 2003-06-02 08:23:02 得分 0

为什么都不行?  
  第一个总是1,1,  
  第二个方法总是0?  
  Top

4 楼findcsdn(searchcsdn)回复于 2003-06-02 09:15:43 得分 50

procedure   TForm1.Memo1KeyUp(Sender:   TObject;   var   Key:   Word;  
      Shift:   TShiftState);  
  var  
      col,   lin,   str:   integer;  
  begin  
      SendMessage(memo1.Handle,   EM_GETSEL,   0,   Longint(@str));  
      lin   :=   SendMessage(memo1.Handle,   EM_LINEFROMCHAR,   str,   0);  
      col   :=   SendMessage(memo1.Handle,   EM_LINEINDEX,   lin,   0);  
      col   :=   str   -   col;  
      caption   :=   inttostr(lin)   +   '   '   +   inttostr(col);  
  end;Top

5 楼xch28(①日蚀)回复于 2003-06-04 09:55:33 得分 0

cool   method,i   like:)Top

相关问题

  • 在Richtextbox控件中如何获得光标的所在的行数和列数
  • 如何在状态栏上显示光标所在的行数和列数?
  • 简单问题,如何在datawindow中写一个expression求一列数据的和?
  • 得到 datagird 中其中一行,列数 简单问题在线等给分
  • 很简单:如何固定一个列数变化的表格中的一列的宽度?
  • 很简单的一个控制 datagrid 中某列数据显示的问题,大家帮忙看一下!
  • 验证列数据!
  • 已知一字段名,如何知道他在datagrid中所在的列数,不用for 语句尝试比较的方法。包涵,初学者
  • 如何正确的读取datagrid当前行的某一列数据(不是你们想象的那么简单哦)
  • 关于统计列数

关键词

  • 控件
  • linefromchar
  • memo
  • charsbeforeline
  • em
  • lineindex
  • iline
  • inttostr
  • lin
  • sendmessage

得分解答快速导航

  • 帖主:xch28
  • findcsdn

相关链接

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

广告也精彩

反馈

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