Я исправил эту ошибку, изменив исходный код таким образом, чтобы данные буфера обмена сначала читались во временный TBitmap. TBitmap регистрируется как CF_PICTURE. Временное изображение затем назначалось полю и, поскольку оно также работает с изображениями, то и данным поля.
Все это потребует от вас изменений в исходном коде VCL, конкретно - в модуле DBCTRLS.PAS. Затем, естественно, это необходимо перекомпилить и пересобрать:
procedure TDBImage.PasteFromClipboard;varClipBrdBmp: TBitmap;beginClipBrdBmp := TBitmap.Create;if Clipboard.HasFormat(CF_BITMAP) and FDataLink.Edit thenbeginClipBrdBmp.Assign(Clipboard);Picture.Assign(ClipBrdBmp);end;ClipBrdBmp.Free;end; |
Это все. Проблема решена.
- Steve Flynn [000869]