Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Мастера DELPHI. Новости мира компонент, FAQ, статьи...


Информационный Канал Subscribe.Ru

Ежедневная рассылка сайта Мастера DELPHI

DELPHIMASTER.ru

Выпуск от 27.10.03 09:04

Обновился дайджест по FAQ. Скачать можно здесь
Вышел очередной дайджест форумов. Скачать можно здесь
Новые компоненты   |x|
  • Local Heap Memory Manager v.1.0 (7kb) (26.10.03 15:08)
    Заменитель диспетчера памяти Делфи, позволяет ограничить доступную память вашему приложению. Очень удобно для поиска дыр в памяти в ваших компонентах или для имитации условий нехватки памяти.
    Или просто понаблюдать, что происходит за кулисами...

    С исходными текстами
    Компонента из раздела: System: Memory
    Источник: www.torry.net   Автор: Carsten Zeumer
    -= · Tools · Samples · =- [Перевел: McSimm]

  • Для уменьшения объема писем здесь публикуется не весь список новых компонент, потому заглядывайте и на сайт!
Кое-что из нашей кладовки   |x|
Лучшее из нашего FAQ   |x|
Иерархические структуры...
Supervisor   (13.04.01 17:20)

Может у кого есть примеры или идеи как хранить иерархические структуры в базе данных. К примеру некую виртуальную файловую систему (типа вложенных папок).
Желательно чтоб использовался язык триггеров и хранимых процедур.
Структура из базы должна загружаться в компонент типа TTreeView
 Заранее благодарен!




kayaker   (13.04.01 18:11)

Наверное есть какие-нибудь компоненты, но я вручную деревья храню. У каждого объекта есть предок, номер уровня в структуре и т.п.




Polevi   (13.04.01 21:10)

Я делаю так:
Есть таблица Structure В ней три поля: Ресурс - autoInc, Владелец - integer, Значение - string Например
1 0 Root
2 1 FirstNode
3 1 SecondNode
4 1 ThirdNode
5 2 FisrtFirstSubNode
6 2 SecondFirstSubNode
7 3 SecondSubNode
8 4 FirstThirdSubNode
9 4 SecondThirsSubNode

Для отображения структуры в TreeView я поступаю так:


type
TNodeData=record
 table:TDataset;
 resource,owner:integer;
end;

(поле Table сделано для того чтобы в TreeView можно было отображать данные из различных таблиц типа Structure)

Затем в TreeView создается ветка

var
nodeData:^TNodeData;
node:TTreeNode;

new(nodeData);

nodeData.table:=table1;
nodeData.resource:=1
nodeData.owner:=0;
node:=items.AddChild(nil,'Root');
node.data:=nodeData;

После чего достаточно перегрузить OnNodeExpanding - зная ресурс ветки которую мы распахиваем можно отфильтровать table1 - table1.Filter:='Владелец='+ресурс этой ветки
table1.Filtered=true

while not table.EOF do
begin
и здесь делаем AddChild к распахиваемой ветке (создавая для каждой структуру TNodeData)

Примерно так, ну а вообще я могу поделится своим компонентом, пиши if u wish




Алексей   (16.04.01 08:46)

Должны обязательно быть два поля предок и на кого он ссылается. Например
id  Naim   Parent
1   Область1  -1
2   Область2  -1
3   Город1     1
4   Город2     1
5   Город3     2
4   Город4     2
Следовательно - область верхний уровень ерархии. Города
нижний, то есть города1-2 относяься к первой области, города3-4 к второй. Обычно по таким принципам и строится вся ерархия. Для этого существуют компоненты типа DBTreeList. Они есть в пакетах Polaris,
ExpressQuantumGrid. Либо простенкий можно написать самому.  




Игорь   (16.04.01 09:30)

Polevi
Очень интересный вопрос.
Можно поподробнее или компонент для примера
Заранее спасибо :-)                    




SergSuper   (16.04.01 16:41)

Есть очень неплохая статья
http://sdm.viptop.ru/articles/sqltrees.html
вообщем с деревьями надо совсем не так работать




