|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
удаление повторов DBCombobox
Всем доброго времени суток!
Помогите, пожалуйста. На Форм1 есть Дбгрид1 и ДБгрид2. В ДБгрид2 встроен ДБКомбобокс, который берет данные из ДБГрид1. вот код, который у меня сейчас... НО в итоге получается вот так (см.вложения). В комбобокс данные попадают только после нажатия на строку в Дбгрид1. Код:
procedure TForm1.DBComboBox1DropDown(Sender: TObject); var i: integer; begin i := 0; while i < DBGrid1.DataSource.DataSet.RecordCount do begin DBGrid1.Columns[0].PickList.Add(DBGrid1.Fields[0].AsVariant); inc(i); end; DBComboBox1.Items.Assign(DBGrid1.Columns[0].PickList); end; Последний раз редактировалось Admin, 18.04.2012 в 10:43. |
#2
|
||||
|
||||
Код:
procedure TForm1.DBComboBox1DropDown(Sender: TObject); var i: integer; s: string; begin i := 0; s:= ''; while i < DBGrid1.DataSource.DataSet.RecordCount do begin if s <> DBGrid1.Fields[0].AsString then begin DBGrid1.Columns[0].PickList.Add(DBGrid1.Fields[0].AsVariant); s:= DBGrid1.Fields[0].AsString; end; inc(i); end; DBComboBox1.Items.Assign(DBGrid1.Columns[0].PickList); end; Google в помощь |
Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение: | ||
МАрковка (23.04.2012)
|
#3
|
|||
|
|||
Спасибо, но практически ничего не изменилось Теперь он увеличивает количество строк в Комбобоксе после каждого нажатия на строку. Т.е. жмем на одну строку в комбобоксе 1 запись, жмем на 2ю строку уже 2 одинаковые записи, жмем на 3ю - уже 3 одинаковые записи.
А еще сами записи попадают только после нажатия на источник данных (т.е. ДБГрид1) и открытия списка |
#4
|
||||
|
||||
Перед i:= 0 пропишите
Код:
DBComboBox1.Clear; Google в помощь |