uses Clipbrd;//引用剪贴板单元;//按行倒排剪贴板文本中的字符: procedure TForm1.Button1Click(Sender: TObject); var sl:TStringList; s,tmp:widestring; i,j:integer; begin if Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT) then begin if length(ClipBoard.AsText)>0 then //如果剪贴板有文本内容 begin sl:=TStringList.Create; try //取剪贴板文本内容: s:=ClipBoard.AsText; tmp:=''; for i:=1 to length(s) do begin tmp:=tmp+s[i]; if s[i]=#13 then begin sl.Append(tmp); tmp:=''; end; end; if tmp<>'' then sl.Append(tmp); //按行倒排字符: s:=''; for i:=0 to sl.Count-1 do begin tmp:=sl.Strings[i]; for j:=length(tmp) downto 1 do s:=s+tmp[j]; s:=s+#13#10; end; //把处理过的字符串复制回剪贴板 Clipboard.SetTextBuf(PChar(AnsiString(s))); memo1.Text:=s;//观察剪贴板的内容 finally sl.Free; end; end; end; end;
procedure TForm1.Button1Click(Sender: TObject);
var sl:TStringList;
s,tmp:widestring;
i,j:integer;
begin
if Clipboard.HasFormat(CF_TEXT) or Clipboard.HasFormat(CF_OEMTEXT) then
begin
if length(ClipBoard.AsText)>0 then //如果剪贴板有文本内容
begin
sl:=TStringList.Create;
try
//取剪贴板文本内容:
s:=ClipBoard.AsText;
tmp:='';
for i:=1 to length(s) do begin
tmp:=tmp+s[i];
if s[i]=#13 then begin
sl.Append(tmp);
tmp:='';
end;
end;
if tmp<>'' then sl.Append(tmp);
//按行倒排字符:
s:='';
for i:=0 to sl.Count-1 do begin
tmp:=sl.Strings[i];
for j:=length(tmp) downto 1 do s:=s+tmp[j];
s:=s+#13#10;
end;
//把处理过的字符串复制回剪贴板
Clipboard.SetTextBuf(PChar(AnsiString(s)));
memo1.Text:=s;//观察剪贴板的内容
finally
sl.Free;
end;
end;
end;
end;