Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-82990
Anatoly Podgoretsky
2002-11-07 07:39
2002.11.25
Именинники 7 ноября


14-82979
DeMoN-777
2002-11-07 04:45
2002.11.25
Бобровский


1-82797
Demon[DZ]
2002-11-11 16:02
2002.11.25
Компонент.


14-82992
Bboy
2002-11-03 09:48
2002.11.25
Помогите определиться с выбором 3d программы


1-82815
Lamak
2002-11-09 03:09
2002.11.25
RichEdit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский