Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RichEdit. Форматирован ли текст. 
:(
    Опции темы
Snowy
Дата 6.3.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Yanis, смотрел. Реагирует даже на смену руской/английской раскладки. Это уж слишком.
PM MAIL   Вверх
Quadr0
Дата 6.3.2006, 13:52 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:43
  Вверх
RA
Дата 6.3.2006, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Совсем не обязательно делать это автоматических, пусть юзер сам выбирает какой тип хранения ему нужен.

Что сложно лишний чекбокс прикрутить куданить smile .

Я конечно понимаю, что автоматичность это удобно, а если слишком большой текст то в ручном режыме на много быстрее.
PM   Вверх
Yanis
Дата 7.3.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Snowy @ 6.3.2006, 10:31 Найти цитируемый пост)
Yanis, смотрел. Реагирует даже на смену руской/английской раскладки. Это уж слишком.

Думаю эту проблему можно решить если вместо
Код

CompareMem(@cf1, @cf, SizeOf(cf))
написать свою функцию, которая будет проверять все поля кроме bCharSet структуры TCharFormat<2>.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Snowy
Дата 7.3.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Quadr0 @ 6.3.2006, 13:52 Найти цитируемый пост)
А чем же сравнение с эталоном не подходит?
Потому что остается копирование из буфера обмена. Текст, скопированный из вордпада уже не считается форматированным только потому, что шрифт другой.

Цитата(Quadr0 @ 6.3.2006, 13:52 Найти цитируемый пост)
Искать форматирование в тэгах беполезно в том виде, в котором мы получаем выходной текст. Это тебе придётся собственный парсёр rtf-а писать.
Это не так сложно. Я ж не текст разбираю, а ищу наличие тэгов. А это не намного сложней, чем с html.

Цитата(Quadr0 @ 6.3.2006, 13:52 Найти цитируемый пост)
Работает!
Проверь вставку из ворда.

Цитата(RAdmin @ 6.3.2006, 20:35 Найти цитируемый пост)
Совсем не обязательно делать это автоматических, пусть юзер сам выбирает какой тип хранения ему нужен.
Это не хранение, это отправка по сети. В 95% долен отправляться plain text. RTF будет отправляться только, когда юзверь захочит разукрасить текст.
Наличие разукраски и будет этим флагом.
Зачем мне лепить чекбокс, который в интерфейс у меня просто не вписывается, когда можно сделать автодетект.
У меня везде в проекте автодетект, а тут я буду чекбоксы лепить. Некрасиво.

Ладно. Значит кроме этих двух идей других нет...

Тогда еще идея:
Пишем в вордпаде текст. Разные его части делаем разным размером, часть жирную, часть наклонную...
Выделяем весь текст. Смотрим на панель - кнопка жирности и наклона пригашены, в поле размера шрифта пусто. Это говорит о том, что в тексте есть разное оформление по размеру, жирности и наклону.
Только вот как такого эффекта добиться в своей программе?
PM MAIL   Вверх
Quadr0
Дата 7.3.2006, 22:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:46
  Вверх
Snowy
Дата 9.3.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Quadr0 @ 7.3.2006, 22:31 Найти цитируемый пост)
Да ну, у меня всё нормально. Или я как-то не так тебя понял?
Я имею ввиду, что текст, скорированный из вордпада всегда считается форматированным, низависимо ни от чего.

Цитата(Quadr0 @ 7.3.2006, 22:31 Найти цитируемый пост)
Я уже говорил и по прежнему уверен, что у MS, у их контролла вордовского видимо немного другая реализация.
В Delphi используется тот же самый контрол.
RxRichEdit также построен на том же самом контроле, просто расширен функционал кода.
Реально у нас вовсе не 1.0. Просто юзать выше стандартно не можем, т.к. нет реализации.
Но на уровне WinAPI можно туда и картинки и таблицы вставлять.


Цитата(Quadr0 @ 7.3.2006, 22:31 Найти цитируемый пост)
Что там со вставкой?Набрал в Word 2003 текст, сделал часть курсивным, часть жирным, подчёркнутым, разным шрифтом и размером. Вставил, всё работало как и прежде.
Угу. А если не делать форматирование... Делай, не делай - все равно детектит, что есть.

Ну хоть какой-то результат есть в наличии.
Наконец-то дошли руки. Вот, доработал немножко:
Код
function IsRichFormated(RE: TRichEdit): boolean;
var
  i: integer;
begin
  result := false;
  Re.SelStart := 0;
  Re.DefAttributes.Assign(Re.SelAttributes);
  for i := 0 to Length(Re.Text) do
  begin
    Re.SelStart := i;
    if (Re.SelAttributes.Name  <> Re.DefAttributes.Name) or
       (Re.SelAttributes.Color <> Re.DefAttributes.Color) or
       (Re.SelAttributes.Size  <> Re.DefAttributes.Size) or
       (fsBold in Re.SelAttributes.Style) or
       (fsItalic in Re.SelAttributes.Style) or
       (fsUnderline in Re.SelAttributes.Style) or
       (fsStrikeOut in Re.SelAttributes.Style) or
       (Re.Paragraph.Numbering <> nsNone) or
       (Re.Paragraph.Alignment <> taLeftJustify) then
     begin
       result := true;
       Break;
     end;
  end;
end;
Пока у меня не получилось найти вариантов, где бы это не сработало.
Если артифакты не попадутся, то пожалуй остановлюсь на этом варианте.
Раз уж он работает, то незачем тэги ковырять.

Бонус в этом топике уходит Quadr0

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  RTFDetect.zip 2,72 Kb
PM MAIL   Вверх
Yanis
Дата 10.3.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(Snowy @ 9.3.2006, 16:41 Найти цитируемый пост)
Пока у меня не получилось найти вариантов, где бы это не сработало.
Если артифакты не попадутся, то пожалуй остановлюсь на этом варианте.
Раз уж он работает, то незачем тэги ковырять.

Сдаётся мне, что мой варинт работает быстрее.


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Snowy
Дата 10.3.2006, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Логично. Но не настолько, чтобы это было заметно.
А если в него добавить исключения, то больше заморочек.
А суть все та же.
PM MAIL   Вверх
Quadr0
Дата 11.3.2006, 20:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...

Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 10:47
  Вверх
Snowy
Дата 11.3.2006, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Quadr0 @ 11.3.2006, 20:06 Найти цитируемый пост)
Ты размер шрифта в 11 и имя на Arial не забыл поменять? Просто там по дефолту Times New Roman с 12 размером. Вот он и копируется.
smile в том-то и дело, что пользователь этого делать не будет.
Приоритет должен быть у plain text, а не у RTF.
Код, который я нарисовал, делает точно так, как мне нужно.
Уже его воткнул в проект. Работает без нареканий.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0854 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.