Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизМожно ли сделать Append форматированого текста в Richedit? Найти похожие ветки
← →
Cut'gun © (2006-03-01 13:15) [0]Здраствуйте!
Столкнулся с такой проблемой: В Richeidt для получения форматированого текста имеется метод LoadFromStream который заменяет всё содержимое на содержимое потока. Можно ли сделать каким либо образом Append форматированого текста к уже имеющемуся?
Я пока нашёл решение с использованием 2ух Richedit и Clipboard, как приёмника текста. Может кто сталкивался и знает лучшее решение?
← →
MBo © (2006-03-01 13:36) [1]Через EM_STREAMIN/EM_STREAMOUT
← →
Cut'gun © (2006-03-01 13:58) [2]Большое спасибо... прошу прощения за назаойливость, нельзя привести пример кода RichEdit.Perform() не совсем понимаю как совместить EM_STREAMIN/EM_STREAMOUT с флагом SFF_SELECTION и каким должен быть lParam. Заранее большое спасибо.
← →
MBo © (2006-03-01 14:06) [3]
procedure TForm1.FormCreate(Sender: TObject);
begin
richedit1.Lines.Text := "111222333444";
richedit2.Lines.Text := "aaabbbccc";
richedit2.selstart := 3;
richedit2.sellength := 3;
richedit1.selstart := 3;
richedit1.sellength := 3;
richedit2.SelAttributes.Size := 16;
richedit2.SelAttributes.Color := clBlue;
end;
function EditStreamInCallback(dwCookie: Longint; pbBuff: PByte;
cb: Longint; var pcb: Longint): DWORD; stdcall;
begin
pcb := TStream(dwCookie).Read(pbBuff^, cb);
Result := 0; // Ord(pcb <> cb);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
ms: TMemoryStream;
est: TEditStream;
begin
Richedit2.PlainText := False;
ms := TMemoryStream.Create;
Richedit2.Lines.SaveToStream(ms);
ms.Position := 0;
est.dwCookie := Integer(ms);
est.dwError := 0;
est.pfnCallback := @EditStreamInCallBack;
SendMessage(RichEdit1.Handle, EM_STREAMIN, SF_RTF or SFF_SELECTION,
LPARAM(@est));
ms.Free;
end;
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.042 c