Получение данных из компонента Memo
Для получения содержимого буфера используйте метод GetTextBuf, или воспользуйтесь приведенным ниже кодом (естественно, откорректируйте его под себя).
procedure TForm1.SpeedButton1Click(Sender: TObject); var LineNo : integer; ColNo : integer; begin LineNo:=SendMessage(Memo1.Handle,EM_LINEFROMCHAR,Memo1.SelStart,0); ColNo:=Memo1.SelStart; if LineNo>0 then begin While SendMessage(Memo1.Handle,EM_LINEFROMCHAR,ColNo,0)=LineNo do ColNo:=ColNo-1; ColNo:=Memo1.SelStart-ColNo-1; end else ColNo:=Memo1.SelStart; Panel1.Caption:='Строка '+IntToStr(LineNo)+' ; Колонка '+IntToStr(ColNo); {Здесь вы можете получить текст через Memo1.Lines[LineNo].Text[ColNo] ...} end; |
Предупреждение! Данный код был написан в среде WinNT/D2 с использованием элемента управления richedit. Я тестировал то же самое, но с компонентом Memo и в D1, но этот код я забыл дома. Код выше написан по памяти и не тестировался, но я думаю он должен работать. Если вы переберетесь на D2, измените вызов sendmessage на следующий:
SendMessage(Memo1.Handle,EM_EXLINEFROMCHAR,0,ColNo) |
[001449]