Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2007, 15:28   #1
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию JvDBTreeView

Как-то не приходилось юзать TreeView....
Попробовал для таблицы использовать JvDBTreeView. Вроде, все ок, но...
вопрос такой: как определить что элемент является последним дочерним в ветке?
Попробовал так:
в OnExpanding написал
if Node.getFirstChild.Data = nil then .....
Ошибку выбрасывает.
_SERGEYX_ вне форума Ответить с цитированием
Старый 24.12.2007, 16:43   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Поменьше вольностей в обращении с TreeView...
Код:
var nod: TTreeNode;
begin
nod:=TreeView1.Selected.getFirstChild;
if nod<>nil then
ShowMessage('Не последний') else
ShowMessage('Последний');
end;
mihali4 вне форума Ответить с цитированием
Старый 24.12.2007, 17:09   #3
andrey4623
Форумчанин
 
Аватар для andrey4623
 
Регистрация: 31.05.2007
Сообщений: 266
По умолчанию

Хе )
andrey4623 вне форума Ответить с цитированием
Старый 26.12.2007, 18:39   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

mihali4, сенкс".
Ох.., времени нет, но все же напишу..., для тех, кто собирается использовать DBTreeView...
Перепробовал подобных компонентов кучу. Во всех чето-то не хватает...
Пока не не "напоролся" на торри.нет на бесплатный компонент DynamicTreeView. В приложенном примере таблица на 50 000 записей работает без каких-либо тормозов. Респек авторам.
Правда, есть одна недоработка... А именно:
Компонент DTTableTree отказывается работать, если DataSource.DataSet не является TTable (т.е. не является BDE). Правда? Мы такие бестолковые? А если мы хотим использовать TABSTable? ... (Спецам дальше не читать, новичкам рекомендуется...)...
В файле DTTableTree.pas... там, где написано
Код:
  if (DataSource.DataSet is TTable) then
  begin
    FCloneDataSet := TTable.Create(nil);
    with FCloneDataSet as TTable do
    begin
      DatabaseName := (Self.DataSource.DataSet as TTable).DatabaseName;
     TableType := (Self.DataSource.DataSet as TTable).TableType;
      TableName := (Self.DataSource.DataSet as TTable).TableName;
      Active := True;
    end;
  end;
Добавим к написанному
Код:
  if (DataSource.DataSet is TABSTable) then
  begin
    FCloneDataSet := TABSTable.Create(nil);
    with FCloneDataSet as TABSTable do
    begin
      DatabaseName := (Self.DataSource.DataSet as TABSTable).DatabaseName;
      TableName := (Self.DataSource.DataSet as TABSTable).TableName;
      Active := True;
    end;
  end;
ну, и, конечно добавим в Users ABSMain... или то, что нужно
добавить для нашей таблицы.

Последний раз редактировалось _SERGEYX_; 26.12.2007 в 18:42.
_SERGEYX_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц