Форум — Ответы ( К темам )
| ? | 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); | |