把字符串从变量复制到剪贴板如何做?

解决方案 »

  1.   

     procedure   delcopy(AData:   string);   
      var   
          hMem:   THandle;   
          pMem:   PChar;   
      begin
      if adata<>'' then
      begin
          hMem   :=   GlobalAlloc(GHND   or   GMEM_SHARE,   Length(AData)   +   1);   
          if   hMem   <>   0   then   begin   
              pMem   :=   GlobalLock(hMem);   
              if   pMem   <>   nil   then   begin   
                  StrPCopy(pMem,   AData);   
                  GlobalUnlock(hMem);   
                  if   OpenClipboard(0)   then   begin   
                      EmptyClipboard;   
                      SetClipboardData(CF_TEXT,   hMem);   
                      CloseClipboard;   
                  end   
                  else   
                      GlobalFree(hMem);   
              end   
              else   
                  GlobalFree(hMem);   
          end;
          end;
      end;调用delcopy(变量);
      

  2.   

     procedure   delcopy(AData:   string);   
      var   
          hMem:   THandle;   
          pMem:   PChar;   
      begin
      if adata<>'' then
      begin
          hMem   :=   GlobalAlloc(GHND   or   GMEM_SHARE,   Length(AData)   +   1);   
          if   hMem   <>   0   then   begin   
              pMem   :=   GlobalLock(hMem);   
              if   pMem   <>   nil   then   begin   
                  StrPCopy(pMem,   AData);   
                  GlobalUnlock(hMem);   
                  if   OpenClipboard(0)   then   begin   
                      EmptyClipboard;   
                      SetClipboardData(CF_TEXT,   hMem);   
                      CloseClipboard;   
                  end   
                  else   
                      GlobalFree(hMem);   
              end   
              else   
                  GlobalFree(hMem);   
          end;
          end;
      end;调用delcopy(变量);