Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.01.2010, 10:24
Katunya Katunya вне форума
Прохожий
 
Регистрация: 28.01.2010
Сообщения: 4
Репутация: 10
По умолчанию Ограничение вводимых значений в ComboBox

Доброго времени суток!
Извините если такой вопрос был уже задан, тогда просьба указать ссылочку где это возможно прочитать.

Вопрос такой - надо ограничить вводимые пользователем значения для combobox'а только теми, что имеются в нем. Т. е. пользователь не должен иметь возможность ввести собственное значение. при этом изменение style не годится. Значения в ComboBoox заносятся из файла txt. Спасибо за помощь
Ответить с цитированием
  #2  
Старый 28.01.2010, 10:55
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Поставь значение свойства ReadOnly = True, тогда можно будет только выбрать...
//Чуть позже...Хм в Delphi 7 у комбобокса такого свойства нет...в Delphi 2010 есть...
Если хочешь чтобы можно было вводить, но только в пределах списка, тогда нужно самому писать проверку на вводимые данные по событию KeyPress...
Т.е. При введении нового символа проверяешь есть ли такой символ в данной позиции в твоем списке...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 28.01.2010 в 11:07.
Ответить с цитированием
  #3  
Старый 28.01.2010, 11:04
Katunya Katunya вне форума
Прохожий
 
Регистрация: 28.01.2010
Сообщения: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от NIch
нужно самому писать проверку на вводимые данные по событию KeyPress...
Именно это и требуется...
в Делфи не сильна поэтому вот и обратилась за помощью

Последний раз редактировалось Katunya, 28.01.2010 в 11:12.
Ответить с цитированием
  #4  
Старый 28.01.2010, 15:46
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Цитата:
Сообщение от Katunya
при этом изменение style не годится.

Чем же style не годится?
Ответить с цитированием
  #5  
Старый 28.01.2010, 21:19
Katunya Katunya вне форума
Прохожий
 
Регистрация: 28.01.2010
Сообщения: 4
Репутация: 10
По умолчанию

потому как список у меня примерно следущий
А00
А00.1
А00.2
...
Z99.9

и таких строк примерно 18500 (всего)

и если я выставляю значение csDropDownList то при вводе А - автоматически у меня выбирается А00 и с этим я больше ничего поделать не могу (реализован автоподбор еще в Combo), а мне к примеру не А00 надо а А00.1... ввод А00. почему то дальше тоже не прокатывает.

а при значении csDropDown - все нормально, но это значение использовать не могу, потому как надо только из списка и другие символы нельзя вводить кроме как только значения из списка
Ответить с цитированием
  #6  
Старый 28.01.2010, 21:52
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

18500 элементов для комбо?
Т.е. вы хотите сказать, что выбор корневого элемента невозможен? Тогда зачем его вообще в список включать? Не включайте в список не содержащие дочерних элементы, да и все.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 28.01.2010, 21:56
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,035
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

вообще-то, при style = csdropDownList можно выбрать любое значение из списка. Даже с клавиатуры. Только надо либо быстро набирать, либо действовать так:
1. Нажимаем "А"
2. стрелками "Вверх" и "Вниз" переходим на нужное значение.
Ответить с цитированием
  #8  
Старый 29.01.2010, 06:44
Katunya Katunya вне форума
Прохожий
 
Регистрация: 28.01.2010
Сообщения: 4
Репутация: 10
По умолчанию

Данная задачка является исправлением/дополнением в действующую программу.. и весь этот список в 18500 строк - список всевозможных диагнозов..просто те, кто вбивает данные диагнозы, иногда по ошибке вводят то, чего нет...вследствии чего страдает и пациент и доктора и т.д и т.п.

поэтому что-либо выкидывать из него нельзя...
вот такие вот дела...
Ответить с цитированием
  #9  
Старый 26.04.2010, 01:45
User66 User66 вне форума
Прохожий
 
Регистрация: 26.04.2010
Сообщения: 1
Репутация: 10
По умолчанию

Цитата:
Сообщение от Katunya
Вопрос такой - надо ограничить вводимые пользователем значения для combobox'а только теми, что имеются в нем. Т. е. пользователь не должен иметь возможность ввести собственное значение.

procedure TMyForm.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;

пользователь вообще не сможет вводить ничего с клавиатуры и выбирать придется только из списка
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:50.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter