SynEdit: open and close clipboard explicitly to write multiple formats.

git-svn-id: trunk@37705 -
This commit is contained in:
martin 2012-06-20 13:42:03 +00:00
parent 8e677477d9
commit 15bf1e966f

View File

@ -1285,12 +1285,19 @@ end;
function TSynClipboardStream.WriteToClipboard(AClipboard: TClipboard): Boolean;
begin
if FIsPlainText and (FText <> '') then begin
AClipboard.AsText:= FText;
if not AClipboard.HasFormat(CF_TEXT) then
raise ESynEditError.Create('Clipboard copy operation failed: HasFormat');
AClipboard.Open;
try
if FIsPlainText and (FText <> '') then begin
AClipboard.AsText:= FText;
end;
Result := AClipboard.AddFormat(ClipboardFormatId, FMemStream.Memory^, FMemStream.Size);
finally
AClipboard.Close;
end;
Result := AClipboard.AddFormat(ClipboardFormatId, FMemStream.Memory^, FMemStream.Size);
{$IFDEF SynClipboardExceptions}
if not AClipboard.HasFormat(CF_TEXT) then
raise ESynEditError.Create('Clipboard copy operation failed: HasFormat');
{$ENDIF}
end;
procedure TSynClipboardStream.Clear;