Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

автоподставление   Найти похожие ветки 

 
dim- ©   (2002-11-04 11:47) [0]

на событие 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-04 16:08) [1]

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


 
Wolf226 ©   (2002-11-04 16:35) [2]

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


 
dim- ©   (2002-11-04 17:57) [3]

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


 
kaif ©   (2002-11-05 01:23) [4]

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


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

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


 
dim- ©   (2002-11-05 09:24) [6]

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


 
SaS13 ©   (2002-11-05 09:30) [7]

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


 
Wolf226 ©   (2002-11-05 09:59) [8]

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


 
dim- ©   (2002-11-05 10:58) [9]

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



Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
4-83072
Василий2
2002-10-14 12:50
2002.11.25
Как в консольной проге


1-82839
se-run
2002-11-14 11:20
2002.11.25
skin компонента


14-82912
777
2002-11-07 21:25
2002.11.25
drum&bass


3-82641
madmike
2002-11-05 17:34
2002.11.25
Длинный SQL-запрос, что делать...


3-82647
Tundra
2002-11-06 12:34
2002.11.25
Где найти библиотеки ADO?