Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

автоподставление [D6, IB5.x]


dim- ©   (2002-11-04 11:47:00) 

на событие ONChange Edita пишу код:
if Table.Locate("name",edit1.text,[Locase...,LoParti..] then begin
s:=Edit1.Text;
Edit1.Text:=Table.FieldValues["name"];
Edit1.SelStart:=Length(s);
Edit1.SelLength:=Length(Edit1.Text);
end;
Все работает, но если нажимаешь забой или del то символ не удаляется и надо выделять всю строку и начинать ввод снова.
Может кто чего посоветует?


dim-   (2002-11-05 10:58:00) [1]

спасибо SaS13 © наталкнул на мысль
в onkeydown пишу:
if key=#8 then Edit1.OnChange := nil else
Edit1.OnChange := Edit1Change;
и вроде работает


Wolf226   (2002-11-05 09:59:00) [2]

Sas13 - прав, я ловил KeyPress и это не учел.


SaS13   (2002-11-05 09:30:00) [3]

когда задаешь текст в onChange Edit"a сделай:
Edit1.OnChange := nil;
Edit1.Text:=Table.FieldValues["name"];
Edit1.OnChange := Edit1Change;
а иначе он у тебя еще раз отработается...


dim-   (2002-11-05 09:24:00) [4]

в смысле убрать выделение, тогда как будет подставлятся строка
Если наблал "А" то подставится первое что найдется на "А" и дальше не пойдет


MsGuns   (2002-11-05 02:49:00) [5]

Убери выделение в котнроле, и делов-то !


kaif   (2002-11-05 01:23:00) [6]

Мне кажется, у тебя что-то не то.
Видимо, ты хотел переместить карет в конец строки.
Для этого нужно сделать:
Edit1.SelLength:=0;


dim-   (2002-11-04 17:57:00) [7]

по теории понятно что должно удалятся, а оно не удаляется


Wolf226   (2002-11-04 16:35:00) [8]

Давно делал это.
К сожалению исходники не под рукой, не могу кинуть.
Надо использовать свойства.
SelLength
SelStart
Надо выделять после Locate тот кусок слова который ты вытянул.
(Набрал "Ки" - Locate - "Килька", значит выделяем "лька".
SelLength:=4; SelStart=3;)
И получишь то, что по нажатию клавиши, попутно будет удаляться выделенный фрагмент, что тебе и надо.
Т.е. по нажатию "Забоя" удаляется "лька" и "и".
А дальше выполняется Locate по "К".


dim-   (2002-11-04 16:08:00) [9]

Народ!!! неужели ни кто не делал


Наверх

Титульная страница Поиск, карта сайта Написать письмо