Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1280475856
Scot Storch
2010-07-30 11:44
2010.10.24
Проверка синтаксиса команды


15-1279608089
И. Павел
2010-07-20 10:41
2010.10.24
Банковское округление


15-1279312179
Юрий
2010-07-17 00:29
2010.10.24
С днем рождения ! 17 июля 2010 суббота


15-1279398576
Юрий
2010-07-18 00:29
2010.10.24
С днем рождения ! 18 июля 2010 воскресенье


6-1227962984
dmitry_12_08_73
2008-11-29 15:49
2010.10.24
Выбор способа передачи данных с помощью протокола HTTP