Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ Clipboard has methods GetComponent and SetComponent but we need to stream multiple components to the clipboard to include copy paste type of feature. Die Zwischenablage hat die Methoden GetComponent and SetComponent aber wir wollen mehrere Komponenten in die Zwischenablage speichern und wieder auslesen. } procedureCopyStreamToClipboard(fmt: Cardinal; S: TStream); var
hMem: THandle; pMem: Pointer; begin
S.Position := 0; hMem := GlobalAlloc(GHND or
GMEM_DDESHARE, S.Size); if
hMem <> 0 then
begin
pMem := GlobalLock(hMem); if
pMem <> nil
then
begin
S.Read
(pMem^, S.Size); S.Position := 0; GlobalUnlock(hMem); Clipboard.Open; try
Clipboard.SetAsHandle(fmt, hMem); finally
Clipboard.Close; end
; end
{ If } else
begin
GlobalFree(hMem); OutOfMemoryError; end
; end
{ If } else
OutOfMemoryError; end
; { CopyStreamToClipboard } procedure
CopyStreamFromClipboard(fmt: Cardinal; S: TStream); var
hMem: THandle; pMem: Pointer; begin
hMem := Clipboard.GetAsHandle(fmt); if
hMem <> 0 then
begin
pMem := GlobalLock(hMem); if
pMem <> nil
then
begin
S.Write
(pMem^, GlobalSize(hMem)); S.Position := 0; GlobalUnlock(hMem); end
{ If } else
raise
Exception.Create('CopyStreamFromClipboard: could not lock global handle ' + 'obtained from clipboard!'); end
; { If } end
; { CopyStreamFromClipboard }