Советы по Delphi

         

Получение данных из компонента 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]



Содержание раздела