![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выпадающий список как в google в строке поиска [D7, WinXP]
mm0 © (2010-07-29 09:43:00)Как сделать выпадающий список наиболее подходящих вариантов как в google в строке поиска?
или подскажите компоненты которые могут такое сделать?
Плохиш (2010-07-30 14:22:00) [1]
> brother © (30.07.10 06:54) [17]
>
> код [13] ведет себя именно так... D6
>
неужели D6 пропустил этот маразм
> if edit1.combobox1.Text='2' then
>
?
brother (2010-07-30 06:54:00) [2]код [13] ведет себя именно так... D6
Плохиш (2010-07-29 19:32:00) [3]
> mm0 (29.07.10 11:39) [11]
>
>
> Есть проблема - при вводе текста переводит корретку вначало.
>
> Т.е вводиш 1 потом 2 потом 3 получается ввел 321,а
> надо 123..
>
Странно, у меня такой проблеммы нет. Видно тебе не повезло.
12 (2010-07-29 12:33:00) [4]вопросы задаешь не понятно, вот и не знает никто
mm0 (2010-07-29 12:22:00) [5]Ура Все нашел.
Нужно использовать TComboBoxEx из набора Win32. Странно что никто не знает.
Поставить в нем свойство AutoCompleteOptions->acoAutoSuggest=true.
Все что нужно он делает!
mm0 (2010-07-29 11:55:00) [6]I)Вернуть кооретку надо.
К примеру ввел символ 1 В поле ввода имеем:1
Далее вводиш символ 2. В поле ввода имеем:21
Надо,чтобы ввелось 12.
т.е корретка переместилаь перед первым символом,а надо после последнего символа.
II)Попробывал решить проблему с корреткой - способ поместить Combobox1 а поверх него(Загородить) бросил Edit1
procedure TForm1.Edit1Change(Sender: TObject);
begin
if length(Edit1.Text) > 0 then
begin
combobox1.items.clear;
if Edit1.Text='1' then
begin
combobox1.items.add('1÷òî óãîäíî');
combobox1.items.add('12÷òî óãîäíî');
combobox1.items.add('135÷òî óãîäíî');
end;
if edit1.combobox1.Text='2' then
begin
combobox1.items.add('2÷òî óãîäíî');
combobox1.items.add('22÷òî óãîäíî');
combobox1.items.add('2235÷òî óãîäíî');
end;
combobox1.DroppedDown:=true;
end;
end;
Так тут вообще курсор мыши исчезает с экрана,когда вводиш 1 или 2
(т.е активирует combobox1).
12 (2010-07-29 11:46:00) [7]
> mm0 (29.07.10 11:39) [11]
словами напиши что сделать надо, или брата спроси, как придет :)
mm0 (2010-07-29 11:39:00) [8]procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if length(ComboBox1.Text) > 0 then
begin
combobox1.items.clear;
if combobox1.Text='1' then
begin
combobox1.items.add('1÷òî óãîäíî');
combobox1.items.add('12÷òî óãîäíî');
combobox1.items.add('135÷òî óãîäíî');
end;
if combobox1.Text='2' then
begin
combobox1.items.add('2÷òî óãîäíî');
combobox1.items.add('22÷òî óãîäíî');
combobox1.items.add('2235÷òî óãîäíî');
end;
combobox1.DroppedDown:=true;
end;
end;
Есть проблема - при вводе текста переводит корретку вначало.
Т.е вводиш 1 потом 2 потом 3 получается ввел 321,а
надо 123..
Anatoly Podgoretsky (2010-07-29 11:34:00) [9]
> а как пользоваться этим like? я пытался у меня ничего не
> получилось...
Нужен Edit и ComboBox и набор данных с запросом
SELECT Fld WHERE Fld like :SearchText
procedure TForm1.Edit1Change(Sender: TObject);
begin
Combox1.Items.Clear;
DS.Close;
DS.Parametes.ParamByName('SearchText').Value := '%' + Edit.Text + '%';
DS.Open;
while not DS.Eof do begin
Combox1.Add(DS.FieldByName('имя поля'));
DS.Next;
end;
end;
Примерно так, вместо FieldByName лучше создать постоянное поле. Я широко использую, по скорости практически мгновенно и чем длиннее текст, тем быстрее.
Anatoly Podgoretsky (2010-07-29 11:26:00) [10]
> brother © (29.07.10 10:00) [4]
Так этоже стандартный ComboBox
Palladin (2010-07-29 10:19:00) [11]а как пользоваться этим like? я пытался у меня ничего не получилось...
12 (2010-07-29 10:04:00) [12]
> Palladin ©
???
12 (2010-07-29 10:03:00) [13]почему не то? :)
есть желание -
> вместо 'что угодно' ?
можно выборку like %% от edit2.Text какую-нить сделать
Palladin (2010-07-29 10:01:00) [14]да, да, я так и хочу, а как это сделать?
brother (2010-07-29 10:00:00) [15]имхо надо: набираем текст, а в выпадающем меню показываются наиболее подходящие:
ма
====================
мамина помада
мамонт
машина и где
мальчик с семечками
;)
Palladin (2010-07-29 09:57:00) [16]а что надо написать вместо 'что угодно' ?
brother (2010-07-29 09:56:00) [17]это не то, как я понял ;)
12 (2010-07-29 09:47:00) [18]procedure TForm1.Edit2Change(Sender: TObject);
begin
if length(edit2.Text) > 0 then
begin
combox1.items.clear;
combox1.items.add('что угодно');
combox1.items.add('что угодно');
combox1.items.add('что угодно');
combox1.dropdown;
end;
end;