定义了一个过程,目的:已知一个RichEdit的句柄,从剪贴板往一个RichEdit上粘贴文字,但是总出错,请给检查一下:
Procedure AddMyText(Rich:hwnd);  //Rich:RichEdit的句柄 
Const
    sTmp='dsfdsfsdaf';
Var
  hMem:HGLOBAL;
   pStr:LPTSTR;
Begin
  hMem := GlobalAlloc(GHND Or GMEM_SHARE, sizeof(sTmp));
  pStr := GlobalLock(hMem);
  lstrcpy(pStr, sTmp);
  GlobalUnlock(hMem);
  OpenClipboard(rich);
  EmptyClipboard();
  SetClipboardData(CF_UNICODETEXT, hMem);  //-----=====出错!!!!!
  CloseClipboard();
  GlobalFree(hMem);
  SendMessage(Rich, WM_PASTE, 0, 0);
end;
OS: Win2kServer

解决方案 »

  1.   

    <<hMem := GlobalAlloc(GHND Or GMEM_SHARE, sizeof(sTmp));
    hMem := GlobalAlloc(GHND Or GMEM_SHARE, Length(sTmp)+1);楼主,用这么多Api干什么?把简单的问题搞得这么复杂,I 服了 U!
      

  2.   

    谢谢bottom兄为我说话.感谢。二十天前还是一个小三角的,一晃马上五个了,呵呵,相对我这种菜鸟水平的人而言,这种速度算是比较快的了,做梦都想着哪一天快点升星啊:)楼主,你说的话好像我赚到便宜似的。你这个问题发了二十分钟了,没有人回答,如果我也像基础类的那个人说RichEdit1.PasteFromClipboard;楼主你的问题能解决吗?我不反对蹭分,但是大部分的分数应该要给主要答题人,这是论坛默认的规则,也是对答题者继续答题的一种精神鼓励和动力。我倒不是特别在乎你的10分,只是要教会你学会换位思考。
      

  3.   

    ^_^,fim(镇江DJ)(DJ=DelphiJava)  兄说的对!小弟别无他意,唯有感谢!
      

  4.   

    ClipBorad的AsText方法是一样可以的
    看Help就知道了