Комментарий от "Konstantin R.Beliaev" (konst@nt.ru)
На ib.demo.ru есть несколько статей на этот счет. Если вкратце, то есть 3 подхода:
1) уже упоминался: у объекта указывается родитель, недостаток в том, что если надо найти всех потомков, то приходится делать рекурсивный запрос
2) указывается не родитель, а путь (типа "/1/7/24"), недостатки - длина поля (а соответственно и пути) ограничена, и обработку строк на сервере организовать не совсем просто
3) метод Joe Celko, очень похож на вложенные множества: (a (bb) (c(dd)c) a) - здесь одинаковые буквы принадлежат одинаковым объектам, т.е. B и C потомки A, D - потомок С. Если теперь буквы заменить цифрами по порядку (1 (23) (4(56)7) 8), то у каждого объекта получится 2 свойства (left, right), по которым легко организовать выбор всех потомков. Недостаток - невозможно выбрать ближайших предков или потомков.
Видимо, оптимальной будет комбинация 1 и 3 методов. Вот реализовать это...

»»» Прислать свои комментарии

Обсуждается в конференциях   |x|
У нас большой выбор статей   |x|
Поиск и фильтрация данных в Delphi
Базы данных являются удобным средством хранения структурированной информации. Однако само по себе накопление и хранение информации делает базу данных большой кучей мусора. Удобно организованный поиск и отбор информации способен резко повысить эффективность ее использования. В данной статье мы попытаемся разобраться в методах поиска информации, реализованных в Delphi. Предполагается, что Вы в общих чертах знакомы с теорией реляционных баз данных и имеете некоторый опыт программирования на Delphi.
Новинки книжного рынка   |x|
Эффективное программирование TCP/IP. Библиотека программиста
Программирование TCP/IP может показаться очень простым, но это заблуждение. Многие программисты сталкиваются с тем, что написанное ими сетевое приложение недостаточно надежно. Часто причиной такого положения дел является неосторожное обращение с сетевыми протоколами. Поэтому основное внимание в данной книге уделено тонким вопросам функционирования семейства протоколов и способам работы с ними. Здесь изложены подтвержденные практикой советы, технические приемы и эвристические правила программирования TCP/IP для достижения максимальной производительности; показано, как избежать многих типичных ошибок. Каркас кода и библиотека функций дают возможность создавать приложения, не думая о низкоуровневых деталях. Основные идеи и концепции иллюстрируются многочисленными примерами. Вы станете лучше понимать внутреннее устройство TCP/IP и получите необходимые практические навыки работы с этим семейством протоколов.
Автор: Jon Snader
Другие сайты о DELPHI   |x|
DelphiHiTech - Профессиональное программирование
Это крупный портал для Delphi программистов. Здесь можно найти: статьи, исходники, готовые программы, компоненты, ссылки на сайты по программированию, голосования, тесты и многое другое...

» Оценка сайта: 3
Опрос населения :)
Новый журнал для программистов "RSDN Magazine". За какую сумму вы готовы его покупать?
»»» 80р.
»»» 100р.
»»» 120р.
»»» 150р.
Для души

Хокку дня
Вот выплыла луна,
И каждый мелкий кустик
На праздник приглашен,

Афоризмы
Лучший путь к счастью - не искать его... (Монтефиоре)

Фраза дня
Давайте сами дуть в свои паруса.

Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Денвере (США) ловцы бродячих собак перед очередной облавой должны "предупредить собак, повесив за три дня объявление на дереве в городском парке".
В провинции Нью Брансвик в Канаде запрещено “ездить по дорогам на автомобиле”.

И на закуску коротенький анекдот
- Ты уже 10 лет женат, и ни разу не изменил! Почему?
- Ну... на то есть две причины...
- Наверное любовь и верность?
- Нет, лень и порносайты!

Фотоприколы.
Начните день с хорошего настроения!
http://www.delphimaster.ru/cgi-bin/prikol.pl?id=323297


На этом позвольте откланяться и пожелать вам удачного дня.
Искренне ваш, Алексей (merlin@delphimaster.ru)

Добро пожаловать на сайт -= Мастера DELPHI =- 


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное