关于combobox paste,copy,cut的实现(30分)

  • 主题发起人 主题发起人 Donn
  • 开始时间 开始时间
D

Donn

Unregistered / Unconfirmed
GUEST, unregistred user!
sendmessage(ComboBox1.handle,WM_Paste,0,0)
没有贴在光标所在处,而是在combobox的首位.
用于其他tcustomedit组件时没此问题.
请问如何解决.
 
TCombobox并不是tcustomedit.
 
如果要实现它,可以这样做:
var pastestart:integer;
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
pastestart:=Combobox1.SelStart;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if not ComBox1.Focused then
ComboBox1.SelStart:=pastestart;
sendmessage(ComboBox1.handle,WM_Paste,0,0);
end;

 
顺便再提一句,当ComboBox.style为csDropDownList时,
WM_Copy,WM_Paste,WM_Cut,WM_Clear等消息将无效。
 
如果只是想单一完成P,C,C这三个操作那容易的很,不必进行
SendMessage(),
COPY只是它的内容,用TEXT属性复制就能完成;
CUT类似,不过删一个节点,但一般来说,COMBOBOX的节点是不应该
开放增删的,非要增也容易,直接ADD就是粘贴了,删除用DELETE嘛。
如果想与剪切板相关联,只需要将这些得到的数据贴到那里就OK了。
 
请您结束问题或继续讨论!
 
多人接受答案了。
 
后退
顶部