Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Оцените дипломку[прикреплен проект] (http://forum.oszone.net/showthread.php?t=208270)

ibmpc 04-06-2011 23:03 1688567

Оцените дипломку[прикреплен проект]
 
Люди оцените дипломную работу "Справочник по (да какая собственно разница :teeth: )" может у кого идеи, советы, замечания и пожелания появятся. О многих проблемах я и сам догадываюсь очень торопился сделать. За содержимое речи можно особо не вести (если только за внешний вид содержимого). Выкладываю проект Delphi 7 (компоненты стандартные, можно D6). Очень надеюсь на внимание. Дипломная уровня ПТУ Узбекистана.
Обновленная версия от 7.06.2011 с EXE файлом прошу осторожнее, проверяйте на вирусы
Проект Delphi Справочник 1.9 Мб

Немного о том, что есть:
Отображает в TwebBrowser странички (155 шт с изображениями).
Страницы (HTML код), их названия и номер раздела берутся из базы данных.
Есть структурированное содержание (TreeView).
Возможность редактировать названия в содержании
Есть поиск по содержанию (регистрозависимый если нужно)
Кнопки перехода (на главную, Вперед и Назад как в браузере)
Есть кнопки перехода Вперед и Назад по содержанию
Печать (на принтер) текущей страницы
Сохранение текущей страницы (вместе с изображениями)
Вид > Режим редактирования Редактирование содержимого страницы (в основном текста, можно удалить изображения)
В справочник встроена мини игра Пазл - вызывается при щелчке по SplashScreen
(можно выбрать изображение, кол-во частей, поворачивать кусочки пазла)
Части пазла создаются динамически, поддерживается JPEG, BMP
Работают горячии клавиши Ctrl+C etc в TwebBrowser, блокировано родное IE контекстное меню
Есть Splash Screen.

Исправлена кодировка TreeView (кодировка текста элементов обязательно должна быть DEFAULT - к сожалению моя версия IDE Delphi иногда прикалывается) Изменен алгоритм BeforeNavigate.

ferget 04-06-2011 23:34 1688575

Цитата:

Цитата ibmpc
Выкладываю проект Delphi 7 (компоненты стандартные, можно D6). Очень надеюсь на внимание. »

ну и где проект?

lxa85 04-06-2011 23:37 1688576

ibmpc, пока из того, что ты описал - мой уставший вердикт - туфта.
Для кого/чего нужен справочник? Если ты по пятому разу сделал справочник по радиодеталям, не читая стандартов, все упадет на волю совета.
Поставить требуемую оценку, или предварительно пропесочить как следует.
Цитата:

Цитата ibmpc
Выкладываю проект Delphi 7 »

И хде?

ferget 04-06-2011 23:53 1688579

со справочником тоже можно много чего придумать

справочник в трей, читаешь документ, данные по которым нужна справка выделяешь -> в справочник, появляется окно, если это так, то то вот так

ibmpc 05-06-2011 14:35 1688771

Ну что за... немогу прикрепить проект - весит 1.6 Мб в архиве (7z разрешено 8 Mb), а у меня
Превышает выделенный вам объем вложений на 642.1 Kb.

Delirium 05-06-2011 15:11 1688784

ibmpc, выкладывай на бесплатный файлообменник и кидай ссылку сюда.

ibmpc 05-06-2011 17:04 1688833

Delirium, вот бы еще адрес бесплатного файлообменика, а то если честно встречал только платные. Может Яндекс Народ?

Hector 05-06-2011 17:56 1688847

ibmpc, http://depositfiles.com/ru/

ibmpc 05-06-2011 22:18 1688954

Цитата:

Цитата ferget
ну и где проект? »

Цитата:

Цитата lxa85
И хде? »

ВЫЛОЖИЛ, качайте бесплатно.

Hector,
Цитата:

Цитата Delirium
выкладывай на бесплатный файлообменник »

- depositfiles не является бесплатным файлохранилищем
1. Платят скачивающие (либо низкая скорость, 1 поток, ожидание, капча и прочие гадости жизни)
2. Платят размещающим файлы людям.

Hector 05-06-2011 22:37 1688968

ibmpc, imho у тебя извращенное понятие бесплатного файлового хостинга

Delirium 06-06-2011 01:57 1689036

1. Для хранения данных необязательно было навинчивать Access базу. Для одной таблицы более чем достаточно было XML файла.
2. Проект Делфи скомпилить не на чем, поэтому оболочку посмотреть не могу :)

