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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.03.2009, 15:53
evgenmil evgenmil вне форума
Прохожий
 
Регистрация: 29.11.2008
Сообщения: 5
Репутация: 10
Печаль Связывание 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;
на событие изменения TreeView я поставил загрузку этой процедуры LoadTasks:
Код:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
LoadTasks;
end;
Но при компиляции программы, и на событие OnChange - TreeView, показ итемов в ListView происходит неправильно, как задумано. Помогите найти правильный ход решения моей задумки, и исправить ее.
Также выкладываю исходник своей программы.
http://evgenmil.gimnaziya-nt.ho-stin...c/ListView.rar
Заранее благодарю!
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter