вставка ртф текста в ричедит

Тема в разделе "Delphi - Система", создана пользователем vital, 5 авг 2006.

  1. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    вобсчем, нужно вставить в TRichedit текст, простое Lines.add выдает ошибку. Ошибку скорее всего потому, что вставляемый текст имеет примрно следующий формат
    Код (Text):
    text:='самый обычный текст длинна которого неизвестна'+'текст отртфвенный длинна которого неизвестна';
    вот.
    Что бы тут сделать..
     
  2. zubr

    zubr Гость

    Должно работать. Код в студию.
     
  3. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    ну..
    Текст идет с сокета.
    Отправляю примерно так
    Код (Text):
    function GetRTFText(Arich: trichedit): string;
    var
    ss: TStringStream;
    emptystr: string;
    begin
    emptystr := '';
    ss := TStringStream.Create(emptystr);
    try
    ARich.PlainText := False;
    ARich.Lines.SaveToStream(ss);
    Result := ss.DataString;
    finally
    ss.Free
    end;
    end;
    -----------------------
    Serversocket.sendtext('некий текст в опциях введенный юзверем: '+GetRtfText(richedit2); //или ClientSocket...
    на приеме простое richedit2.lines.add(socket.receivetext); Выдает -Line Insertion Error и вставляет весь текст как он есть..{rtf\ansi\...

    Я пробовал удалять 1 и последнюю скобки в от'RTF'венном тексте при посылке но толку не было..

    пс.
    ещё там сообщение смотриться на предмет неких специальных команд, (Де)шифруется, но это врядли на что либо влияет..
     
  4. zubr

    zubr Гость

    Правильно, richedit2.lines.add(socket.receivetext); вставит весь текст как он есть. Чтобы у тебя в RichEdit появился отформатированный текст, сохрани socket.receivetext в файл или поток, а затем загружай в RichEdit2.Lines.LoadFromFile или RichEdit2.Lines.LoadFromStream
     
  5. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Попробовал в TStringStream..
    Вместо текста вышли всякие кракозябры.

    T:TStringStream;
    msg:=socket.receivetext;
    {операции с msg}
    t:=TStringStream.create(msg);
    richedit.loadfromstream(t);
    t.free;
     
  6. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    в общем, с потока вставляется прекрасный, все тот же RTF..
    к тому же мне надо, что текст который там был до того, тоже оставался.
     
  7. zubr

    zubr Гость

    Текст, который ты получаешь в socket.receivetext, пробовал сохранять в rtf-файл и затем запускать в Worde?
     
  8. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    хм..сейчас попробую..

    результат-
    вот такой вот test.rtf
     
  9. zubr

    zubr Гость

    Попробуй сравни текст до отправки (просматривай его в блокноте, а не в Worde) и после получения. Судя по всему у тебя какая то часть текста при пересылке теряется.
     
  10. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Просматривал я текст в Wordpad'e..
    Текст идентичен.Перед отправкой я его ещё вывожу в специальном месте, тоже и на приёме.
     
  11. zubr

    zubr Гость

    Ну тогда не знаю..., все должно работать. Вот процедура отображения форматированного текста в ричедите с сохранением, предыдущего текста:
    Код (Text):
    procedure RtfToRichEdit(richedit:TRichEdit; txtfromsocket:string);
    var
    str:TStringStream;
    s:string;
    begin
    str:=TStringStream.Create(txtfromsocket);
    try
    s:=richedit.Lines.Text;
    richedit.Lines.LoadFromStream(str);
    richedit.Lines.Insert(0, s);
    finally
    str.Free;
    end;
    end;
     
  12. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    <kznm! все тот же ртф..vfnm tuj pf yjeu!


    и почему у меня такой талант нарываться на персональные грабли..
     
  13. zubr

    zubr Гость

    А наверно потому, что у тебя где то RichEdit1.PlainText:=True;, если так, поставь в False.
     
  14. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    мля, я наверно похож идиота больше чем думаю..
    и в design-time и программно я выставил Plaintext:=false. с самого начала.
     
Загрузка...
Похожие Темы - вставка ртф текста
  1. Dragon108
    Ответов:
    1
    Просмотров:
    473
  2. vitte
    Ответов:
    8
    Просмотров:
    728
  3. k85
    Ответов:
    2
    Просмотров:
    683
  4. lionk
    Ответов:
    6
    Просмотров:
    762
  5. sasha465
    Ответов:
    2
    Просмотров:
    1.370

Поделиться этой страницей