-
Уважаемые знатоки!!!
Подскажите компонент типа TListBox, но чтобы список брал из источника БД, было свойство MultiSelect (можно было выбирать несколько значений) и значения не записывались бы сразу в БД (нет DataSourse и DataField).
Задача - сделать фильтр, который выбирает набор данных из БД по нескольким значениям.
Или подскажите, как вы с этим справляетесь.
Заранее благодарен.
-
> Или подскажите, как вы с этим справляетесь
беру TListBox, выполняю запрос и заполняю TListBox
-
как заполнять?
как записывать пары "ключ", "отображение"?
-
> как заполнять?
> как записывать пары "ключ", "отображение"?
Заполняй пробежкой по датасету.
Используй, к примеру TCheckListBox - удобнее
Items - это TStrings, а значит есть поддержка name=value
К примеру name - это id, а value - текст или наоборот
Затем пробегаешь по листам и собираешь id у checked
-
ну и так можно
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);
-
> samalex (30.06.2010 09:16:00) [0]
Вроде бы ответ как бы на поверхности TDB
-
> Вроде бы ответ как бы на поверхности TDB
В стандартных компонентах?
Но там (TDBLixBox всякие) нет "MultiSelect" почему то.
Или просто ТDBGrid использовать?
-
> samalex (30.06.2010 14:20:06) [6]
Там есть MultiSelect
-
> 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);
Спасибо большое!!! Сделал по аналогии.