Главная страница
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.032 c
1-93855
Grinder
2004-02-16 16:46
2004.02.29
Resize в ListView


4-94241
volser
2003-12-21 18:34
2004.02.29
Эмуляция нажатия клавиши


3-93761
Bless
2004-02-03 16:44
2004.02.29
Назавершенная транзакция в прерванной хп.


7-94212
Petr7
2003-12-09 20:48
2004.02.29
irda


14-94153
Думкин
2004-02-07 14:27
2004.02.29
Пейте пиво пенное!