Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как скопировать содержимое строки в буфер обмена?

01.01.2007
procedure CopyStringToClipboard(s: string);
var
  hg
: THandle;
  P
: PChar;
begin
  hg
:=GlobalAlloc(GMEM_DDESHARE or GMEM_MOVEABLE, Length(S)+1);
  P
:=GlobalLock(hg);
 
StrPCopy(P, s);
 
GlobalUnlock(hg);
 
OpenClipboard(Application.Handle);
 
SetClipboardData(CF_TEXT, hg);
 
CloseClipboard;
 
GlobalFree(hg);
end;

Взято с https://delphiworld.narod.ru


uses 
 
ClipBrd;
 
procedure
StrToClipbrd(StrValue: string);
var
  S
: string;
  hMem
: THandle;
  pMem
: PChar;
begin
  hMem
:= GlobalAlloc(GHND or GMEM_SHARE, Length(StrValue) + 1);
 
if hMem <> 0 then
 
begin
    pMem
:= GlobalLock(hMem);
   
if pMem <> nil then
   
begin
     
StrPCopy(pMem, StrValue);
     
GlobalUnlock(hMem);
     
if OpenClipboard(0) then
     
begin
       
EmptyClipboard;
       
SetClipboardData(CF_TEXT, hMem);
       
CloseClipboard;
     
end
     
else
       
GlobalFree(hMem);
   
end
   
else
     
GlobalFree(hMem);
 
end;
end;
 
function GetStrFromClipbrd: string;
begin
 
if Clipboard.HasFormat(CF_TEXT) then
   
Result := Clipboard.AsText
 
else
 
begin
   
ShowMessage('There is no text in the Clipboard!');
   
Result := '';
 
end;
end;
 
 
// write "Hallo" to the clipboard and read it back.
 
procedure TForm1
.Button1Click(Sender: TObject);
begin
 
StrToClipbrd('Hallo');
 
ShowMessage(GetStrFromClipbrd);
end;
 
https://delphiworld.narod.ru/

DelphiWorld 6.0