Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.04.2012, 07:53
МАрковка МАрковка вне форума
Прохожий
 
Регистрация: 11.03.2012
Сообщения: 7
Репутация: 10
По умолчанию удаление повторов 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;
Админ: 3-х дневный бан за теги.
Изображения
Тип файла: jpg Безымянный.JPG (86.5 Кбайт, 12 просмотров)

Последний раз редактировалось Admin, 18.04.2012 в 10:43.
Ответить с цитированием
  #2  
Старый 18.04.2012, 08:00
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Код:
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  
Старый 23.04.2012, 12:47
МАрковка МАрковка вне форума
Прохожий
 
Регистрация: 11.03.2012
Сообщения: 7
Репутация: 10
По умолчанию

Спасибо, но практически ничего не изменилось Теперь он увеличивает количество строк в Комбобоксе после каждого нажатия на строку. Т.е. жмем на одну строку в комбобоксе 1 запись, жмем на 2ю строку уже 2 одинаковые записи, жмем на 3ю - уже 3 одинаковые записи.
А еще сами записи попадают только после нажатия на источник данных (т.е. ДБГрид1) и открытия списка
Ответить с цитированием
  #4  
Старый 23.04.2012, 14:26
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Перед i:= 0 пропишите
Код:
DBComboBox1.Clear;
__________________
Google в помощь
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:47.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter