Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.038 c