Когда я перевёл свой проект с Delphi на Lazarus, перестали работать функции вставки из клипбоарда. Когда срабатывает функция TClipboard.GetAsText, ошибка происходит на это функции TClipboard.GetFormat:
Result:=false;
if Stream=nil then exit;
if FormatID=0 then exit;
if CanReadFromCache then begin
if Assigned(FOnRequest) then begin
FOnRequest(FormatID,Stream);
Result:=true;
end else begin
i:=IndexOfCachedFormatID(FormatID,false);
if i<0 then
Result:=false
else begin
FData[i].Stream.Position:=0;
if Stream is TMemoryStream then
TMemoryStream(Stream).SetSize(Stream.Position+FData[i].Stream.Size);
Stream.CopyFrom(FData[i].Stream,FData[i].Stream.Size);
Result:=true;
end;
end;
end else begin
// not the clipboard owner -> request data
Result:=ClipboardGetData(ClipboardType,FormatID,Stream);
end;
Здесь IndexOfCachedFormatID возвращает -1 и далее процедура обрывается. Как это можно исправить? Может быть есть другие библиотеки для поддержки клипбоарда, если стандартная не работает?