lxa85 06-06-2011 09:11 1689126

Значит так...
Игру при старте проекта - убрать начисто! Это справочник, а не развлекаловка. Хоть игра в целом работает верно.
SplashScreen - отсутствует. Та форма, что висит при загрузке секунду-полторы - это не SplashScreen.
При закрытии справочника - вылетает ошибка.
У меня справочник оказался нечитаем. Вместо букв - ибракатабра. Windows 7, Borland Turbo Express.
Шрифт Comic Sans ИМХО не приемлем. Вообще следует избегать подобного рода мелких "украшательств". С одной стороны, да, показано, что со шрифтами работать умеем, с другой стороны надо смотреть цели диплома.
Картинкам в директории IMG дать "говорящие" названия. tetka, и набор символов - "режет" глаз.

В целом проект можно считать завершенным, осталось его подчистить, присвоить кнопкам имена отличные от стандартных, дополнительно прокомментировать код, а не только крупноблочно. Желательно в презентации выделить наиболее интересные моменты работы, не забыв сделать упор на работу с базой(тоже имеет свои плюсы и минусы).

Материала "с первого взгляда" достаточно много, на фундаментальный труд по косметологии и универсальный справочник, на все случаи жизни, не пойдет. Как дипломная работа ПТУ - заслуживает внимания. (Говоря проще - все будет зависеть от тебя и твоего выступления на защите)

Устная секция защиты.
Из общих доп.вопросов.
Возможно ли создание распределенной клиент-серверной программной оболочки для работы с данной базой?
Если да, то как будет осуществлен механизм одновременного доступа и/или редактирования страницы справочника?
В силу нечитабельность материала: Существуют ли противопоказания по применению того или иного метода. И в этом контексте: Планируется ли расширение базы данных?
Как по вашему, что следует сделать, для развития данного ПО, какие сложности возникли при разработке, какие недостатки вы можете перечислить? (ответ прокомментировать)

Из специфичных доп.вопросов.
Какова сложность механизма поиска? (алгоритм еще не смотрел)
Регистрозависимость - как она влияет на точность поиска? (А ведь мы помним, что у поиска есть много критериев: скорость, точность и т.п.)
Чем обоснован выбор Access базы данных (А не XML допустим, как указал Delirium)? Ведь это ограничивает переносимость ПО, вовлекает дополнительные программные и аппаратные ресурсы, и т.д. (т.е. здесь нужно признание вопрошающего{сказать ему спасибо}, собственно как и на любой вопрос и в ответе дать краткий анализ ситуации с приведением "жирных" плюсов выбранного решения).
Защищенность СУБД при редактировании и совместном доступе. (это тоже серьезный вопрос, т.к. "тролль" может попортить весь справочник. Так же это несет в себе массу тонкостей, хитростей и пакостей. Т.к. "выманив" дипломника на нетвердую почву, "расстреливать" его очень даже удобненько)
Соотв. как выкручиваться? Говорить спасибо, уточнять, другие преследуемые цели дипломного проекта, обещать разобраться в будущем, сконцентрировав свое внимание, на этом безусловно важном аспекте.
подведение итогов
По моему мнению(при красивых и развернутых ответов на поставленные вопросы), данная работа заслуживает высокой оценки, а дипломник присуждения [чего то там]. (Я к сожалению не знаю как правильно сказать.)
---
Вот как то так, я думаю.

Любезный 06-06-2011 17:59 1689461

Ошибок - тьма. Учись читать хинты и 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 1689487

Далее. Гораздо правильнее было бы вгрузить поле через 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
//далее без изменений

Цитата:

Цитата lxa85
При закрытии справочника - вылетает ошибка. »

Это как раз из-за неинициализированных переменных.

Любезный 06-06-2011 19:14 1689508

