Форум — Ответы     (  К темам )
 ?  werwolf: как вставить текст в RichEdit не переводя при этом строки (01-05-2003 03:17:40)
как вставить текст в RichEdit не переводя при этом строки.
RichEdit->Lines->Add(),...->Append(),...->Text.Insert()... все это переводит строку.
 denver (02-05-2003 11:18:18)
я пока использую такой способ:
сначала формирую строку:
String str="abc";
...
str=str+"123";
а потом вывожу её:
RichEdit->Lines->Add(str);

ps: если кто придумает, как это делать по-человечески, буду рад глянуть :)
 Владимир (03-05-2003 12:39:11)
//---------------------------------------------------------------------------------------------------------------------- Заведем переменные, например:
public: // User declarations
long X;
long Y;
Запомнить положение курсора:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Y = RichEdit1->Perform(EM_LINEFROMCHAR, RichEdit1->SelStart, 0);
X = RichEdit1->Perform(EM_LINEINDEX, Y, 0);
X = RichEdit1->SelStart-X+1;
RichEdit1->SetFocus();
RichEdit1->SelStart = SendMessage (RichEdit1->Handle, EM_LINEINDEX,Y, 0)+ X — 1;
PostMessage(RichEdit1->Handle,WM_KEYDOWN,VK_LEFT,0);
PostMessage(RichEdit1->Handle,WM_KEYDOWN,VK_RIGHT,0);
}
Добавляем строки и восстанавливаем положение курсора:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
RichEdit1->Lines->Add(Edit1->Text); // добавляем строку
RichEdit1->SetFocus();
RichEdit1->SelStart = SendMessage (RichEdit1->Handle, EM_LINEINDEX,Y, 0)+ X — 1;
PostMessage(RichEdit1->Handle,WM_KEYDOWN,VK_LEFT,0);
PostMessage(RichEdit1->Handle,WM_KEYDOWN,VK_RIGHT,0);
}
//----------------------------------------------------------

 Andrew (04-05-2003 15:43:16)
Вставка через RichEdit1->SelText = "QWERTY" не переводит строку.
 Владимир (08-05-2003 13:43:02)
Кроме того у компонента TMemo и TRichEdit есть свойство CaretPos,

Label1->Caption = IntToStr(Memo1->CaretPos.x)+":"+IntToStr(Memo1->CaretPos.y);