Hola pues me declaro incompetente para esto, es algo tan sencillo pero no entiendo.
Tengo un richedit y una lista, cuando el usuario hace doble click en la lista se copia el texto del renglón de la lista al richedit, eso lo manejo así y funciona bien.
Código Delphi
[-]
procedure MiForma.miRichEditExit(Sender: TObject);
begin
inherited;
iPosMemo := miRichEdit.SelStart;
end;
procedure MiForma.ListaDblClick(Sender: TObject);
var sAntes, sDespues : string;
iTope:integer;
sValor : string;
begin
inherited;
iTope := length(miRichEdit.Text) - iPosMemo;
sAntes := copy(miRichEdit.Text,1,iPosMemo);
sDespues := copy(miRichEdit.Text,iPosMemo+1,iTope);
sValor := Lista.Selected.SubItems.Strings[0];
miRichEdit.Text:= sAntes +' '+ sValor + ' ' +sDespues;
end;
El problema es que mi richedit tiene formato(negritas, cursiva etc) y al introducir el nuevo texto zas le quita el formato, lo entiendo porque pasa como texto plano, intente trabajar con TMemoryStream ja pero no entiendo. Si paso el texto de mirichedit a otro RichEdit1y se que se hace con:
Código Delphi
[-]
var Corriente: TMemoryStream;
try
miRichEdit.Lines.SaveToStream(Corriente);
Corriente.Seek(0,soFromBeginning);
RichEdit1.Lines.LoadFromStream(Corriente);
finally
if Assigned(Corriente) then Corriente.Free;
end;
Pero necesito copiar partes del richedit el antes y el despúes para poder introducir el texto de la lista pero al hacer un copyfrom aa me manda un erro de Stream read error
![Frown](http://www.clubdelphi.com/foros/images/smilies/frown.gif)
Empece copiando el antes, pero no funciona nadita.
Código Delphi
[-]
var
rich1, rich2:TMemoryStream;
begin
rich1 := TMemoryStream.Create;
rich2 := TMemoryStream.Create;
rchePlant.Lines.SaveToStream(rich1);
rich2.CopyFrom(rich1,rich1.Size - iPosMemo); RichEdit1.Lines.LoadFromStream(rich2);
end;
Se que tengo que usar el seek pero ni siquiera entiendo como funciona ni sus parámetros, ya busque en la ayuda y me deja igual.
Alguien me podría ayudar, se que es algo simple pero no entiendo, o tal vez mi idea de como hacerlo es erronea.
Gracias