Блин, я офигеваю. У меня такое ощущение, что файл перезаписывается в БД после каждой попытки просмотра, даже если не редактировать. Причём перезаписывается некорректно. Щас посмотрю повнимательнее.

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 1689695

Любезный, не будь столь строгим к человеку, насколько я понял, он уже сделал проект и переделывать его не будет :)

Любезный 07-06-2011 06:43 1689729

Вопрос в том, на кого человек учится. Если он будет программистом и при этом будет так кодировать, дело плохо - надо наводить на путь истинный.

Ещё вот что насчёт моих экспериментов с TStringList. В них я использую D2009, которая является юникодной. В моём случае всё заработало нормально, так как в базе данных изначально содержатся поля, которые хоть и содержат html-код с записью windows-1251, на самом деле записаны в UTF-16. Чтобы заставить этот пример работать на старых версиях Delphi (5-2007), не исключено, что придётся конвертировать стринглист в юникод и обратно. Впрочем, это надо проверять на практике, ибо движок БД теоретически может это делать автоматически. Будет работать корректно при попытке открыть одну и ту же страницу более одного раза - значит, переделывать не надо. Не будет - тады ой.

ibmpc 07-06-2011 11:51 1689842

lxa85, очень рад вашему вниманию. Перечитаю внимательно и прокомментирую обязательно.
Delirium, ребята что касается XML - с ним я не работал. Если есть возможность заменить базу Access на таблицу XML без сильной переделки кода я только за. Значит нужно перенести таблицу Access в XML и как-то заставить работать через ADO ?

Что касается алгоритмов программы знаю что надо менять :
ADOTable на SQL запросы
алгоритм построения TreeView вообще ерунда - должен быть рекурсивным (я подобные уже писал, но продумывать логику сейчас нет желания почему то).
Нет полнотекстового поиска в базе :(

ibmpc 07-06-2011 12:11 1689858

Начинаю отвечать на ваш отличный пост :)

Цитата:

Цитата lxa85
Игру при старте проекта - убрать начисто! Это справочник, а не развлекаловка. Хоть игра в целом работает верно. »

Засунул свой старый алгоритм игры, когда справочик был еще совсем хиловат и была необходимость добавить ему весомости. И раздражал SplashScreen - просто появляется и усе (а тут своя фишка). Игра работает не верно - у нее нет завершения. Хотя алгоритм разбивки на куски мне очень нравиться (старался). Куски поворачиваются при клике правой кнопкой мауса.

Цитата:

Цитата lxa85
SplashScreen - отсутствует. Та форма, что висит при загрузке секунду-полторы - это не SplashScreen. »

Ну если честно я тоже не в особом восторге. Может посоветуете как ее изменить?

Цитата:

Цитата lxa85
При закрытии справочника - вылетает ошибка. »

При компиляции из среды программирования я надеюсь (это нормально)?

Цитата:

Цитата lxa85
У меня справочник оказался нечитаем. Вместо букв - ибракатабра. Windows 7, Borland Turbo Express.
Шрифт Comic Sans ИМХО не приемлем. »

К сожалению на Windows 7 проверить не могу. Есть проблемы с Comic Sans (шрифт отсутствует)?

Цитата:

Цитата lxa85
Картинкам в директории IMG дать "говорящие" названия. tetka, и набор символов - "режет" глаз. »

Ну простому пользователю это должно быть не важно. Зачем собственно такие мелочи исправлять.

Цитата:

Цитата lxa85
присвоить кнопкам имена отличные от стандартных, дополнительно прокомментировать код, а не только крупноблочно »

Ну над коментами я поработаю, только смысла менять имена кнопок не вижу.
Цитата:

Цитата lxa85

Возможно ли создание распределенной клиент-серверной программной оболочки для работы с данной базой? »

Нет, программа позиционируется как Ofline для домашнего использования.

Цитата:

Цитата lxa85
Защищенность СУБД при редактировании и совместном доступе. (это тоже серьезный вопрос, т.к. "тролль" может попортить весь справочник. Так же это несет в себе массу тонкостей, хитростей и пакостей. Т.к. "выманив" дипломника на нетвердую почву, "расстреливать" его очень даже удобненько) »

