Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Вниз

проблемы с RxRichEdit   Найти похожие ветки 

 
sdaf   (2007-11-25 20:30) [0]

Здравствуйте.
У меня есть два RXRichEdit в одном есть текст и картинка(tbitmap), как скопировать из одного все содержимое в другой - пустой RXRichEdit?
Пробовал по разному копируеться только текст, а картинка нет.
Как это можно сделать? Помогите пожалуйста!


 
ЮЮ ©   (2007-11-26 04:03) [1]

> Пробовал по разному

А через буфер обмена?


 
Gydvin ©   (2007-11-26 10:14) [2]

а чрез saveto(loadfrom)stream (если правда там такой есть)?


 
sdaf   (2007-11-26 19:47) [3]

В RXrichEdit есть SaveTo(LoadTo)Stream, но только тоже копирует только текст.
А через буфер обмена незнаю как.


 
{RASkov}   (2007-11-26 20:14) [4]

> [3] sdaf   (26.11.07 19:47)
> А через буфер обмена незнаю как.

Попробуй так:
begin
 RxRichEdit1.SelectAll;
 RxRichEdit1.CopyToClipboard;
 RxRichEdit2.PasteFromClipboard;
end;


 
Gydvin ©   (2007-11-26 20:22) [5]


> sdaf   (26.11.07 19:47) [3]
> В RXrichEdit есть SaveTo(LoadTo)Stream, но только тоже копирует
> только текст.


Мх. Если оттуда сохранять в файл, а затем читать. Битмапы сохраняются? Если сохраняются, то смотреть реализацию. savetofile, loadfromfile. И делать выводы...


> begin  RxRichEdit1.SelectAll;
> RxRichEdit1.CopyToClipboard;
> RxRichEdit2.PasteFromClipboard;end;


Это жестоко ) Хотяб буфер обмена перед этим шаманством сохранять, а затем востонавливать.


 
{RASkov}   (2007-11-26 20:51) [6]

> Это жестоко )

Согласен :)


> В RXrichEdit есть SaveTo(LoadTo)Stream, но только тоже копирует
> только текст.

Вот только что специально проверил.... работает зараза :)

procedure TForm1.Button1Click(Sender: TObject);
var memStr: TMemoryStream;
begin
 RxRichEdit1.Lines.LoadFromFile("1.rtf");  
 memStr:=TMemoryStream.Create;
 try
  RxRichEdit1.Lines.SaveToStream(memStr);
  memStr.Seek(0, soBeginning);
  RxRichEdit2.Lines.LoadFromStream(memStr);
 finally
  memStr.Free;
 end;
end;


 
sdaf   (2007-11-26 21:25) [7]

попробовал предложенный код с потоками, у меня вообще ни как не реагирует на такой код

и так тоже попробовал, иногда содержимое уходит в никуда,
  RxRichEdit1.SelectAll;
  RxRichEdit1.CopyToClipboard;
  RxRichEdit2.PasteFromClipboard;
  RxRichEdit1.clear;
с первого удаляеться и во второй не копируется просто гдето теряеться (


 
sdaf   (2007-11-26 21:30) [8]

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


 
sdaf   (2007-11-26 21:36) [9]

Воооо вот так работает))!!!
RxRichEdit1.SetSelection(0,RE.GetTextLen,True);
RxRichEdit1.CopyToClipboard;
RxRichEdit2.PasteFromClipboard;
RxRichEdit1.clear;
Спасибо всем за предложенные варианты


 
Gydvin ©   (2007-11-26 22:15) [10]


> sdaf

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


 
ЮЮ ©   (2007-11-27 05:59) [11]

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


Cогласен, но другого способа переноса части форматированного текста с картинками я в свое время не нашёл. :(

RxRichEdit1.CopyToClipboard;
RxRichEdit2.PasteFromClipboard;


CopyToClipboard выполняется "ассинхронно" и в PasteFromClipboard гарантированна ошибка "Невозможно открыть буфер обмена". (Самый простой способ воспроизвести ситуацию - загрузить два экземпляра Delphi, и во втором запустить приложение на выполнение).

Поэтому следует PasteFromClipboard "обернуть" в try ... except и Applecation.ProcessMassege не помешает.


 
Leonid Troyanovsky ©   (2007-11-27 09:05) [12]


> ЮЮ ©   (27.11.07 05:59) [11]

> Cогласен, но другого способа переноса части форматированного
> текста с картинками я в свое время не нашёл. :(

Форматированный текст переносится путем  EM_STREAMIN|OUT.

Насчет картинок не знаю, наверное, нужно cмотреть какие
возможности представляет COM интерфейс RICHEDIT 2 и 3 версий.
Подробности можно найти на http://home.att.net/~robertdunn/Yacs.html

--
Regards, LVT.


 
Gydvin ©   (2007-11-27 14:47) [13]


> ЮЮ ©   (27.11.07 05:59) [11]

В сабже не говорится о части - говорится о всем содержимом...


 
sdaf   (2007-11-27 23:03) [14]

ну так можно пользоваться  таким кодом
RxRichEdit1.SetSelection(0,RE.GetTextLen,True);
RxRichEdit1.CopyToClipboard;
RxRichEdit2.PasteFromClipboard;
RxRichEdit1.clear;
пользоваться или это смертельно и нада искать другие пути. у меня возник второй вопрос. Таким кодом я затираю буфер наврно, а если у меня там какая нибуть нужная инфа?
можно как нибуть их сохранить чтобы они не улитучились в никуда?


 
Gydvin ©   (2007-11-28 06:08) [15]


> ну так можно пользоваться  таким кодомRxRichEdit1.SetSelection(0,
> RE.GetTextLen,True);RxRichEdit1.CopyToClipboard;RxRichEdit2.
> PasteFromClipboard;RxRichEdit1.clear;пользоваться или это
> смертельно и нада искать другие пути.


Вы сами ответили на свой вопрос


>  Таким кодом я затираю буфер наврно, а если у меня там какая
> нибуть нужная инфа?


Вообще буфер обмена, как таковой, предназначен для использования его пользователем, либо программой в автоматическом режиме, но только с ведома пользователя (иногда нужны оказывается такие программы). Но это не в вашем случае.

Вердикт: Изыскивать другие методы.


 
sdaf   (2007-11-28 19:23) [16]

надумал вот что, может не самый подходящий способ зато не используем буфер. Создать временный text.rtf в него записать, и из него считать во второй RXRichEdit вот примерно так,
RxRichEdit1.Lines.SaveToFile("c:\text.rtf");
RxRichEdit1.Lines.LoadFromFile("c:\text.rtf");
RxRichEdit1.Lines.Add(" ");
вот примерно вот так



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.07 c
15-1195932949
lookin
2007-11-24 22:35
2007.12.23
Наконец-то вопрос по теме сайта))


3-1187164866
GanibalLector
2007-08-15 12:01
2007.12.23
insert в поле ftTime


15-1195682297
GanibalLector
2007-11-22 00:58
2007.12.23
Россия в ЕВРО2008


2-1195914602
savyhinst
2007-11-24 17:30
2007.12.23
GIF


15-1196159536
All More system
2007-11-27 13:32
2007.12.23
Разработка динамического сайта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский