• 0
Авторизация  
gateofdenied

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

Вопросы

Добрый день. 

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

FMX

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

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

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

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

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


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

3 ответа на этот вопрос

  • 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;

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

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

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