|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Оцените дипломку[прикреплен проект] |
|
Delphi - [решено] Оцените дипломку[прикреплен проект]
|
Новый участник Сообщения: 40 |
Профиль | Отправить PM | Цитировать
Люди оцените дипломную работу "Справочник по (да какая собственно разница )" может у кого идеи, советы, замечания и пожелания появятся. О многих проблемах я и сам догадываюсь очень торопился сделать. За содержимое речи можно особо не вести (если только за внешний вид содержимого). Выкладываю проект 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 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать 1. Для хранения данных необязательно было навинчивать Access базу. Для одной таблицы более чем достаточно было XML файла.
2. Проект Делфи скомпилить не на чем, поэтому оболочку посмотреть не могу |
------- Отправлено: 01:57, 06-06-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Значит так...
Игру при старте проекта - убрать начисто! Это справочник, а не развлекаловка. Хоть игра в целом работает верно. SplashScreen - отсутствует. Та форма, что висит при загрузке секунду-полторы - это не SplashScreen. При закрытии справочника - вылетает ошибка. У меня справочник оказался нечитаем. Вместо букв - ибракатабра. Windows 7, Borland Turbo Express. Шрифт Comic Sans ИМХО не приемлем. Вообще следует избегать подобного рода мелких "украшательств". С одной стороны, да, показано, что со шрифтами работать умеем, с другой стороны надо смотреть цели диплома. Картинкам в директории IMG дать "говорящие" названия. tetka, и набор символов - "режет" глаз. В целом проект можно считать завершенным, осталось его подчистить, присвоить кнопкам имена отличные от стандартных, дополнительно прокомментировать код, а не только крупноблочно. Желательно в презентации выделить наиболее интересные моменты работы, не забыв сделать упор на работу с базой(тоже имеет свои плюсы и минусы). Материала "с первого взгляда" достаточно много, на фундаментальный труд по косметологии и универсальный справочник, на все случаи жизни, не пойдет. Как дипломная работа ПТУ - заслуживает внимания. (Говоря проще - все будет зависеть от тебя и твоего выступления на защите) Устная секция защиты. Из общих доп.вопросов. Возможно ли создание распределенной клиент-серверной программной оболочки для работы с данной базой? Если да, то как будет осуществлен механизм одновременного доступа и/или редактирования страницы справочника? В силу нечитабельность материала: Существуют ли противопоказания по применению того или иного метода. И в этом контексте: Планируется ли расширение базы данных? Как по вашему, что следует сделать, для развития данного ПО, какие сложности возникли при разработке, какие недостатки вы можете перечислить? (ответ прокомментировать) Из специфичных доп.вопросов. Какова сложность механизма поиска? (алгоритм еще не смотрел) Регистрозависимость - как она влияет на точность поиска? (А ведь мы помним, что у поиска есть много критериев: скорость, точность и т.п.) Чем обоснован выбор Access базы данных (А не XML допустим, как указал Delirium)? Ведь это ограничивает переносимость ПО, вовлекает дополнительные программные и аппаратные ресурсы, и т.д. (т.е. здесь нужно признание вопрошающего{сказать ему спасибо}, собственно как и на любой вопрос и в ответе дать краткий анализ ситуации с приведением "жирных" плюсов выбранного решения). Защищенность СУБД при редактировании и совместном доступе. (это тоже серьезный вопрос, т.к. "тролль" может попортить весь справочник. Так же это несет в себе массу тонкостей, хитростей и пакостей. Т.к. "выманив" дипломника на нетвердую почву, "расстреливать" его очень даже удобненько) Соотв. как выкручиваться? Говорить спасибо, уточнять, другие преследуемые цели дипломного проекта, обещать разобраться в будущем, сконцентрировав свое внимание, на этом безусловно важном аспекте. подведение итогов По моему мнению(при красивых и развернутых ответов на поставленные вопросы), данная работа заслуживает высокой оценки, а дипломник присуждения [чего то там]. (Я к сожалению не знаю как правильно сказать.)--- Вот как то так, я думаю. |
------- Отправлено: 09:11, 06-06-2011 | #12 |
Старожил Сообщения: 295
|
Профиль | Отправить PM | Цитировать Ошибок - тьма. Учись читать хинты и warning-и. Никогда их не отключай.
1. Unit3. Использование глобальной переменной в цикле for - дурной тон. 2. Unit1, строка 329. Убери неиспользуемую локальную переменную. 3. Форме, которая у тебя появляется перед запуском, выставь позицию - poScreenCenter. 4. Правильно инициализируй переменные. Компилятор ругается на ANode и BNode в строках 385 и 393 Unit1.pas Дальше пока не разбирал. Ещё. В базе у тебя не пойми что. Хотя в заголовках страниц у тебя указана кодировка windows-1251, код в базе сохранился в виде UTF-16, поэтому без гемора прочитать его в D2009 не получается. В чём делалась БД? Далее. Процедура N7Click - хохлома. Написать можно гораздо проще: |
Последний раз редактировалось Любезный, 06-06-2011 в 18:11. Отправлено: 17:59, 06-06-2011 | #13 |
Старожил Сообщения: 295
|
Профиль | Отправить 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
|
Профиль | Отправить 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; // далее по тексту |
Последний раз редактировалось Любезный, 06-06-2011 в 20:29. Отправлено: 19:14, 06-06-2011 | #15 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Любезный, не будь столь строгим к человеку, насколько я понял, он уже сделал проект и переделывать его не будет
|
------- Отправлено: 02:09, 07-06-2011 | #16 |
Старожил Сообщения: 295
|
Профиль | Отправить PM | Цитировать Вопрос в том, на кого человек учится. Если он будет программистом и при этом будет так кодировать, дело плохо - надо наводить на путь истинный.
Ещё вот что насчёт моих экспериментов с TStringList. В них я использую D2009, которая является юникодной. В моём случае всё заработало нормально, так как в базе данных изначально содержатся поля, которые хоть и содержат html-код с записью windows-1251, на самом деле записаны в UTF-16. Чтобы заставить этот пример работать на старых версиях Delphi (5-2007), не исключено, что придётся конвертировать стринглист в юникод и обратно. Впрочем, это надо проверять на практике, ибо движок БД теоретически может это делать автоматически. Будет работать корректно при попытке открыть одну и ту же страницу более одного раза - значит, переделывать не надо. Не будет - тады ой. |
Отправлено: 06:43, 07-06-2011 | #17 |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать lxa85, очень рад вашему вниманию. Перечитаю внимательно и прокомментирую обязательно.
Delirium, ребята что касается XML - с ним я не работал. Если есть возможность заменить базу Access на таблицу XML без сильной переделки кода я только за. Значит нужно перенести таблицу Access в XML и как-то заставить работать через ADO ? Что касается алгоритмов программы знаю что надо менять : ADOTable на SQL запросы алгоритм построения TreeView вообще ерунда - должен быть рекурсивным (я подобные уже писал, но продумывать логику сейчас нет желания почему то). Нет полнотекстового поиска в базе |
Последний раз редактировалось ibmpc, 07-06-2011 в 11:57. Отправлено: 11:51, 07-06-2011 | #18 |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать Начинаю отвечать на ваш отличный пост
Цитата lxa85:
Цитата lxa85:
Цитата lxa85:
Цитата lxa85:
Цитата lxa85:
Цитата lxa85:
Цитата lxa85:
Цитата lxa85:
Цитата Любезный:
Писалось на Delphi 7, Access 2007 (режим совместимости 2003), Win XP SP3. |
|||||||||
Отправлено: 12:11, 07-06-2011 | #19 |
Новый участник Сообщения: 40
|
Профиль | Отправить 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 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Оцените сборку | 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 |
|