Еще один вопрос о буфере обмена:

Когда текст помещается в буфер обмена, он часто идет несколькими способами, обычно с форматированием информации или без нее. Я хочу знать следующее - как изменить текст в буфере обмена без изменения форматирования. Другими словами, я хочу изменить текстовую сторону вещей, но сохранить форматирование точно таким же.

Это снова для моего приложения «TextScrubber», где я хочу удалить разрывы строк из текста в буфере обмена, но я не хочу изменять информацию о формате этого текста.

Я надеюсь, что мне не придется «грубо форсировать» его, перебирая все существующие форматы, сохраняя каждый, а затем повторно вставляя их после очистки текста.

1
Nick Hodges 19 Июл 2009 в 20:32

3 ответа

Лучший ответ

Я думаю, что "грубая сила" - это именно то, что вам нужно сделать - согласно MSDN Win32 API иначе сделать нельзя.

7
Andrew Y 19 Июл 2009 в 20:47

Ага, Ник. Я думаю, что в этом случае вы остановитесь на уже предложенном решении. Буфер обмена - одна из областей, которая на протяжении многих лет не привлекала особого внимания в отделе усовершенствований. Вероятно, это потому, что он действительно должен быть простым, повсеместным и функциональным.

3
Allen Bauer 20 Июл 2009 в 10:35

Почему бы просто не загрузить из буфера обмена, изменить текст и записать обратно в буфер обмена?

Может быть, что-то простое, например TBin Clipboard Сергея Ткаченко: http://delphi32.org/vcl/2889/

Ответ Эрика Розенбергера на « Невозможно передать HTML-формат туда и обратно в буфер обмена "тоже может пригодиться.

0
Community 23 Май 2017 в 15:19
Это то, о чем он говорил о «грубой силе». Сохраните его, почистите и снова вставьте в буфер обмена.
 – 
Rob Kennedy
19 Июл 2009 в 22:49