Конференция "Базы" » Компонент типа TListBox, но с привязкой к БД [D6, Firebird 2.1]
 
  • samalex (30.06.10 09:16) [0]
    Уважаемые знатоки!!!
    Подскажите компонент типа TListBox, но чтобы список брал из источника БД, было свойство MultiSelect (можно было выбирать несколько значений) и значения не записывались бы сразу в БД (нет DataSourse и DataField).
    Задача - сделать фильтр, который выбирает набор данных из БД по нескольким значениям.
    Или подскажите, как вы с этим справляетесь.
    Заранее благодарен.
  • 12 © (30.06.10 11:57) [1]
    > Или подскажите, как вы с этим справляетесь

    беру TListBox, выполняю запрос и заполняю TListBox
  • samalex (30.06.10 12:34) [2]
    как заполнять?
    как записывать пары "ключ", "отображение"?
  • Jeer © (30.06.10 12:45) [3]

    > как заполнять?
    > как записывать пары "ключ", "отображение"?


    Заполняй пробежкой по датасету.
    Используй, к примеру TCheckListBox - удобнее
    Items - это TStrings, а значит есть поддержка name=value
    К примеру name - это id, а value - текст или наоборот

    Затем пробегаешь по листам и собираешь id у checked
  • 12 © (30.06.10 12:53) [4]
    ну и так можно

     TOB = class
     public
       Str : string;
     end;

    var
     Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var
     OB : TOB;
    begin
      OB := TOB.Create;
      OB.Str := 'EEEEEEEE';
      ListBox1.Items.InsertObject(0,'ddddd',OB);
      ShowMessage(TOB(ListBox1.Items.Objects[0]).Str);
  • Anatoly Podgoretsky © (30.06.10 14:06) [5]
    > samalex  (30.06.2010 09:16:00)  [0]

    Вроде бы ответ как бы на поверхности TDB
  • samalex (30.06.10 14:20) [6]

    > Вроде бы ответ как бы на поверхности TDB

    В стандартных компонентах?
    Но там (TDBLixBox всякие) нет "MultiSelect" почему то.
    Или просто ТDBGrid использовать?
  • Anatoly Podgoretsky © (30.06.10 16:08) [7]
    > samalex  (30.06.2010 14:20:06)  [6]

    Там есть MultiSelect
  • samalex (30.06.10 18:07) [8]

    > 12 ©   (30.06.10 12:53) [4]
    >
    > ну и так можно
    >
    >  TOB = class
    >  public
    >    Str : string;
    >  end;
    >
    > var
    >  Form1: TForm1;
    >
    > implementation
    >
    > {$R *.dfm}
    >
    > procedure TForm1.Button1Click(Sender: TObject);
    > var
    >  OB : TOB;
    > begin
    >   OB := TOB.Create;
    >   OB.Str := 'EEEEEEEE';
    >   ListBox1.Items.InsertObject(0,'ddddd',OB);
    >   ShowMessage(TOB(ListBox1.Items.Objects[0]).Str);


    Спасибо большое!!! Сделал по аналогии.
 
Конференция "Базы" » Компонент типа TListBox, но с привязкой к БД [D6, Firebird 2.1]
Есть новые Нет новых   [134433   +21][b:0][p:0]