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.

[Back]