如何用SENDMESSAGE在TRICHEDIT中增加一行文字,相当于Lines.add(50分)

  • 主题发起人 主题发起人 sandal
  • 开始时间 开始时间
S

sandal

Unregistered / Unconfirmed
GUEST, unregistred user!
如题.<br>求教!!!!
 
var<br>&nbsp; p:pchar;<br>begin<br>&nbsp;p:='abc';<br>SendMessage(memo1.Handle,wm_settext,0,longint(p));<br>end;<br>
 
TO: ugvanxk &nbsp;我要的是增加一行,即在原有资料的末行的下一行填资料。
 
哪位大富翁来JIU命呀?
 
实在没办法就显取得原来的,在加一行上去
 
刷新也是问题呀<br>
 
看看RICHEDIT.PAS。<br><br>RICHEEDIT用到的消息都定义在里面。
 
//在RichEdit1中增加一行,内容是Edit1的内容<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; cr: TCharRange;<br>&nbsp; s: String;<br>begin<br>&nbsp; cr.cpMin := Length(RichEdit1.Lines.Text) + 1;<br>&nbsp; cr.cpMax := cr.cpMin;<br>&nbsp; s := #13#10 + Edit1.Text + #13#10;<br>&nbsp; SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, LongInt(@cr));<br>&nbsp; SendMessage(RichEdit1.Handle, EM_REPLACESEL, 1, LongInt(PChar(s)));<br>&nbsp; //上面一句中,1表示操作完成后可以按Ctrl+Z来撤销<br>&nbsp; //如果为0,则不能撤销<br>end;<br>
 
需要包含RichEdit.pas单元
 
TCharRange;<br>需要USES 那个文件,TKS!
 
use RichEdit;
 
<br>&nbsp;s := #13#10 + Edit1.Text + #13#10;<br>&nbsp; &nbsp; &nbsp; // =====这上不要它!
 
i:=Length(RhEdt1.Lines.Text);<br>&nbsp;sMess:=Edit1.text+'('+Timetostr(now)+')';<br>&nbsp;RhEdt1.Lines.add(sMess);<br>&nbsp;RhEdt1.SelStart:=i;<br>&nbsp;RhEdt1.SelLength:=length(sMess);<br>&nbsp;RhEdt1.SelAttributes.Color:=clBlack;<br>&nbsp;RhEdt1.SelStart:=i+length(sMess);<br>上面代码错在哪里?为何着色时总是错?设计目的是自已加进去的文字变成黑色,从别<br>处接收到的文字用原色(兰色)。
 
多人接受答案了。
 
后退
顶部