Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > поиск по obect в combobox


Автор: bistropoke 31.10.2011, 20:41
Приветствую.
Есть один Combobox.
Который заполнен из БД.
Код

procedure TForm3.fillediz;
var
  squery:string;
  eid: integer;
  ename: string;
begin
  if DM.MainConn.Connected = true then
  begin
   self.ComboBox1.Clear;
   squery:='select * from nsi_edizm';
   DM.Q1.SQL.Clear;
   DM.Q1.SQL.text:=squery;
   DM.Q1.Open;
   while not DM.Q1.EOF do
   begin
    eid:=DM.Q1.fieldbyname('idnsi_edizm').asinteger;
    ename:=trim(DM.Q1.fieldbyname('name').asstring);
    self.ComboBox1.Items.AddObject(ename,TObject(eid));
    dm.Q1.Next;
   end;
   dm.q1.Close;
  self.ComboBox1.ItemIndex:=0;
  end;
end;           

То есть в значении Item Хранится текстовое описание, а в Items.Objects айди.
Нужно выполнить поиск по айди и сделать данную строку активной.

Автор: northener 31.10.2011, 20:55
Цитата(bistropoke @  31.10.2011,  20:41 Найти цитируемый пост)
Нужно выполнить поиск по айди

IndexOfObject

Автор: bistropoke 31.10.2011, 21:29
сделал через

Код

if DM.MainConn.Connected = true then
      begin
      squery:='select * from type_params where idtype_params='+inttostr(self.id);
      DM.Q1.SQL.Clear;
      DM.Q1.SQL.text:=squery;
      DM.Q1.Open;
      dedizm:= DM.Q1.FieldByName('edizm').Asinteger;
      self.ComboBox1.itemindex:=self.ComboBox1.items.IndexOfObject(TObject(dedizm));
      DM.Q1.close;
      end;    


вроде работает

Автор: northener 31.10.2011, 23:39
Цитата(bistropoke @  31.10.2011,  21:29 Найти цитируемый пост)
вроде работает 

А чего бы этому коду не работать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)