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

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


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

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

DELPHIMASTER.ru

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

Кое-что из нашей кладовки   |x|
  • Hack 0.1 Шоломицкий 02pm@mail.ru   (06.06.03 22:53)
    Если вы любите компьютеры, увлекаетесь хаком, фрикингом и т.д.., то эта программа для вас! Вам больше не надо посещать хакерские сайты, чтобы накачать различных статей! За вас сделал это я.. я собрал статьи с разных хакерских сайтов в одну БД. Тоесть, скачав программу, вы сможете в оффлайне спокойно читать статьи по хакингу... Программа имеет красивый интерфейс, уже сейчас в программе около 300 статей. Размер не сжатой БД (Access)-2.5 Мб, а это чистый текст безо всякой графики!
    »»» Скачать: исходные тексты
  • Hack 0.1 Шоломицкий 02pm@mail.ru   (06.06.03 22:52)
    Юль, оставь мне что-нить вгостевухе, а то она у меня новая, а сообщений нету почти
    »»» Скачать: исходные тексты
Лучшее из нашего FAQ   |x|
Иерархические структуры...
Supervisor   (13.04.01 17:20)

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




kayaker   (13.04.01 18:11)

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




Polevi   (13.04.01 21:10)

Я делаю так:
Есть таблица Structure В ней три поля: Ресурс - autoInc, Владелец - integ! er, Значение - 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.Filter! ed=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|
  • integer & string
    такой вопрос беру в дельфи текст из memo1 из стринг преобразовываю в интегер; procedure TForm1.Button1Click(Sender: ...
  • Даты
    Плиз, киньте строчку фильтра по полю типа дата. Допустим вывести все записи, где данное поле больше текущей даты. (...
  • Размеры TTF
    Здравствуйте! Подскажите или дайте ссылку где почитать про размеры и соотношения в шрифтах. Например, в структуре ...
  • Информация по раскладкам клавиатуры
    День добрый! Не подскажете ли, как получить инфо о сочетании клавиш, используемом для переключения раскладки клавиатуры....
  • CopyFiles
    Здравствуйте , мастера! Как можно скопировать содержимое директории 'C:\a' в 'C:\b' ? Спасибо!
  • Загруженность проца, как определить?
    Кто-нибудь знает, как можно определить загрузку ЦП (не отжирая при этом много системных ресурсов)? А то искал везде - ...
  • Ускорение поиска
    Доброй ночи, уважаемые! Подскажите плз, решение след. проблемы: есть ДАТАСЕТ с большим набором данных (5000 записей). ...
У нас большой выбор статей   |x|
Программирование Интернет приложений в Borland Kylix. Часть I. Создай своих демонов!
В этой статье речь пойдет о создании интернет серверов (сетевых демонов) в Linux при помощи среды разработки Kylix и входящего в нее набора компонентов Internet Direct. В качестве примера описывается разработка простого сервера протокола HTTP.
Новинки книжного рынка   |x|
Изучаем Delphi
Книга из серии «Компас» — «компьютерный ас» — предназначена для школьников, умеющих обращаться с компьютером и интересующихся программированием. Просто, ясно, наглядно, доступно и достоверно — вот ее девиз. На простых примерах, интересных школьникам средних и старших классов, она вводит читателя в богатый и разнообразный мир одной из самых популярных современных систем программирования — Delphi. В книге сделан упор на базовых конструкциях языка программирования. При этом используется мощь изобразительных возможностей Delphi, позволяющих увидеть, как на экране монитора в буквальном смысле «оживают» те или иные объекты учебной программы. Весь материал книги апробирован на занятиях в Московском детском клубе «Компьютер». Если, прочитав книгу, вы подружитесь с Delphi, как это сделали участники студии программирования клуба, то цель данного пособия будет достигнута.
Автор: Жуков А. В.
Другие сайты о DELPHI   |x|
Сертификация по продукту Delphi. Сертификат международного образца Borland
Сертификация по продукту Delphi. Сертификат международного образца Borland.
подрожнее на нашем сайте или по
email: Koveshnikov@interface.ru
тел.: 105-00-49 (спросить Ковешникова Юрия)

» Оценка сайта: 4
Опрос населения :)
Стоит ли устраивать встречи программистов в реале? (пирушки :)
»»» Обязательно!
»»» Иногда можно
»»» Я туда не пойду
»»» Категорически нет
Для души

Хокку дня
Мальчик, пускающий змея,
Hе знаешь ли, где вендиспансер?
Счастливая детства пора...

Афоризмы
Современный бизнесмен должен говорить по-английски чисто и по-русски - чисто конкретно.

Фраза дня
Ну хорошо, допустим, поцелую...

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

И на закуску коротенький анекдот
Белая ночь! Дамы приглашают кавалеров!

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


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

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


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

В избранное