Форум - Ответы     (  К темам )
 ?  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) http://cbuilder.ru
//---------------------------------------------------------------------------------------------------------------------- Заведем переменные, например:
 
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) http://cbuilder.ru
Кроме того у компонента TMemo и TRichEdit есть свойство CaretPos,

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


support@cbuilder.ru