Форум: "Основная";
Текущий архив: 2004.02.29;
Скачать: [xml.tar.bz2];
ВнизЧто за трабла с 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c