Н да.. думал конечно над этим делом, но особо хороших идей не было. Можно запаролить базу. Сделать кучу окошек с предупреждениями - но они будут напригать пользователя. Сделать бэкап оригинала программы (даст увеличение размера в двое, неприемлемо размер уже оговорен).

Цитата:

Цитата Любезный
Ещё. В базе у тебя не пойми что. Хотя в заголовках страниц у тебя указана кодировка windows-1251, код в базе сохранился в виде UTF-16, поэтому без гемора прочитать его в D2009 не получается. В чём делалась БД? »


Писалось на Delphi 7, Access 2007 (режим совместимости 2003), Win XP SP3.

ibmpc 07-06-2011 19:26 1690181

Оказалось можно быстро прикрутить чтение текста (как я понимаю только на английском, но думаю если мозгой покрутить можно и русский) SAPI 5.1 SDK. Однокурсник который делал переводчик наверное будет в полном осадке (он то возился и создавал mp3 к каждому слову на англ.).

Кстати переделал справочник - вместо массива (указатели на массив в TreeView) используется StringList (и удобнее и ограничение на 256 элементов снято). Сделал комплект инсталяции InstallShield - кстати кто в теме, какие модули включать (включил ADO Data Control, DAO, JET + все которые им необходимы) ? На панели навигации будут графические кнопки (игра уже запускается из программы, + Редактирование)

Любезный 07-06-2011 20:35 1690220

Цитата:

ребята что касается XML - с ним я не работал. Если есть возможность заменить базу Access на таблицу XML без сильной переделки кода я только за. Значит нужно перенести таблицу Access в XML и как-то заставить работать через ADO ?
XML не предназначен для работы через ADO.

Цитата:

При компиляции из среды программирования я надеюсь (это нормально)?
Конечно ненормально. Нельзя обрабатывать (вернее, не обрабатывать) исключения, как сделано у тебя:
Код:

try
....
except
end;

Цитата:

Н да.. думал конечно над этим делом, но особо хороших идей не было. Можно запаролить базу. Сделать кучу окошек с предупреждениями - но они будут напригать пользователя. Сделать бэкап оригинала программы (даст увеличение размера в двое, неприемлемо размер уже оговорен).
Об этом надо было думать раньше. Есть СУБД Firebird Embedded, в которую можно было всё это зашить - и не надо никаких XML и ADO. С Firebird работают через компоненты IBExpress, можно через IBTable, но лучше по SQL. Когда ты цепляешься к БД, никто другой не подцепится. Правда, вроде бы как последняя версия Firebird Embedded 2.5 разрешает работу одновременно нескольких пользователей, но IBX для неё не рекомендуется, особенно при использовании Юникода.

Цитата:

Писалось на Delphi 7, Access 2007 (режим совместимости 2003), Win XP SP3.
И как? Абракадабры нет? Пробовал из одного запуска открывать одну и ту же страницу несколько раз? Работает?

ibmpc 08-06-2011 15:57 1690758

Цитата:

Цитата Любезный
Об этом надо было думать раньше. Есть СУБД Firebird Embedded, в которую можно было всё это зашить - и не надо никаких XML и ADO »

Изначально была идея сделать справочник именно на Firebird (скачал две поставки вместе с Embleded, но напоролся на очень многие проблемы). Не смог нормальна даже подключить Embleded версию к программе (многих знаний в области СУБД не хватает). Спрашивать решение тех или иных вопрос особо не у кого (пытался использовать форум специализированный, но та м самые разные советы и нечего по существу и чтобы работало). Было еще очень много идей, справочник пор сути дожен был быть интерактивным, перенасимым, свободно полностью редактируемым и простым в наполнении, всплывающие сообщения, сворачивание в трей, напоминания, более качественное наполнение (сами статьи + видео и больше графики). Но программа написана за 2 недели (по 1-3 часа в день) вместо 3 месяцев.

ibmpc 08-06-2011 16:20 1690790

