|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Связывание TreeView и ListView совместно с Access
Здравствуйте! Пишу программу, по крайней мере, пытаюсь ее писать, но очень много трудностей возникает, надеюсь на вашу помощь.
На форме есть TreeView и ListView, также ADOConnection и ADOQuery. и таблица Access: (см. рисунок) TreeView заполнен таким образом: (см. рисунок) С помощью ADOQuery я вывожу строки из таблицы в ListView: (см. код) Код:
procedure TForm1.LoadTasks; var res, id_par, id_bab: string; begin TasksLV.Items.BeginUpdate; TasksLV.Items.Clear; case TreeView1.Selected.Parent.Index of -1: id_par := 'where ID_parent = 0'; 0: id_par := 'where ID_parent = 0'; 1: id_par := 'where ID_parent = 1'; 2: id_par := 'where ID_parent = 2'; end; case TreeView1.Selected.Index of 0: id_bab := 'ID_baby = 0'; 1: id_bab := 'ID_baby = 1'; 2: id_bab := 'ID_baby = 2'; end; ADOQuery1.SQL.Text := 'select * from task ' + id_par + ' and ' + id_bab; ADOQuery1.Open; while not ADOQuery1.Eof do begin with TasksLV.Items.Add do begin Data := Pointer(ADOQuery1.FieldByName('ID').AsInteger); Caption := ADOQuery1.FieldByName('title').AsString; SubItems.Add(ADOQuery1.FieldByName('description').AsString); SubItems.Add(ADOQuery1.FieldByName('ID_parent').AsString); SubItems.Add(ADOQuery1.FieldByName('ID_baby').AsString); //SubItems.Add(ADOQuery1.FieldByName('run').AsString); if ADOQuery1.FieldByName('run').AsInteger = 0 then res := 'Нет' else res := 'Да'; SubItems.Add(res); end; ADOQuery1.Next; end; TasksLV.Items.EndUpdate; end; Код:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode); begin LoadTasks; end; Также выкладываю исходник своей программы. http://evgenmil.gimnaziya-nt.ho-stin...c/ListView.rar Заранее благодарю! |