Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.11;
Скачать: CL | DM;

Вниз

DBComboBox?   Найти похожие ветки 

 
ГАГН   (2004-03-11 08:59) [0]

В DBComboBox есть такое свойство как Items. У меня в него добавлено несколько итемов. А как сделать автоматическое добавление нового итема.
Т. е., запускаю программу, пишу новое значение и это значение, конечно если оно новое, добавляется в свойство Items.

Пожалуйста помогите!


 
Лысый   (2004-03-11 09:05) [1]

Сделай обработчик DBComboBox KeyPress или KeyDown и
загони в него
if key=#13 then
DBComboBox.Items.Add(DBComboBox.Text);
После набора значения по нажатию Enter будет добавляться
твое значение.


 
Наталия ©   (2004-03-11 09:06) [2]

А в чём проблема? В проверке существующего значения или в добавлении?


 
ГАГН   (2004-03-11 09:16) [3]

И в том и другом! Не понимаю я этот компонент!


 
ГАГН   (2004-03-11 09:18) [4]

Лысый, а если тоже самое сделать для onChange, то это получится?


 
Лысый   (2004-03-11 09:24) [5]

Должно, попробуй.


 
ГАГН   (2004-03-11 09:34) [6]

А что такое key=#13?


 
ЫЗШКШЕ   (2004-03-11 09:39) [7]

Ентер


 
SAMOVAR   (2004-03-11 10:17) [8]

А как сделать проверку на то, что новая это запись или старая?


 
Vlad ©   (2004-03-11 10:22) [9]

IndexOfName(строка)


 
Соловьев ©   (2004-03-11 10:23) [10]

надо юзать MRUList - там это уже реализовано


 
Fuelfire   (2004-03-11 10:34) [11]

Если я правильно понял вопрос - попробуй вот так:

procedure TForm1.Button1Click(Sender: TObject);
var i,fl: integer;
begin
for i:=0 to (DbComboBox.Items.Count-1) do begin
 if (AnsiUpperCase(DbComboBox.Items[i]) = AnsiUpperCase([Поле, куда вводишь значение].Text))= True then
   begin  
     fl:=1;
     Break;
   end;
end;
if fl<>1 then DbComboBox.Items.Add([Поле, куда вводишь значение].Text)
else
ShowMessage("Такое значение уже есть!") ;
end;
Только код не проверял.. Строки, конечно, можно и по другому сравнивать...


 
Vlad ©   (2004-03-11 10:46) [12]


> Fuelfire   (11.03.04 10:34) [11]

Думаю так все таки проще будет :-)
if DbComboBox.Items.IndexOf(...)>-1 then
 ShowMessage("Такое значение уже есть!")
else
 DbComboBox.Items.Add(...)

P.S. в [9] я ошибся, не IndexOfName, а IndexOf, конечно


 
Fuelfire   (2004-03-11 11:20) [13]

> Vlad ©
Да, бесспорно этот вариант решения лучше..
Не проснулся еще, когда постил :-))


 
ГАГН   (2004-03-11 12:50) [14]

Все получилось, но при выходе из программы, а потом при повторном ее запуске значения которые были введены стираются.
Как можно их сохранить?


 
DenK_vrtz ©   (2004-03-11 12:55) [15]

>ГАГН   (11.03.04 12:50) [14]
>Как можно их сохранить?

куда-нить записать


 
Fuelfire   (2004-03-11 13:07) [16]

> ГАГН
> значения которые были введены стираются
Для чего ты используешь DBComboBox?
Значения нужно заносить в определенное поле определенной таблицы, а потом при загрузке приложения считывать данные в DBComboBox.. Если же нужно показывать в выпадающем списке значение поля конкретной записи - используй DBLookupComboBox.. И тогда ничего не сотрётся :-)



Страницы: 1 вся ветка

Текущий архив: 2004.04.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
3-1079440364
Максим
2004-03-16 15:32
2004.04.11
ADO и Ms OLE DB Provaiders - как работать с dBase IV базами?


1-1080126357
WebErr
2004-03-24 14:05
2004.04.11
no comments


1-1082584702
Роман
2004-04-22 01:58
2004.04.11
Сохранение отдельных свойств форми после её закрытия


3-1081238047
slavon
2004-04-06 11:54
2004.04.11
Десятичный разделитель в dbExpress под Kylix2


1-1080128105
headerr
2004-03-24 14:35
2004.04.11
как получить длинну стоки текста в Stringgride