Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.29;
Скачать: CL | DM;

Вниз

Что за трабла с MEMO???   Найти похожие ветки 

 
p_sA[11] ©   (2004-02-15 12:01) [0]


1.Почему не удаляется последняя строка?
2.Почему не после Clear, в Memo остаютя пустые строки?


procedure TfrmMain.mMemoKeyPress(Sender: TObject; var Key: Char);
begin
if Key=Char(13) then
begin
mMemo.Lines.Delete(mMemo.Lines.Count-1);
PressEnterEdit(mMemo.Lines.Text);
mMemo.Lines.Clear;
end;
end;


Помоему все верно. Но не работает так как надо.


 
Digitman ©   (2004-02-15 12:08) [1]

а почему ты уверен, что данное событие возбуждается компонентом TMemo при нажатии <ENTER> ?


 
p_sA[11] ©   (2004-02-15 12:49) [2]

Потому что выполняется процкдура PressEnterEdit


 
p_sA[11] ©   (2004-02-15 12:53) [3]

вот код процедуры, хотя в данной ситуации ,я думаю,он не нужен


procedure TfrmMain.PressEnterEdit(str:string);
begin
if str="" then exit;
if str[1]="/" then
begin
CommandS(str);
exit;
end;
str:="["+nick+"]: "+str;
chMemo.Lines.Append(str);
end;


 
Digitman ©   (2004-02-15 12:54) [4]


> Почему не удаляется последняя строка?


обязана удаляться


> Почему не после Clear, в Memo остаютя пустые строки?


потому что ты передаешь код #13 на дальнейшую обработку компонентом, который прит коде #13 как и положено делает вставку

если тебя не устраивает штатная реакция компонента на тгот или иной код, обнуляй его перед выходом из процедуры обработки

key := #0;


 
p_sA[11] ©   (2004-02-15 12:59) [5]

Я понял. А на самом деле строка удаляется, но так как key еще 13 т.е Enter то в MEMO добавляется еще строка. Вроде все так.


 
Юрий Зотов ©   (2004-02-15 13:15) [6]

procedure TfrmMain.mMemoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
mMemo.Lines.Delete(mMemo.Lines.Count-1);
PressEnterEdit(mMemo.Lines.Text);
mMemo.Lines.Clear;
Key := #0;
end;
end;


 
p_sA[11] ©   (2004-02-15 13:24) [7]

to Юрий Зотов:

procedure TfrmMain.mMemoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
mMemo.Lines.Delete(mMemo.Lines.Count-1);
PressEnterEdit(mMemo.Lines.Text);
mMemo.Lines.Clear;
Key := #0;
end;
end;

Почти так. Только строчку
mMemo.Lines.Delete(mMemo.Lines.Count-1);
надо удалить.


 
Юрий Зотов ©   (2004-02-15 13:48) [8]

> p_sA[11] © (15.02.04 13:24) [7]

А вот это уже зависит от того, какой текст должен передаваться в PressEnterEdit. Если весь - то надо, а если без последней строчки - то не надо.



Страницы: 1 вся ветка

Текущий архив: 2004.02.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
14-94185
slivka
2004-02-06 23:20
2004.02.29
А что такое


1-93911
Seldon
2004-02-14 22:35
2004.02.29
Вопрос по ExtractIconEx


3-93772
Val12
2004-02-03 17:49
2004.02.29
ExportGrid4ToExcel


3-93801
ec
2004-02-03 16:27
2004.02.29
DBComboBox


6-94079
nejest
2003-12-22 16:40
2004.02.29
WNetEnumResource в чём ошибка?