![]() |
Написать обучающую программу
Приветствую всех.
Есть такая задачка - написать обучающую программу на тему: "Использование API функций Windows в среде Delphi". Написать это пол дела. В какой форме это сделать - вопрос. Интересуют ваши идеи и советы, как это можно сделать грамотно. |
А в чем смысл программы? Что ты предполагаешь чтобы она умела делать (основные отличия от e-book)?
|
RaZEr
Честно говоря, твой вопрос меня поставил в тупик. По моему первоначальному замыслу планировалось создать оболочку и в нее запихнуть информацию о предмете изучения. Но как ты упомянул про еБук, то сразу стало мне ясно, что отличия будут минимальными. Вообще, идея такая. Нужно написать обучающую программу по курсу "Использвание API функций Windows в среде Delphi". Это подразумевает, что использоваться программа будет в качестве учебного пособия, или учебника. Короче, она будет использоваться в преподавании (если нормально будет сделана). Что прога будет делать я представляю пока с трудом. Пока придумал так: запихнуть туда курс, примеры, задания и подобие теста (а, возможно, "полноценную систему" оценки знаний). Вот меня и интересует, как сделать "нормально"? Я искал в инете программы похожей направленности. Нашел одну - называется Web Page Teacher. Но такой вариант не подходит (ссылка на прогу _http://www.pinsoft.com.au/software/webteach.exe). All Народ! Поделитесь идеями. Мне на все про всё месяц! |
Цель программы заменить преподавателя, ... значит она должна делать то же что и он, т.е.:
- Рассказывать материал - Отвечать на вопросы - Проверять знания (- Ставить оценки :) ) Вот и сделай, программу которая сначала представит текст, потом раскроет ряд часто-задаваемых вопросов, а затем проведет тест. Лучше всего запихать в форму ActiveX от IE (TWebBrowser), и далее всё сделать в HTML/JS. |
Я планировал все это наваять в самом Делфи. Такой вариант сгодится?
(Хотя твой вариант, вроде проще будет...) А как в ActiveX форму. Поподробней, пожалуйста. Я с этим не работал. |
Вообщем ничего особо сложного. На форму нужно добавить TWebBrowser и далее просто вызывать его комманды, такие как Navigate. Как работать с компонентом информации много. Я года 3-4 назад писал свой браузер наподобие MyIE, так вот уже тогда было вполне достаточно информации.
|
А вариант с написанием на Делфи хуже?
|
Это всё равно что спорить, что лучше - теплоход или паровоз. Чистый делфи имеет свои плюсы, использование TWebBrowser - свои. Если писать на делфи, то можно расширять всё четко под поставленные цели и задачи. А если писать с использованием TWB, то получаем всю мощь MS IE (HTML,JS). Я бы выбрал второй вариант. Форматировать содержимое средствами HTML проще, чем средствами RichEdit, и тем более проще чем самому писать механизм форматирования.
|
Razer имеет ввиду прокладку между софтом и пользователем - интерфейс твоей программы, т.е. удобнее и быстрее делать навигацию и презентацию информации на HTML... Если ты в руки брал какой-нибудь пиратский диск, то там наверняка сделана оболочка, которая показывает содержимое компакта, берет описания из TXT и все оформленно красиво, а оболочка не зависит от контента...
|
RaZEr
Про HTML я согласен полностью (править проще). Спорить я не собирался, что лучше. Я спрашивал, на чем лучше делать (и проще, естественно :) ). А вот еще такой вариант. Сейчас часто встречаются всякие руководства, сделанные в виде chm-файла. Они очень похожи на файл справки. Но там можно сделать слева и меню для выбора раздела для изучения. И как-то видел даже что-то вроде теста. Как такой вариант? PS Да, тоже самое можно сделать и в HTML+JS. :) /7y3uK Ты прав, я видел такие диски :) В общем, мне кажется такой вариант неплохой. Но я не знаю еще, подойдет он или нет. Программу я пишу в качестве курсовой работы. А затем она будет дипломной! Так что приходится перебирать все возможные варианты, чтобы не попасть в просак ко времени сдачи диплома! Дело, как видите, серьезное. :( |
Цитата:
Цитата:
|
RaZEr
Знать бы еще, как этот интерактив лучше оформить (что нибудь получше обычной забивки учебника). Лучше бы мне обыкновенную программу написать для даплома, чем такую. А ты не жди такой дипломной и сам сваяй полезную софтинку :) Если сдам нормально все, может сам возмусь за такую :biggrin: |
Так тут все просто, в инерактиве :)))
Делаешь список API функций по типам, например: для дисков, папок, файлов; для окон; для диалоговых окон и т.д... Все подразделы ессесно в алфавитном порядке. Для каждой API своя страничка с примером правильного кода, неправильного кода и с кнопой ТЕСТ + объясняловка. Самое сложное рассортировать API по этим самым типам ибо их много :))) А самое главное - это поиск, чтобы по запросу на русском находилась и показывалась соответствующая группа ссылок... ИМХО через инсталл пакет задашь папку для примеров и вывесишь ярлыки на десктоп... Плюс ко всему можно как в ГИБДД сделать тест с картиночками как тут: __http://www.certifications.ru/learn/ |
/7y3uK
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Какой поиск, какие группы ... господа, научитесь наконец отличать guide от reference.
|
Цитата:
ладно больше флеймить не буду - не штрафуй плиз :):). |
Цитата:
Цитата:
Цитата:
Я, кстати, придумал сделать так (по вашим советам): сделать оболочку (для навигации) и засунуть туда HTML странички. Но возникает два вопроса: 1. будет ли там работать Ява-Скрипт, 2. чем это будет отличаться от написания браузера? :) Что можете сказать? |
Цитата:
Цитата:
|
RaZEr
Решился я на такой вариант. Нашел исходник оболочки (шаблон), но он ни C++. Что смог - переделал. Но есть некоторые вещи, которых нет в Делфи. Сможете помочь разобраться (в смысле подобрать аналоги в Делфи)? |
Как это нет каких-то вещей??? STD там что-ли гдето используется ???
Выкладывай, чтоли... не обещаю, но может поковыряюсь :)) Кстати, что есть в твоем понимании слово шаблон и что за C++, они под винду разные бывают... надеюсь не вижла... |
Цитата:
Цитата:
Цитата:
Цитата:
|
Вот код:
Код:
// Введен URL или адрес HTML файла и нажата клавиша EnterПоясню: этот код обрабатывает строку, введенную для открытия. В качестве нее может быть адрес в сети или на локальный HTML файл. |
Значит так:
VK_RETURN - это константа равная 13, а в нашем случае тип должен быть Char. return - просто выход из процедуры, я бы написал вместо вот так: raise Exception.Create('Не введен URL'); c_str() - сишная строка (по-моему с 0 в конце)... можно просто объявить PostData строкой и сунуть туде данные Edit1.Text; Могу ошибаться :))) с Сpp не очень. |
Немного про VK_RETURN. Это виртуальный код нажатия Enter.
ComboBox1KeyPress вызывается при нажатии любой клавиши, код которой передается в Key, а должна выполнять действие только при нажатии Enter. Вот и проиcходит проверка. |
ЧересЧеловек
Спасибо. Это я знаю. У меня проблемы с переводом кода Си++ в Делфи /7y3uK А как бить вот с этим? VariantInit(pvPostData); LPSAFEARRAY psa = SafeArrayCreateVector(VT_UI1, 0, cElems); if (!psa) return; SafeArrayAccessData(psa, (LPVOID*)&pPostData); memcpy(pPostData, PostData, cElems); SafeArrayUnaccessData(psa); V_VT(pvPostData) = VT_ARRAY | VT_UI1; V_ARRAY(pvPostData) = psa; Особенно не понятно вот это V_VT(pvPostData) = VT_ARRAY | VT_UI1; V_ARRAY(pvPostData) = psa; Короче, весь блок. Бьюсь, безрезультатно!! :( |
Zueuk
Ну ты приколист :ржать: Нука выложи весь проект... в архиве... по кускам нифига не понятно :) З.Ы. Вообще, когда даешь кусок кода - не плохо бы указывать какие модули подключены (uses или include) |
/7y3uK
Выше был код. Практически весь. Код на С++. Точнее - проект для Borland CB 6. |
Вложений: 1
Я не понял нафига там парятся с OLE, уж больно как-то специфично... К сожалению в хелпе билдера нет ряда вещей из этого кода. Если нужно просто грузить урлы в окно, тогда вот этого во вложении должно быь достаточно... заодно там простой пример как можно хистори грузить в реестр - из реестра... но так делать не обязательно :))
|
Спасибо за вложение. Как раз то, что нужно! Буду теперь дорабатывать.
PS А в моем даже получаться стало с переделкой. Наверно, день удачный выдался :) |
Теперь у меня вот такие вопросы.
Вы пользуетесь программой для обучения (подобной сабжу). Какие Вам понадобились элементы интерфейса (во загнул :) ;кнопки и тд). Короче, нужно разработать элементы для навигации. Жду предложений. |
Zueuk
ИМХО У тутора должны быть только две кнопки - ... ну не считая всякой стандартной всячины типа свернуть/закрыть - "Далее" и "ТЕСТ"... При достижении конца урока можно организовать тестирование. |
/7y3uK
Тест лучше на JavaScript сделать? И, наверное, внедрить его в уроки? Я думаю сделать для каждого раздела свою папку. В эту папку загнать папки с подразделами. И отдельно - папку под тесты. Т.е. вот такая схема: Большой раздел->подраздел (или несколько, в зависимости от количества уроков и от размера большого раздела)->уроки. На какой уровень засунуть тесты, если такая схема нормальная? И еще. Возникла такая проблемка. Запускаю программу - она открывает страницу по умолчанию. Создал кнопку "Назад". И при нажатии, когда истории страниц еще нет, программа вылетает по ошибке (что правильно). Так вот, как обработать этот момент? Какие методы есть работы с "историей"? |
| Часовой пояс GMT +4, время: 13:53. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.