Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Оцените дипломку[прикреплен проект]

Ответить
Настройки темы
Delphi - [решено] Оцените дипломку[прикреплен проект]

Аватара для ibmpc

Новый участник


Сообщения: 40
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: ibmpc
Дата: 07-06-2011
Описание: Проект прикреплен
Люди оцените дипломную работу "Справочник по (да какая собственно разница )" может у кого идеи, советы, замечания и пожелания появятся. О многих проблемах я и сам догадываюсь очень торопился сделать. За содержимое речи можно особо не вести (если только за внешний вид содержимого). Выкладываю проект 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.

Отправлено: 23:03, 04-06-2011

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


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

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 01:57, 06-06-2011 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


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

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

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

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

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

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:11, 06-06-2011 | #12


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


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

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:59, 06-06-2011 | #13


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


Далее. Гораздо правильнее было бы вгрузить поле через 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:
При закрытии справочника - вылетает ошибка. »
Это как раз из-за неинициализированных переменных.

Отправлено: 18:33, 06-06-2011 | #14


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


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

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. Вообще-то так не делается - это говорит о неаккуратном обращении с переменными и с памятью. Ищи причину возникновения эксепшна и устраняй. Наверняка обращаешься к уже уничтоженному объекту.

Последний раз редактировалось Любезный, 06-06-2011 в 20:29.


Отправлено: 19:14, 06-06-2011 | #15


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


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

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:09, 07-06-2011 | #16


Старожил


Сообщения: 295
Благодарности: 30

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 06:43, 07-06-2011 | #17


Аватара для ibmpc

Новый участник


Сообщения: 40
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

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

Последний раз редактировалось ibmpc, 07-06-2011 в 11:57.


Отправлено: 11:51, 07-06-2011 | #18


Аватара для ibmpc

Новый участник


Сообщения: 40
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Цитата 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.

Отправлено: 12:11, 07-06-2011 | #19


Аватара для ibmpc

Новый участник


Сообщения: 40
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

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

Последний раз редактировалось ibmpc, 07-06-2011 в 20:19.


Отправлено: 19:26, 07-06-2011 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Оцените дипломку[прикреплен проект]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Оцените сборку James Douglas Выбор отдельных компонентов компьютера и конфигурации в целом 13 22-11-2009 23:58
Оцените конфигурацию belk94 Выбор отдельных компонентов компьютера и конфигурации в целом 4 22-10-2009 13:09
[решено] оцените компьютер schicksal Выбор отдельных компонентов компьютера и конфигурации в целом 3 12-03-2008 21:50
Оцените конфигурацию IVGIPT Выбор отдельных компонентов компьютера и конфигурации в целом 5 11-03-2008 15:13
Оцените конфиг tursun Выбор отдельных компонентов компьютера и конфигурации в целом 12 21-01-2008 14:44




 
Переход