Offline версия форума по Ms Access http://HiProg.com.
Продукт: Ms Access 97
Автор: Митин Андрей.
Скачать:
amKMForum (388 К), OCX для amKMForum (845 К).
Эта работа представляет собой простой пользовательский интерфейс для
форума по Ms Access
http://HiProg.com, который создатели форума выложили в формате
mdb на своем сайте http://HiProg.com/access/default.asp?Chapter=106.
Программа позволяет осуществлять поиск и отображение
информации из данного форума. Поиск можно осуществлять по следующим полям форума
в любых комбинациях:
- Автор (e-mail);
- Автор (ник);
- Дата сообщения;
- Тело сообщения;
- Тема сообщения;
- Тема и тело сообщения.
Каждое непрочитанное сообщение в дереве сообщений отображается жирным
шрифтом. После его прочтения (интервал, после которого сообщение
считается прочитанным можно настроить - меню "Сервис" ->
"Настройки") оно будет отображаться обычным шрифтом. При построении дерева
сообщений жирным будут помечены прочитанные Вами сообщения, если хоть один ответ
на него (или на любой из его потомков) является непрочитанным. К сожалению
организация дерева с помощью смежных вершин графа (система
Parent-Child) приводит к необходимости применять рекурсивный алгоритм
проверки "непрочтенности" узла, что приводит к необходимости делать многократные
выборки из базы, что не может сказаться на быстродействии. Я реализовал алгоритм
таким образом, чтобы минимизировать количество выборок, поэтому наиболее долго
будут открываться уже в основном прочитанные сообщения (потому что в данном
случае приходится проверять по всей глубине дерева). В любом случае в программе
можно отключить данный режим (меню "Сервис" ->
"Настройки") и тогда каждое сообщение будет помечаться само по себе, независимо
от своих потомков.
В программе реализован механизм подкачки новых сообщений
(авторы сайта обещают периодически выкладывать новый архив форума). Для этого
необходимо в меню "Сервис" выбрать пункт "Импорт" и указать файл
mdb с новыми
сообщениями. В случае, если организаторы форума обеспечат возможность
запрашивать новые данные через интернет, то возможно
организовать автоматическую подкачку новых сообщений.
Весь код программы абсолютно открыт (open
source :)), в нем можно почерпнуть множество полезных решений, несколько
практически готовых и удобных для повторного использования блоков. Например:
- Класс CTree облегчает работу с
ActiveX контролом MSComctlLib.TreeView. Позволяет создавать деревья на основе
таблиц с представлением дерева с помощью смежных вершин графа либо с помощью
одного строкового поля. Даёт возможность организовывать деревья с динамической
подкачкой дочерних веток. Очень прост в применении.
- Класс CFilter и сопутствующие модуль и таблица обеспечивает
единый интерфейс для ввода пользователем различных фильтров и последующим
применением их на произвольном количестве форм. Позволяет сохранять любое
количество фильтров пользователя (для каждого из пользователей системы - свой
набор), помнит последний использованный пользователем фильтр и автоматически его
подгружает.
- Класс UDialog - позволяет организовывать единый интерфейс
для запроса у пользователя произвольного набора параметров (с возможностью
выбора из существующих таблиц).
- Универсальный механизм выбора нескольких (набора)
параметров (форма frmRegionL) с возможностью сохранять наборы в файл и потом
подкачивать их из ранее сохраненных файлов.
- Процедура регистрации необходимых для программы библиотек в
системе.
- Процедуры сохранения и восстановления настроек для
конкретного пользователя.
- Свой StatusBar с
ProgressBar-ом.
- Пример работы с Richtx32.ocx.
- Модуль работы с реестром и многое другое.
Надеюсь в случае их использования Вы не будете убирать из кода © :)
В программе использованы
стандартные библиотеки от Microsoft: Ms Common Controls (Mscomctl.ocx),
Ms Common Controls2 (Mscomct2.ocx),
Ms RichText control (Richtx32.ocx). Все 6-ой версии. Если Вы уверены, что
на машине они есть, то скачивать их отдельно нет необходимости. Если же их нет,
либо Вы не уверены :), то лучше скачать прилагаемые файлы библиотек, и при
первом запуске распаковать их в каталог программы.
Так же при запуске программы в одном каталоге с ней должен
находится сам файл данных (раз версия программы для Access
97, то и файл данных должен быть Msaforum97.mdb).
В архиве вместе с программой поставляется небольшой кусок форума для примера, но
весь его можно скачать на http://msa.km.ru/forum/forum2.asp?id={CE3439B9-DBB4-48BE-BACF-32367B6FA795} .
Благодарности :)
1. Хотелось бы выразить свою благодарность Гришанову Герману. Он является одним
из самых сильных программистов, которых я знаю, я многому у него научился и
думаю многому ещё научусь! :). В программе amKMForum
класс UDialog - его работа.
2. Так же хотелось бы поблагадорить Грибанова Сергея Юрьевича
(e-mail:
prbasic@lcpi.lipetsk.ru)
за его Rules98.mdb, откуда и взята идея и частично
интерфейс класса CFilter.