Показать полную графическую версию : [решено] Оцените дипломку[прикреплен проект]
Люди оцените дипломную работу "Справочник по (да какая собственно разница :teeth: )" может у кого идеи, советы, замечания и пожелания появятся. О многих проблемах я и сам догадываюсь очень торопился сделать. За содержимое речи можно особо не вести (если только за внешний вид содержимого). Выкладываю проект Delphi 7 (компоненты стандартные, можно D6). Очень надеюсь на внимание. Дипломная уровня ПТУ Узбекистана.
Обновленная версия от 7.06.2011 с EXE файлом прошу осторожнее, проверяйте на вирусы
Проект Delphi Справочник 1.9 Мб (http://narod.ru/disk/15270839001/Cosmetics_Delphi.7z.html)
Немного о том, что есть:
Отображает в TwebBrowser странички (155 шт с изображениями).
Страницы (HTML код), их названия и номер раздела берутся из базы данных.
Есть структурированное содержание (TreeView).
Возможность редактировать названия в содержании
Есть поиск по содержанию (регистрозависимый если нужно)
Кнопки перехода (на главную, Вперед и Назад как в браузере)
Есть кнопки перехода Вперед и Назад по содержанию
Печать (на принтер) текущей страницы
Сохранение текущей страницы (вместе с изображениями)
Вид > Режим редактирования Редактирование содержимого страницы (в основном текста, можно удалить изображения)
В справочник встроена мини игра Пазл - вызывается при щелчке по SplashScreen
(можно выбрать изображение, кол-во частей, поворачивать кусочки пазла)
Части пазла создаются динамически, поддерживается JPEG, BMP
Работают горячии клавиши Ctrl+C etc в TwebBrowser, блокировано родное IE контекстное меню
Есть Splash Screen.
Исправлена кодировка TreeView (кодировка текста элементов обязательно должна быть DEFAULT - к сожалению моя версия IDE Delphi иногда прикалывается) Изменен алгоритм BeforeNavigate.
Выкладываю проект Delphi 7 (компоненты стандартные, можно D6). Очень надеюсь на внимание. »
ну и где проект?
ibmpc, пока из того, что ты описал - мой уставший вердикт - туфта.
Для кого/чего нужен справочник? Если ты по пятому разу сделал справочник по радиодеталям, не читая стандартов, все упадет на волю совета.
Поставить требуемую оценку, или предварительно пропесочить как следует. Выкладываю проект Delphi 7 »
И хде?
со справочником тоже можно много чего придумать
справочник в трей, читаешь документ, данные по которым нужна справка выделяешь -> в справочник, появляется окно, если это так, то то вот так
Ну что за... немогу прикрепить проект - весит 1.6 Мб в архиве (7z разрешено 8 Mb), а у меня
Превышает выделенный вам объем вложений на 642.1 Kb.
Delirium
05-06-2011, 15:11
ibmpc, выкладывай на бесплатный файлообменник и кидай ссылку сюда.
Delirium, вот бы еще адрес бесплатного файлообменика, а то если честно встречал только платные. Может Яндекс Народ?
ibmpc, http://depositfiles.com/ru/
ну и где проект? »
И хде? »
ВЫЛОЖИЛ, качайте бесплатно.
Hector, выкладывай на бесплатный файлообменник »
- depositfiles не является бесплатным файлохранилищем
1. Платят скачивающие (либо низкая скорость, 1 поток, ожидание, капча и прочие гадости жизни)
2. Платят размещающим файлы людям.
ibmpc, imho у тебя извращенное понятие бесплатного файлового хостинга
Delirium
06-06-2011, 01:57
1. Для хранения данных необязательно было навинчивать Access базу. Для одной таблицы более чем достаточно было XML файла.
2. Проект Делфи скомпилить не на чем, поэтому оболочку посмотреть не могу :)
Значит так...
Игру при старте проекта - убрать начисто! Это справочник, а не развлекаловка. Хоть игра в целом работает верно.
SplashScreen - отсутствует. Та форма, что висит при загрузке секунду-полторы - это не SplashScreen.
При закрытии справочника - вылетает ошибка.
У меня справочник оказался нечитаем. Вместо букв - ибракатабра. Windows 7, Borland Turbo Express.
Шрифт Comic Sans ИМХО не приемлем. Вообще следует избегать подобного рода мелких "украшательств". С одной стороны, да, показано, что со шрифтами работать умеем, с другой стороны надо смотреть цели диплома.
Картинкам в директории IMG дать "говорящие" названия. tetka, и набор символов - "режет" глаз.
В целом проект можно считать завершенным, осталось его подчистить, присвоить кнопкам имена отличные от стандартных, дополнительно прокомментировать код, а не только крупноблочно. Желательно в презентации выделить наиболее интересные моменты работы, не забыв сделать упор на работу с базой(тоже имеет свои плюсы и минусы).
Материала "с первого взгляда" достаточно много, на фундаментальный труд по косметологии и универсальный справочник, на все случаи жизни, не пойдет. Как дипломная работа ПТУ - заслуживает внимания. (Говоря проще - все будет зависеть от тебя и твоего выступления на защите)
Устная секция защиты.
Из общих доп.вопросов.
Возможно ли создание распределенной клиент-серверной программной оболочки для работы с данной базой?
Если да, то как будет осуществлен механизм одновременного доступа и/или редактирования страницы справочника?
В силу нечитабельность материала: Существуют ли противопоказания по применению того или иного метода. И в этом контексте: Планируется ли расширение базы данных?
Как по вашему, что следует сделать, для развития данного ПО, какие сложности возникли при разработке, какие недостатки вы можете перечислить? (ответ прокомментировать)
Из специфичных доп.вопросов.
Какова сложность механизма поиска? (алгоритм еще не смотрел)
Регистрозависимость - как она влияет на точность поиска? (А ведь мы помним, что у поиска есть много критериев: скорость, точность и т.п.)
Чем обоснован выбор Access базы данных (А не XML допустим, как указал Delirium)? Ведь это ограничивает переносимость ПО, вовлекает дополнительные программные и аппаратные ресурсы, и т.д. (т.е. здесь нужно признание вопрошающего{сказать ему спасибо}, собственно как и на любой вопрос и в ответе дать краткий анализ ситуации с приведением "жирных" плюсов выбранного решения).
Защищенность СУБД при редактировании и совместном доступе. (это тоже серьезный вопрос, т.к. "тролль" может попортить весь справочник. Так же это несет в себе массу тонкостей, хитростей и пакостей. Т.к. "выманив" дипломника на нетвердую почву, "расстреливать" его очень даже удобненько)
Соотв. как выкручиваться? Говорить спасибо, уточнять, другие преследуемые цели дипломного проекта, обещать разобраться в будущем, сконцентрировав свое внимание, на этом безусловно важном аспекте.
подведение итогов
По моему мнению(при красивых и развернутых ответов на поставленные вопросы), данная работа заслуживает высокой оценки, а дипломник присуждения [чего то там]. (Я к сожалению не знаю как правильно сказать.)
---
Вот как то так, я думаю.
Любезный
06-06-2011, 17:59
Ошибок - тьма. Учись читать хинты и warning-и. Никогда их не отключай.
1. Unit3. Использование глобальной переменной в цикле for - дурной тон.
2. Unit1, строка 329. Убери неиспользуемую локальную переменную.
3. Форме, которая у тебя появляется перед запуском, выставь позицию - poScreenCenter.
4. Правильно инициализируй переменные. Компилятор ругается на ANode и BNode в строках 385 и 393 Unit1.pas
Дальше пока не разбирал.
Ещё. В базе у тебя не пойми что. Хотя в заголовках страниц у тебя указана кодировка windows-1251, код в базе сохранился в виде UTF-16, поэтому без гемора прочитать его в D2009 не получается. В чём делалась БД?
Далее. Процедура N7Click - хохлома. Написать можно гораздо проще:
Panel5.Visible:=N7.Checked;
Любезный
06-06-2011, 18:33
Далее. Гораздо правильнее было бы вгрузить поле через TStringList и сохранить его как HTML-файл, а не городить огород с TStream.
Я переделал процедуру TForm1.BeforeNavigate. Вот переделанный фрагмент:
var sl: TStringList;
...
if ADOTable1.Locate (ffield, fvalue. opts) then
begin
sl:=TStringList.Create;
try
sl.Text:=ADOTable1.FieldByName ('html').AsString;
sl.SaveToFile (ExtractFileDir ... //далее - имя файла по тексту
finally
sl.Free;
end;
end; //if
//далее без изменений
При закрытии справочника - вылетает ошибка. »
Это как раз из-за неинициализированных переменных.
Любезный
06-06-2011, 19:14
Блин, я офигеваю. У меня такое ощущение, что файл перезаписывается в БД после каждой попытки просмотра, даже если не редактировать. Причём перезаписывается некорректно. Щас посмотрю повнимательнее.
P.S. Разобрался. Действительно, при щелчке по узлу дерева прога сначала проверяет, есть ли файл с таким именем. Если есть - она пуляет в БД и удаляет, после чего вновь грузит из БД в файл и открывает в браузере.
Некорректность перезаписи действительно есть, но, видимо, это проблема ADO в моей версии Delphi. Щас попробую побороть.
P.P.S. Поборол. Теперь начало процедуры BeforeNavigate с учётом вышеуказанного TStringList выглядит так:
var s: string;
...
ADOTable1.First;
while not ADOTable1.Eof do
begin
s:=ExtractFileDir (//далее - имя файла по тексту
if FileExists (s) then
begin
sl:=TStringList.Create;
try
sl.LoadFromFile (s);
ADOTable1.Edit;
ADOTable1.FieldByName ('html').AsString:=sl.Text;
ADOTable1.Post;
DeleteFile (s);
finally
sl.Free;
end;
end;
ADOTable1.Next;
end;
// далее по тексту
Кстати, про неинициализированные переменные я ошибся. Здесь есть обработка исключения с пустой секцией except. Вообще-то так не делается - это говорит о неаккуратном обращении с переменными и с памятью. Ищи причину возникновения эксепшна и устраняй. Наверняка обращаешься к уже уничтоженному объекту.
Delirium
07-06-2011, 02:09
Любезный, не будь столь строгим к человеку, насколько я понял, он уже сделал проект и переделывать его не будет :)
Любезный
07-06-2011, 06:43
Вопрос в том, на кого человек учится. Если он будет программистом и при этом будет так кодировать, дело плохо - надо наводить на путь истинный.
Ещё вот что насчёт моих экспериментов с TStringList. В них я использую D2009, которая является юникодной. В моём случае всё заработало нормально, так как в базе данных изначально содержатся поля, которые хоть и содержат html-код с записью windows-1251, на самом деле записаны в UTF-16. Чтобы заставить этот пример работать на старых версиях Delphi (5-2007), не исключено, что придётся конвертировать стринглист в юникод и обратно. Впрочем, это надо проверять на практике, ибо движок БД теоретически может это делать автоматически. Будет работать корректно при попытке открыть одну и ту же страницу более одного раза - значит, переделывать не надо. Не будет - тады ой.
lxa85, очень рад вашему вниманию. Перечитаю внимательно и прокомментирую обязательно.
Delirium, ребята что касается XML - с ним я не работал. Если есть возможность заменить базу Access на таблицу XML без сильной переделки кода я только за. Значит нужно перенести таблицу Access в XML и как-то заставить работать через ADO ?
Что касается алгоритмов программы знаю что надо менять :
ADOTable на SQL запросы
алгоритм построения TreeView вообще ерунда - должен быть рекурсивным (я подобные уже писал, но продумывать логику сейчас нет желания почему то).
Нет полнотекстового поиска в базе :(
Начинаю отвечать на ваш отличный пост :)
Игру при старте проекта - убрать начисто! Это справочник, а не развлекаловка. Хоть игра в целом работает верно. »
Засунул свой старый алгоритм игры, когда справочик был еще совсем хиловат и была необходимость добавить ему весомости. И раздражал SplashScreen - просто появляется и усе (а тут своя фишка). Игра работает не верно - у нее нет завершения. Хотя алгоритм разбивки на куски мне очень нравиться (старался). Куски поворачиваются при клике правой кнопкой мауса.
SplashScreen - отсутствует. Та форма, что висит при загрузке секунду-полторы - это не SplashScreen. »
Ну если честно я тоже не в особом восторге. Может посоветуете как ее изменить?
При закрытии справочника - вылетает ошибка. »
При компиляции из среды программирования я надеюсь (это нормально)?
У меня справочник оказался нечитаем. Вместо букв - ибракатабра. Windows 7, Borland Turbo Express.
Шрифт Comic Sans ИМХО не приемлем. »
К сожалению на Windows 7 проверить не могу. Есть проблемы с Comic Sans (шрифт отсутствует)?
Картинкам в директории IMG дать "говорящие" названия. tetka, и набор символов - "режет" глаз. »
Ну простому пользователю это должно быть не важно. Зачем собственно такие мелочи исправлять.
присвоить кнопкам имена отличные от стандартных, дополнительно прокомментировать код, а не только крупноблочно »
Ну над коментами я поработаю, только смысла менять имена кнопок не вижу.
Возможно ли создание распределенной клиент-серверной программной оболочки для работы с данной базой? » Нет, программа позиционируется как Ofline для домашнего использования.
Защищенность СУБД при редактировании и совместном доступе. (это тоже серьезный вопрос, т.к. "тролль" может попортить весь справочник. Так же это несет в себе массу тонкостей, хитростей и пакостей. Т.к. "выманив" дипломника на нетвердую почву, "расстреливать" его очень даже удобненько) »
Н да.. думал конечно над этим делом, но особо хороших идей не было. Можно запаролить базу. Сделать кучу окошек с предупреждениями - но они будут напригать пользователя. Сделать бэкап оригинала программы (даст увеличение размера в двое, неприемлемо размер уже оговорен).
Ещё. В базе у тебя не пойми что. Хотя в заголовках страниц у тебя указана кодировка windows-1251, код в базе сохранился в виде UTF-16, поэтому без гемора прочитать его в D2009 не получается. В чём делалась БД? »
Писалось на Delphi 7, Access 2007 (режим совместимости 2003), Win XP SP3.
Оказалось можно быстро прикрутить чтение текста (как я понимаю только на английском, но думаю если мозгой покрутить можно и русский) SAPI 5.1 SDK. Однокурсник который делал переводчик наверное будет в полном осадке (он то возился и создавал mp3 к каждому слову на англ.).
Кстати переделал справочник - вместо массива (указатели на массив в TreeView) используется StringList (и удобнее и ограничение на 256 элементов снято). Сделал комплект инсталяции InstallShield - кстати кто в теме, какие модули включать (включил ADO Data Control, DAO, JET + все которые им необходимы) ? На панели навигации будут графические кнопки (игра уже запускается из программы, + Редактирование)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.