Главная страница
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.018 c
1-93991
Vitaliygavrilov
2004-02-16 10:20
2004.02.29
Подскажите как сделать локальный браузер (вне сети)


1-94013
Sash
2004-02-17 06:27
2004.02.29
StringGrid


14-94130
Andy BitOff
2004-02-09 02:59
2004.02.29
По рзелульаттам илссеовадний


11-93820
Puke Zero
2003-06-13 23:31
2004.02.29
XP Visual Style для GroupBox


14-94166
PaRL
2004-02-02 22:39
2004.02.29
---|Ветка была без названия|---