Работу сдал на Отлично :) Легко и просто, даже по коду не спрашивали :(
Цитата:

Цитата Любезный
Есть СУБД Firebird Embedded »

Пытался с ней работать ранее, когда мы должны были начинать дипломные. Возникли проблемы даже с подключением. Советоваться особо не с кем было. Спец. форум оказался пустышкой (не одного совета по сути). Идеи в самом начале были самые правильные, куча задумок (но эта работа сделна за 2 недели (по 1-3 часа), вместо 3 месяцев).

Цитата:

Цитата Любезный
И как? Абракадабры нет? Пробовал из одного запуска открывать одну и ту же страницу несколько раз? Работает? »

Аброкадабры нет все открывается (были такие проблемы со шрифтами во всех компонентах отображающих текст - кодировка, должна быть DEFAULT) Уточню этот вопрос.
При выводе на печать выяснилось, что на некоторых машинах вылетает Access Volitation
Как и при редактировании (нажатие кнопки Отмена)
Также при скрытой панели содержание не работает поиск (FOCUS)

Любезный 08-06-2011 18:19 1690920

Поздравляю с успешной сдачей, но с кодом надо быть внимательнее.

Цитата:

Пытался с ней работать ранее, когда мы должны были начинать дипломные. Возникли проблемы даже с подключением. Советоваться особо не с кем было. Спец. форум оказался пустышкой (не одного совета по сути).
Какой спецфорум?

На Firebird с компонентами IBExpress это всё пишется на раз-два.

ibmpc 11-06-2011 20:31 1692796

Цитата:

Цитата Любезный
На Firebird с компонентами IBExpress это всё пишется на раз-два. »

Вот я уже хоть и не на собственном опыте, но судя по таким многочисленным отзывам охотно верю. Проверять не приходилось. Использовал Zeos компоненты, подключался, но как я помню только к полноценной версии сервера (не Embl). Работу немного допилю все же. В принципе инструментарий (Delphi 7 + Access) меня устраивает, только глюков оказывается еще вагон и маленькая тележка. Жаль как то, на данный момент это моя последняя работа по программированию и других не предвидеться. Может стану писать по просьбам народа (помогать более не развитому пиплу) или стану писать под Symbian (знакомый, писал для себя) в связи с приобретением телефона.

ibmpc 21-11-2011 12:03 1799741

Люди если кто скачивал плиз скиньте исходник (мой же исходник хы) вместе с папкой IMG) на почту ibmpc.maniac GMAIL

Delirium 21-11-2011 16:49 1799965

Цитата:

Цитата ibmpc
Жаль как то, на данный момент это моя последняя работа по программированию и других не предвидеться. Может стану писать по просьбам народа (помогать более не развитому пиплу) »

Было бы желание программировать, а задачи найдутся :) У меня только в подписи несколько таких реализаций, родившихся по просьбам форумчан.

насчет исходника поспрошай у lxa85, возможно он еще не удалил.

lxa85 21-11-2011 17:51 1800007

ibmpc, то полгода назад было. Это мне надо отчень глубоко рыться в архивах систем (еще поди на виртуалке запусал). Это будет по любому - не раньше среды (завтра день не простой намечается). Т.к. полгода назад у меня еще был Линукс, а сейчас я пока на "виндах".
А в среду у меня днюха... а в четверг - четверг - конференция, пусть интернет, но все же. ibmpc, приходи в пятницу, не ошибешься :)

ibmpc 26-11-2011 02:24 1803605

lxa85, буду рад в принципе не спешу. Человек один просто задолбил просьбой. Работа то сам так себе, но как оказалось исходника у меня нету нигде. Желательно вышлите файлик в письме на почту.

Сейчас как раз капаю старую проблему, у меня с загрузкой или установкой любой ОС Linux-based на нормальной(не встроенной) видеокарте ну ни как. При том проблема явно аппаратная в реализации BIOS думаю. Пытаюсь выкинуть оттуда модули отвечающие за встроенное VGA.
Еще в ускоренно-сжатой форме начал изучать C#. Все-таки теперь понимаю, что нам не зря вдалбливали в голову ООП и прочие принципы программирования - в голове они есть.

P.S по моему это, может поможет. Cosmetics_Delphi.7z ,Размер:1.95 МБ;
Хотя было два архива с разными версиями.


Время: 22:08.

Время: 22:08.
© OSzone.net 2001-