Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
6-94080
vs_flash
2003-11-01 12:53
2004.02.29
как узнать mac


4-94238
Eagle Owl
2003-12-16 22:24
2004.02.29
Сжатие файла...


11-93829
Кладов
2003-05-30 19:04
2004.02.29
KOL2FPC


14-94138
DiGiTaL_BuSTaRD
2004-02-08 23:25
2004.02.29
Спутниковый инет


3-93753
svin666
2004-02-04 16:51
2004.02.29
SQL - функция




   Наверх