Difference between revisions of "Clipboard"

From Free Pascal wiki
Jump to navigationJump to search
Line 42: Line 42:
  
 
==Text==
 
==Text==
 +
 +
For use of simple text Clipboard offer property AsText which can be used for reading an writing plain text.
 +
 +
Writing text:
 +
<delphi>Clipboard.AsText := 'Hello clipboard!';</delphi>
 +
 +
Reading text:
 +
<delphi>ShowMessage('Clipboard content: ' + Clipboard.AsText);</delphi>
 +
 +
==Text oriented components==
 +
 +
Some visual components like TEdit, TMemo, TStringGrid, TLabeledEdit, TMaskEdit, TSpinEdit and TFloatSpinEdit have ability to select a part of contained text and offer additional functionality for handling clipboard operations on selected text.
 +
 +
<delphi>  procedure CopyToClipboard;
 +
  procedure CutToClipboard;
 +
  procedure PasteFromClipboard;</delpi>
  
 
==HTML source==
 
==HTML source==
Line 94: Line 110:
 
   Clipboard.Assign(Bitmap);
 
   Clipboard.Assign(Bitmap);
 
end;</delphi>
 
end;</delphi>
 +
 +
==Custom format==
 +
 +
==External links==
 +
 +
* [http://delphi.about.com/od/vclusing/a/tclipboard.htm Basic Clipboard Operations (Cut/Copy/Paste) using the TClipboard object]

Revision as of 12:57, 27 January 2012

Predefined types

TPredefinedClipboardFormat MIME type
pcfText text/plain
pcfBitmap image/bmp
pcfPixmap image/xpm
pcfIcon image/lcl.icon
pcfPicture image/lcl.picture
pcfObject application/lcl.object
pcfComponent application/lcl.component
pcfCustomData application/lcl.customdata
pcfDelphiText text/plain
pcfDelphiBitmap text/delphi.bitmap
pcfDelphiPicture Delphi picture
pcfDelphiMetaFilePict image/delphimetafilepict
pcfDelphiObject application/delphi.object
pcfDelphiComponent Delphi component
pcfKylixPicture image/delphi.picture
pcfKylixBitmap image/delphi.bitmap
pcfKylixDrawing image/delphi.drawing
pcfKylixComponent application/delphi.component

Text

For use of simple text Clipboard offer property AsText which can be used for reading an writing plain text.

Writing text: <delphi>Clipboard.AsText := 'Hello clipboard!';</delphi>

Reading text: <delphi>ShowMessage('Clipboard content: ' + Clipboard.AsText);</delphi>

Text oriented components

Some visual components like TEdit, TMemo, TStringGrid, TLabeledEdit, TMaskEdit, TSpinEdit and TFloatSpinEdit have ability to select a part of contained text and offer additional functionality for handling clipboard operations on selected text.

<delphi> procedure CopyToClipboard;

 procedure CutToClipboard; 
 procedure PasteFromClipboard;</delpi>

HTML source

<delphi>uses

 Clipbrd, ...;

procedure InsertHTMLSourceFromClipboard(Strings: TString); var

 Fid: TClipboardFormat
 Str: WideString;
 Stream: TMemoryStream;

begin

 Fid := Clipboard.FindFormatID('text/html');
 if Fid <> 0 then 
 try
   Stream := TMemoryStream.Create;
   if Clipboard.GetFormat(Fid, Stream) then 
   begin
     Stream.Position := 0;
     Str := PWideChar(Stream.Memory);
     Str[(Stream.Size div 2) + 1] := #0;
     Strings.Text := UTF8Encode(Str);
   end;
 finally
   Stream.Free;
 end;

end;</delphi>

Image

Load from clipboard

<delphi>uses

 Clipbrd, LCLIntf, LCLType, ...;

procedure LoadBitmapFromClipboard(Bitmap: TBitmap); begin

 if Clipboard.HasFormat(PredefinedClipboardFormat(pcfDelphiBitmap)) then
   Bitmap.LoadFromClipboardFormat(PredefinedClipboardFormat(pcfDelphiBitmap));
 if Clipboard.HasFormat(PredefinedClipboardFormat(pcfBitmap)) then
   Bitmap.LoadFromClipboardFormat(PredefinedClipboardFormat(pcfBitmap));

end;</delphi>

Save to clipboard

<delphi>uses

 Clipbrd, ...;

procedure SaveBitmapToClipboard(Bitmap: TBitmap); begin

 Clipboard.Assign(Bitmap);

end;</delphi>

Custom format

External links