// クリップボードへのテキストコピーです

procedure toClip(const s:string);
var size:Integer;
var dh: THandle;
var dt:PChar;
begin
size:=Length(s)+1;
    EmptyClipboard;
   OpenClipBoard(0);
 try
  dh := GlobalAlloc(GMEM_MOVEABLE+GMEM_DDESHARE, size);
  try
   dt := GlobalLock(dh);
   try
    Move(PChar(s)^, dt^, size);
    SetClipboardData(CF_TEXT, dh);
   finally
    GlobalUnlock(dh);
   end;
  except
   GlobalFree(dh); //エラー時のみ
  end;
 finally CloseClipboard; end;
end;