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

Вниз

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

 
Ag2002   (2002-07-19 10:21) [0]

Подскажите пожалуйста, вот есть компонент DbComboBox, в него при старте формы из файла грузятся зачения, и поль-ель, должен выбирать из списка этих значений, но если ни одно значение не подходит, то он в этом же поле вводит свой вариант, ВОПРОС: как этот введенный вариант сохранить, в этот же файл чтобы при загрузке это ввденное значение сохранялось ?


 
Verokko   (2002-07-19 11:56) [1]

По идее надо отследить событие OnKeyPress, там запомнить текущее состояние Cb:=DBComboBox1.Text.
Затем OnExit:
procedure TVvod.DBComboBox1Exit(Sender: TObject);
begin
If Cb<>DBComboBox1.Text then begin
Cb_new:= DBComboBox1.Text;
DBComboBox1.Items.Append(Cb_new);
// и append + post в базу
end;
end;

Вроде так.


 
MsGuns ©   (2002-07-19 12:22) [2]

> Verokko
Надо пополнить не список, а саму таблу (справочник)
Здесь надо добавлять запись в саму таблицу ?


 
Lola ©   (2002-07-19 12:44) [3]


> MsGuns ©
А я вижу в предложенном коде

> // и append + post в базу
И разве список тоже не должен быть обновлен? Или для этого надо перегрузить форму?


 
MsGuns ©   (2002-07-19 13:04) [4]

Это вообще весьма сомнительный способ пополнения справочника.
Я обычно поступаю тупее: никаких комбобоксов на залукапенное поле, а вместо него модальную форму с гридом с таблицей справочника - пополняй, выбирай, изменяй (но не ключи - это отдельная песня !)
А все эти стандартные изгаляции с BDE-шными лукапами - отстой, т.к.:
- во-первых, не дают просмотреть ВСЕ колонки справочника
- во-вторых, ни фильтров, ни норм.поиска (юзер запарится просматривать прайс из 5000 позиций по кодам товара или даже по наименованиям, если он точно НЕ ПОМНИТ, как ОНО обзывается)
- в-третьих, никакой возможности пополнения !


 
Ag2002   (2002-07-19 14:18) [5]

Люди вы меня не так поняли, мне нужно было из текстового файла записли читать и тудаже записывать, но я уже свой собственный код написал, вот работает отлично, надо его поставить, на событие выхода из компонента (кто улудшит буду благодарен):
var
i,k:integer;
begin
k:=0;
if DBComboBoxEh2.Text <> "" then
begin
for i:=0 to DBComboBoxEh2.Items.Count-1 do
if DBComboBoxEh2.Items.Strings[i] <>
DBComboBoxEh2.Text then inc(k);
if k = DBComboBoxEh2.Items.Count then
begin
DBComboBoxEh2.Items.Add(DBComboBoxEh2.Text);
DBComboBoxEh2.Items.SaveToFile("dogovora.dat");
end;
end;
end;


 
MsGuns ©   (2002-07-19 14:40) [6]

Так справочник просто в текстовом файле ? Тогда понятно..
Оригинально, однако..))


 
Ag2002   (2002-07-19 18:17) [7]

А чё нафиг целую таблицу для мак 10 записей, в крайнем случае если что можно и файл шифрануть !!!!


 
kaif ©   (2002-07-20 01:07) [8]

Только одно но.
Добавлять в справочник так можно. А как же удалять или редактировать? Все равно придется для этой цели окно вызывать. Поэтому я считаю, что идеальное решение - применить компонент, у которого 2 кнопки имеются: одна для выпадающего списка, другая - с многоточием - для вызова окна справочника (добавление, удаление, редактирование). Такие компоненты имеются в RxLib и в других пакетах. В конце концов, можно радом с комбо-боксом кнопку поставить для такой цели. Извращаться не надо. Никто это не оценит. И еще совет: не использовать DBComboBox, а использовать DBLookUpComboBox. И справочник в отдельной таблице хранить. И ссылку на него цифровую иметь...



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
7-35481
sizmrebi
2002-05-23 17:32
2002.08.12
Matrix Printers


4-35520
jonik pegas
2002-06-07 13:23
2002.08.12
Рисование на форме и скроллинг


4-35516
SStas
2002-06-07 09:03
2002.08.12
Резидент


14-35423
Premium
2002-07-16 20:44
2002.08.12
Я поступил!


1-35240
Алексей126734345
2002-07-31 06:35
2002.08.12
Размер межстрочного интервала в memo или Richedit.