Текущий архив: 2010.10.24;
Скачать: CL | DM;
Вниз
Выпадающий список как в google в строке поиска Найти похожие ветки
← →
mm0 (2010-07-29 09:43) [0]Как сделать выпадающий список наиболее подходящих вариантов как в google в строке поиска?
или подскажите компоненты которые могут такое сделать?
← →
12 © (2010-07-29 09:47) [1]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;
← →
brother © (2010-07-29 09:56) [2]это не то, как я понял ;)
← →
Palladin © (2010-07-29 09:57) [3]а что надо написать вместо "что угодно" ?
← →
brother © (2010-07-29 10:00) [4]имхо надо: набираем текст, а в выпадающем меню показываются наиболее подходящие:
ма
====================
мамина помада
мамонт
машина и где
мальчик с семечками
;)
← →
Palladin © (2010-07-29 10:01) [5]да, да, я так и хочу, а как это сделать?
← →
12 © (2010-07-29 10:03) [6]почему не то? :)
есть желание -
> вместо "что угодно" ?
можно выборку like %% от edit2.Text какую-нить сделать
← →
12 © (2010-07-29 10:04) [7]
> Palladin ©
???
← →
Palladin © (2010-07-29 10:19) [8]а как пользоваться этим like? я пытался у меня ничего не получилось...
← →
Anatoly Podgoretsky © (2010-07-29 11:26) [9]
> brother © (29.07.10 10:00) [4]
Так этоже стандартный ComboBox
← →
Anatoly Podgoretsky © (2010-07-29 11:34) [10]
> а как пользоваться этим 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 лучше создать постоянное поле. Я широко использую, по скорости практически мгновенно и чем длиннее текст, тем быстрее.
← →
mm0 (2010-07-29 11:39) [11]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..
← →
12 © (2010-07-29 11:46) [12]
> mm0 (29.07.10 11:39) [11]
словами напиши что сделать надо, или брата спроси, как придет :)
← →
mm0 (2010-07-29 11:55) [13]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).
← →
mm0 (2010-07-29 12:22) [14]Ура Все нашел.
Нужно использовать TComboBoxEx из набора Win32. Странно что никто не знает.
Поставить в нем свойство AutoCompleteOptions->acoAutoSuggest=true.
Все что нужно он делает!
← →
12 © (2010-07-29 12:33) [15]вопросы задаешь не понятно, вот и не знает никто
← →
Плохиш © (2010-07-29 19:32) [16]
> mm0 (29.07.10 11:39) [11]
>
>
> Есть проблема - при вводе текста переводит корретку вначало.
>
> Т.е вводиш 1 потом 2 потом 3 получается ввел 321,а
> надо 123..
>
Странно, у меня такой проблеммы нет. Видно тебе не повезло.
← →
brother © (2010-07-30 06:54) [17]код [13] ведет себя именно так... D6
← →
Плохиш © (2010-07-30 14:22) [18]
> brother © (30.07.10 06:54) [17]
>
> код [13] ведет себя именно так... D6
>
неужели D6 пропустил этот маразм
> if edit1.combobox1.Text="2" then
>
?
Страницы: 1 вся ветка
Текущий архив: 2010.10.24;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.006 c