ClipBoard.SetTextBuf(Pchar(fieldname));
  ExcelWorksheet.Paste;
程序跟踪fieldname为正常字符,但是经过剪贴板之后粘贴出来的字符为非法字符。
为什么,以前我也是这么做的,不会出现这样的问题。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var s:TClipboard;
    begin
      s:=tclipboard.Create ;
      s.SetTextBuf(pchar('asdfasdf'));
      //s.Free ;
    end;
    没有问题的啊,我用了,可能是变量的原因;你用固定字符串看看
      

  2.   

    我这里查看也没什么问题呀!Win2K!
      

  3.   

    结果如下:
    ÈÕÆÚ º½°àºÅ »õµ¥ºÅ ÊÕ»õÈË ¼þÊý ÖØÁ¿ µ½¸¶¿î ÅÉËÍ·Ñ
    1 2002Äê20ÔÂ03ÈÕ 5545 545 12 12
    2 2002Äê20ÔÂ15ÈÕ jhsss 5454 io 89 7 12 12
    3 2002Äê20ÔÂ03ÈÕ 7 l;jasdgj kj 6 6 7 5
    4 2002Äê20ÔÂ01ÈÕ fdf skdhf ljsdfl 2 2 45 45
      

  4.   

    我怀疑是Unicode的问题,贴进去的非Unicode,取出来时变成了Unicode。
      

  5.   

    你试一下这个:
    ff:WideString;  ff := fieldname;
      ClipBoard.SetTextBuf(PChar(ff));另外你的ExcelWorksheet.Paste是否是往Excel的一个Worksheet里面贴文本?
      

  6.   

    : TechnoFantasy(www.applevb.com) 是呀,但是不仅贴往EXCEL,贴往文本文件也是乱码。(其他机器一切正常。)