![]() |
|
|
![]()
|
|
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Нужно реализовать такую штуку
Есть какой либо кодекс, в нем есть часть, в части есть глава, в главе статьи, те иерархия некая Кодес Часть1 Глава1 Статья1 ... Часть2 Глава1 Статья123 Это есть во многих известных программах (по виду похоже что используется TreeView), так вот, собственно с этого начинаются вопросы, как это сделать проще всего? Пока придумал так раскидать все статью и по файлам те статья 1 в 1.txt, статья 2 в 2.txt, ну и тд, а потом просто смотреть что в данный момент нажто и открывать соответствующую статью... Глупо? БД наверное надо? а если бд, то структура бд такая? Номер статьи - числовое название - текстовое текст - Мемо Или как это ваще реализовать... Есть вариант еще сделать с гиппертекстом, но мне ваще неясно как с ним работать, те грузится в рич весь кодекс один раз, а при нажатии на конкретную статью, просто переходит по гипперссылке, но я еще такого ни разу не делал... А про TreeView вопросы Как узнать, что сейчас выбрали в нем? На какое событие писать загрузку текста статьи из файла в ричэдит например? те интерфейс будет такой справа тривью со списком статей, А СПРАВА РИЧЭДИТ, ГДЕ БУДЕТ ОТОБРАЖАТЬСЯ ВЫБРАННАЯ СТАТЬЯ -------------------- |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 3 Всего: 58 |
Мои размышления.
По поводу хранения: Номер части - числовое Номер главы - числовое Номер статьи - числовое Название - текстовое Текст - Мемо По поводу гипертекста: Просто вместо обычного текста в Memo хранить полный код веб-странички, ну или генерировать ее при загрузке. А про TreeView:
|
|||
|
||||
| Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
+ еще возник вопрос
Как грамотно работать с этим компонентом
да он возвращает мне индекс, но только на текущем уровне, те там так получается 0 0 0 1 2 3 0 0 1 2 я просто не пойму, как понять что сейчас выбрано, те уникальный идентификатор выбранное, чтобы потом в зависимости от выбранном открыть нужный файл... Добавлено через 5 минут и 23 секунды
а как привязать к treeview все это дело, нашел пока только вот это Добавлено через 5 минут и 27 секунд http://www.realcoding.net/article/view/4488 -------------------- |
||||
|
|||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 3 Всего: 58 |
||||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
потихоньку начал подрубать, что да как, уже и добавляется че-то и... короче не все так плохо
А добавлять как? 1) Добавляю части часть 1 часть 2 потом для это части добавляю главы часть 1 глава1 глава2 часть2 глава3 потом для глав добавляю статьи так? я просто не пойму пока сам алгоритм, как пробегать по БД, и как добавлять... по уровням, или последовательно, сначала главы и статьи для первой части, потом перехожу к второй? -------------------- |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 3 Всего: 58 |
Да, можно и так. Например: 1) 1 запрос - определяем MAX(Номер части) -> получаем количество частей (пусть = A); добавляем A пунктов в дерево; 2) 2 запрос - делаем выборку по глав для каждой части, добавляем дочерние узлы к соответствующему A; и т.д. для статей. |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
ладно, попробую, а сейчас спать пошел...
-------------------- |
|||
|
||||
| A5uKa |
|
|||
|
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 2 Всего: 16 |
У меня есть реализованный в Access проект такой.
только не мемо а рич с форматированным текстом хранится как блоб стрим на каждой ветке реализация дерева элементарна level message rich , больше ничего не надо. |
|||
|
||||
| Dmi3ev |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
A5uKa, а поделится куском кода нельзя чтоль??? раз есть... а то, на словах и я могу залечить кому угодно что угодно... я просто не поинмаю, нах говорить: "У меня есть"
это как -то ваще не помогло, поподробнее немного, что ты подразумеваешь под уровнем, что под сообщением, что под богатым (rich) Это сообщение отредактировал(а) Dmi3ev - 9.5.2009, 15:14 -------------------- |
||||
|
|||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 3 Всего: 58 |
||||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Keeper89, спасибо. Я не могу понять, как связать тривью с БД, те заполнить его думаю смогу опираясь на БД, но что мне хранить в Дата у тривью так, чтобы при нажатии на выбранный элемент, сразу открывать в риче нужный текст??? вот в чем вопрос, просто коряво, я думаю смогу сделать, а мне надо бы правильно...
-------------------- |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 3 Всего: 58 |
Во-первых надо глянуть, есть ли у A5uKa что-нибудь интересное. А так, если TreeView уже заполнен, алгоритм такой:
P.S. Если нужен пример использования, могу накидать когда время будет и если у A5uKa нет уже готового. |
|||
|
||||
| Dmi3ev |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1698 Регистрация: 28.11.2007 Репутация: 16 Всего: 41 |
Ладно, пока есть и так работа, подожду, может A5uKa что-то выложит, может ты, может сам допру...
-------------------- |
|||
|
||||
| A5uKa |
|
||||||
|
TЋ♥s F1rȜ iƧ BurȠiƞg ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 1928 Регистрация: 30.8.2008 Репутация: 2 Всего: 16 |
Какой кусок кода ? Хватит возмущаться !
На мой взгляд ответ был достаточен уже тут :
а если надо подробнее - так и говори, без сарказма вот я рисую дерево
только просьба не смеяться если что-то тут тупо вот событие он клик
структура базы соответственно TREETreePart он же level TREEMessage он же Message и DATA ну а ... TREE->Locate("iindex" - вспомогательная часть переназначаю её когда гружу дерево... Правильнее было бы создать на это массив 2хN где 1ый элемент ключ базы , второй - абсолютный индекс таблицы, но у меня тупее |
||||||
|
|||||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Кстати, информацию в TreeView можно загрузить целиком в текстовом виде через метод LoadFromFile/LoadFromStream
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |