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

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

DBComboBox? [D7, dBase, FoxPro]


ГАГН ©   (2004-03-11 08:59:00) 

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

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


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

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


DenK_vrtz   (2004-03-11 12:55:00) [2]

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

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


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

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


Fuelfire   (2004-03-11 11:20:00) [4]

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


Vlad   (2004-03-11 10:46:00) [5]


> 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 10:34:00) [6]

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

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;
Только код не проверял.. Строки, конечно, можно и по другому сравнивать...


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

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


Vlad   (2004-03-11 10:22:00) [8]

IndexOfName(строка)


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

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


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

Ентер


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

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


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

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


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

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


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

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


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

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


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

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


Наверх

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