forlazarus писал(а):Спешу сообщить, что можно закомментировать в unit RichMemo метод CutToClipboard:
Вносить изменения в исходники компонента очень плохая идея.
Во-первых после обновления эти изменения или затрутся или будет конфликт.
Во-вторых:
- Код: Выделить всё
//Note: RichMemo cannot use LCL TCustomEdit copy/paste/cut operations
// because there's no support for (system native) RICHTEXT clipboard format
// that's why Clipboard operations are moved to widgetset level
Т.е. операции с буфером перенесены на уровень набора виджетов, но проблема в том, что реализация есть только для Win32/64 и carbon.
Правильно будет сделать через наследника
- Код: Выделить всё
type
TRichMemoEx = class(TRichMemo)
public
procedureCopyToClipboard; override;
end;
Или же вообще тупо использовать Clipbrd
- Код: Выделить всё
uses
Clipbrd;
procedure TForm1.miCopyClick(Sender: TObject);
begin
if RichMemo.SelLength > 0 then
Clipboard.AsText := RichMemo.SelText;
end;
Добавлено спустя 9 минут 44 секунды:Re: [bugreport]Richmemo и CutToClipboard, CopyToClipboard failФорматирование конечно работать не будет ни в одном случае.
Если надо с форматированием, то надо или самому писать реализацию для gtk2 (через gtk_clipboard_set_with_data).
Хотя в принципе если копирование/вставка нужны только внутри самого приложения, то можно сделать костыль - складывать не в буфер обмена, а во временный экземпляр RichMemo...