Перейти к содержанию
  • Регистрация
  • 0
Авторизация  
gateofdenied

Данные из ClipBoard с форматированием

Вопрос

Добрый день. 

Прошу помочь советом!

FMX

Интересует - как можно получить текст скопированный, к примеру, из браузера в буфер обмена с форматированием HTML. 

Т.е. не просто текст, а с цветом, шрифтом, подсветкой, и ссылками на фото, если они есть в тексте.  Это должно быть как исходный код HTML. И именно из буфера обмена.

Получить в хоть что-нибудь (String, Tmemo, Tedit и пр.. ) но в то, что идет в стандартной поставке. Платные RichEdit не подходят. 

И обязательно в FireMonkey

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0
19 минут назад, gateofdenied сказал:

Добрый день. 

Прошу помочь советом!

FMX

Интересует - как можно получить текст скопированный, к примеру, из браузера в буфер обмена с форматированием HTML. 

Т.е. не просто текст, а с цветом, шрифтом, подсветкой, и ссылками на фото, если они есть в тексте.  Это должно быть как исходный код HTML. И именно из буфера обмена.

Получить в хоть что-нибудь (String, Tmemo, Tedit и пр.. ) но в то, что идет в стандартной поставке. Платные RichEdit не подходят. 

И обязательно в FireMonkey

RichEdit , стал платным????

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
11 часов назад, FREEFAR сказал:

RichEdit , стал платным????

В стандартной поставке delphi Fire monkey нет RichEdit. 

Платное решение например https://tmssoftware.com/site/tmsfmxpack.asp?s=fmxricheditor#features

Изменено пользователем gateofdenied

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 1

В общем разобрался. 

Вдруг кому пригодится

 

procedure TForm1.Button1Click(Sender: TObject);
var
  buf: array[0..60] of Char;
  n: Integer;
  fmt: Word;
  H: THandle;
  P: PAnsiChar;
  S:UnicodeString;
begin
  for n := 0 to Clipboard.FormatCount - 1 do
  begin
    fmt := Clipboard.Formats[n];
    Clipboard.Open;
    if GetclipboardFormatName(fmt, buf, Pred(Sizeof(buf))) <> 0 then
      begin

          begin
             H := Clipboard.GetAsHandle(fmt);
             P := GlobalLock(H);
             S:=UnicodeString(P);
             Memo1.Lines.Add(P);
             GlobalUnlock(H);
          end;
      end;
    Clipboard.Close;
  end;

end;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...