Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
11-93833
Юрий К
2003-06-09 17:15
2004.02.29
Файл


1-93992
Fridom
2004-02-17 10:27
2004.02.29
Как очистить содержимое папки без её удаления?


1-93995
Di
2004-02-18 16:54
2004.02.29
QReport не находит свойство Extended.Duplex


1-94027
PrettyFly
2004-02-16 13:27
2004.02.29
Delphi & Pocket PC


1-93858
Budy
2004-02-16 14:36
2004.02.29
File ы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский