![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Всем доброго времени суток!
Помогите, пожалуйста. На Форм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; |
| Этот пользователь сказал Спасибо Ildar-tsr за это полезное сообщение: | ||
МАрковка (23.04.2012)
| ||
|
#3
|
|||
|
|||
|
Спасибо, но практически ничего не изменилось
Теперь он увеличивает количество строк в Комбобоксе после каждого нажатия на строку. Т.е. жмем на одну строку в комбобоксе 1 запись, жмем на 2ю строку уже 2 одинаковые записи, жмем на 3ю - уже 3 одинаковые записи. А еще сами записи попадают только после нажатия на источник данных (т.е. ДБГрид1) и открытия списка ![]() |
|
#4
|
||||
|
||||
|
Перед i:= 0 пропишите
Код:
DBComboBox1.Clear; |