Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com **** >> Поместить/получить строку из буфера обмена (Заплатка к стандартным) Под Win2k попытка вставить русскую строку в Clipboard ClipBoard.AsText:='Проба' с последующей вставкой в Word'е показывает кракозябрики.. Расследование показало, что виноваты мелкомягкие (как обычно :) ) С целью нивелирования различий между всеми Win-платформами были написаны эти 2 ф-ции.. Принимают на вход/возвращают строку в Unicode - WideString.. но не надо беспокоиться, Дельфи сам вставит при необходимости конвертацию в/из AnsiString. Если платформа поддерживает уникод (NT), то используется этот формат, иначе вызываются стандартные процедуры/ф-ции. Удачи! Зависимости: ClipBrd Автор: Shaman_Naydak, shanturov@pisem.net Copyright: Shaman_Naydak Дата: 26 июня 2002 г. ***************************************************** } procedurePutStringIntoClipBoard(const
Str: WideString); var
Size: Integer; Data: THandle; DataPtr: Pointer; begin
Size := Length(Str); if
Size = 0 then
exit; if
not
IsClipboardFormatAvailable(CF_UNICODETEXT) then
Clipboard.AsText := Str else
begin
Size := Size shl
1 + 2; Data := GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, Size); try
DataPtr := GlobalLock(Data); try
Move(Pointer(Str)^, DataPtr^, Size); Clipboard.SetAsHandle(CF_UNICODETEXT, Data); finally
GlobalUnlock(Data); end
; except
GlobalFree(Data); raise
; end
; end
; end
; function
GetStringFromClipboard: WideString; var
Data: THandle; begin
if
not
IsClipboardFormatAvailable(CF_UNICODETEXT) then
Result := Clipboard.AsText else
begin
Clipboard.Open; Data := GetClipboardData(CF_UNICODETEXT); try
if
Data <> 0 then
Result := PWideChar(GlobalLock(Data)) else
Result := ''; finally
if
Data <> 0 then
GlobalUnlock(Data); Clipboard.Close; end
; end
; end
;