Главная страница
    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.01 c
1-82684
smok_er
2002-11-10 00:14
2002.11.25
Момент нажатия чекбокса в ListView


1-82845
volph7777
2002-11-13 10:43
2002.11.25
Использование фрэймов


1-82796
Live_Aus_Berlin
2002-11-13 16:37
2002.11.25
У кого нибудь есть исходники проги которая считает производные


1-82812
Jeka.
2002-11-13 09:41
2002.11.25
Scroll


4-83064
x4y
2002-10-13 12:49
2002.11.25
Список запущенных процессов с полным путем





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