...sólo un apunte a lo comentado; En caso de ańadir la unit clipbrd al uses ya no hace falta crear la variable del tipo TClipBoard, ya que la propia clase devuelve un objeto al intentar accederlo (tiene una función que lo crea si no existe); Así que el código se puede quedar en:
Código Delphi
[-]
uses
ClipBrd;
procedure TForm1.Button1Click(Sender: TObject);
var
s: string;
i: integer;
begin
i := ListBox1.ItemIndex;
if i > -1 then
begin
s := ListBox1.Items[i];
Clipboard.SetTextBuf(PChar(s));
Clipboard.AsText(s);
end;
end;