Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выпадающий список как в 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо