Delphi Clipboard[2] SetTextBuf、GetTextBuf、AsText -文字操作
阿新 • • 發佈:2022-04-14
{該文首發於部落格園 滔Roy,無須授權即可轉發,請自覺保留頭部申明}
Delphi Clipboard[2] SetTextBuf、GetTextBuf、AsText -文字操作
Clipboard是全域性類函式
1、AsText 屬性(允許從剪貼簿放置和檢索文字)
property AsText: string read GetAsText write SetAsText; function TClipboard.GetAsText: string; var Data: THandle; begin Open; Data := GetClipboardData(CF_TEXT); try if Data <> 0 then Result := PChar(GlobalLock(Data)) else Result := ''; finally if Data <> 0 then GlobalUnlock(Data); Close; end; end; procedure TClipboard.SetAsText(const Value: string); begin SetBuffer(CF_TEXT, PChar(Value)^, Length(Value) + 1); end;
使用示例:
Clipboard.AsText:='滔Roy ' + DateTimeToStr(Now); //傳值到剪貼簿
ShowMessage(Clipboard.AsText); //輸出剪貼簿的內容
2、SetTextBuf (將控制代碼以給定格式放置在剪貼簿上)
procedure TClipboard.SetTextBuf(Buffer: PChar);
begin
SetBuffer(CF_TEXT, Buffer^, StrLen(Buffer) + 1);
end;
使用示例:
Clipboard.SetTextBuf(PChar('滔Roy ' + DateTimeToStr(Now)) ); //傳值到剪貼簿 ShowMessage(Clipboard.AsText); //輸出剪貼簿的內容
3、GetTextBuf //檢索、取回緩衝區的文字資料
function TClipboard.GetTextBuf(Buffer: PChar; BufSize: Integer): Integer; var Data: THandle; begin Open; Data := GetClipboardData(CF_TEXT); if Data = 0 then Result := 0 else begin Result := StrLen(StrLCopy(Buffer, GlobalLock(Data), BufSize - 1)); GlobalUnlock(Data); end; Close; end;
示例:
var
PArr:array[0..1024] of Char;
begin
Clipboard.AsText:='滔Roy ' + DateTimeToStr(Now); //傳值到剪貼簿
Clipboard.GetTextBuf(PArr,Length(PArr)); //獲取緩衝區的內容
ShowMessage(PArr); //輸出內容
end;
建立時間:2022.04.14 更新時間: