Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2010, 17:45   #1
-Flover-
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 28
Сообщение ComboBox1

в компоненте ComboBox1 есть несколько строчек в которых написан текст, как сделать чтобы по нажатию на Enter, показывалось содержимое данного компонента???
через инспектора ставится только на пробел а на Enter оно показывается и сразу сворачивается заранее спасибо
-Flover- вне форума Ответить с цитированием
Старый 24.03.2010, 19:18   #2
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Цитата:
как сделать чтобы по нажатию на Enter, показывалось содержимое данного компонента???
Можно попробовать так (если я правильно понял) :
Код:
procedure TForm4.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then // при нажатии Enter
    begin
    Key := #0; // ... "сбрасываем" нажатую клавишу
    ComboBox1.DroppedDown := true; // ... "выпадаем" список
    end;
end;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 24.03.2010, 20:18   #3
-Flover-
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 28
По умолчанию

Kotofff, благодарю )) усовершенствовал код, чтоб работало и открытие и закрытие списка на Enter

Код:
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then // при нажатии Enter
 begin
  if ComboBox1.DroppedDown = False then
   begin
    Key := #0;
    ComboBox1.DroppedDown := true; // ... "выпадаем" список
   end;
  end
  else
   begin
    key:=#0;
    ComboBox1.DroppedDown := False;  // закрываем список
   end;
end;
если есть более простое решение, хотелось бы взглянуть на него :-)

Последний раз редактировалось mihali4; 26.03.2010 в 23:15.
-Flover- вне форума Ответить с цитированием
Старый 24.03.2010, 20:42   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Код:
procedure TForm4.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  ComboBox1.DroppedDown := (Key = #13) and (not ComboBox1.DroppedDown);
  if Key = #13 then Key := #0; // ... если Enter - "сбрасываем" клавишу шоб не пикало !
end;
"Заряженному танку в дуло не смотрят" @Dekmer in WoT

Последний раз редактировалось Kotofff; 24.03.2010 в 20:46.
Kotofff вне форума Ответить с цитированием
Старый 24.03.2010, 22:54   #5
-Flover-
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 28
Вопрос

Kotofff, попробовал твой код... у меня скажем так, две формы где используется этот компонент, на одной один, на второй их три... там где один, работает нормально, там где три, открывается список и сразу закрывается, почему не пойму

Код:
procedure TForm5.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
ComboBox1.DroppedDown := (Key = #13) and (not ComboBox1.DroppedDown);
  if Key = #13 then Key := #0;
end;

procedure TForm5.ComboBox2KeyPress(Sender: TObject; var Key: Char);
begin
ComboBox2.DroppedDown := (Key = #13) and (not ComboBox2.DroppedDown);
  if Key = #13 then Key := #0;
end;

procedure TForm5.ComboBox3KeyPress(Sender: TObject; var Key: Char);
begin
ComboBox3.DroppedDown := (Key = #13) and (not ComboBox3.DroppedDown);
  if Key = #13 then Key := #0;
end;
это к примеру там где три, вроде ж всё правильно

Последний раз редактировалось -Flover-; 24.03.2010 в 23:12.
-Flover- вне форума Ответить с цитированием
Старый 25.03.2010, 00:58   #6
-Flover-
Пользователь
 
Регистрация: 24.03.2010
Сообщений: 28
Счастье

всё, разобрался, у меня в инспекторе было включено AutoComplete поэтому не работало.... спасибо за помощь :-)

аналог моего варианта:
Код:
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
if ComboBox1.DroppedDown=false then
   ComboBox1.DroppedDown:=true
   else ComboBox1.DroppedDown:=false;
    Key := #0;
end;
-Flover- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Каждый символ string в ComboBox1 ? newprog12 Помощь студентам 1 24.01.2010 16:38
Combobox1 = URL russian-stalker Общие вопросы Delphi 3 07.09.2008 13:03