Страница: 1 |
Страница: 1 |
Вопрос: Народ, Help-те плииз! Очень нужно!
Добавлено: 22.03.05 18:34
Автор вопроса: TIM
Hello Всем!!!
Пишу прогу Тестирование т.е. вопросы и 4 варианта ответов итого около 1000 вопросов (что-то вроде игры О,Счастливчик). Сейчас делаю так, для каждого вопроса добавляю форму в проект (итого 1000 форм в проекте. Адская работа да? По другому пока не умею) и для каждой формы пишу Вопрос: txtQestion.Text ="Вопрос", optA.Caption ="Ответ", optB.Caption ="Ответ" и.т.д.
Подскажите плз. другой выход из ситуации чтоб и время сэкономить и знание повысить. Если можно загрузить Word или Excel для вопр. и отв. было бы отлично.
Если у кого есть исходник киньте плз. на мыло или любую подсказку, буду очень благодарен.
Заранее Спасибо!!!
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #1
Добавлено: 22.03.05 19:14
Зачем тебе 1000 форм? Ты их все сразу собрался показывать?
А автоматом сделать?
Допустим сделал форму-вопросник в ней функция подготовки(ну для создания объектов: допустим для каждого вар ответа у тебя оптион бокс, вот и Controls.Add("VB.OptionBox","NameObject" - здесь может неточность мелкая.) В эту функцию передаёшь кол-во ответов и прочее, она делает всё остальное. Показывай эту
Set Form = New as FormTest
Form.ShowME (Qwestion as typeQwestion);
sub FormTest::ShowME(
//Подготавливаешь контролы
Show 1
)
Или вообще проще : Делаешь одну форму , кидаешь на неё нужные вещи и потом меняешь их висибле(по кр. мере я на своеё прогу, она типа твоей, так делал)
Номер ответа: 2
Автор ответа:
ISpy
Разработчик Offline Client
Вопросов: 47
Ответов: 621
Web-сайт:
Профиль | | #2
Добавлено: 22.03.05 19:26
В чем проблема? Делаешь базу данных (думаю, это самое удобное), в нее пихаешь все вопросы, варианты ответов к каждому, и номер правильного ответа (1,2,3,4). Далее делаешь одну форму и грузишь в txtQestion.text, optA.caption и т.д. инфу из первой записи из базы данных. А в переменную пихаешь номер правильного ответа для данного вопроса (тоже берется из базы данных). Далее делаешь четыре Button'а, но не отдельно, а в массив (index у них будет разный, а имя одно). И при нажатие на одну из кнопок сравниваем index нажатой кнопки с номером правильного ответа (т.к. index начинается с 0, то необходимо будет прибавить к index'у еденичку, а потом уже сравнивать). Если ответ правильный записываем это куда-нибудь. Далее проверяем есть ли еще вопросы в базе данных, или все уже кончилось. Если есть - грузим следующую запись и все повторяется.
Не знаю, поймешь нет, я объяснять не очень умею
Но надеюсь на какую-нибудь мысль тебя это натолкнет. Могу выслать исходники немножко не доделанной проги для тестирования (она рабочая и там тоже четыре варианта ответов), также прога потдерживает регистрацию/авторизацию пользователей (простых и админов), учет их успеваемости, выбор темы тестирования, уровня сложности и количества вопросов в тесте (вопросы подбираются случайным образом из базы данных). Вся инфа отображается в WebBrowser'е, т.к. мне надо было отображать корни, число пи, стрелки, и другие спец символы. В общем в проге я и сам почти запутался (без бутылки сложно разобраться, но можно)
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 22.03.05 21:53
у... чувак, да ты вообще монстр 1000 форм я офигел. Так конечно НЕЛЬЗЯ! Это криво! Пойщи исходники игры... я где-то видел. А вообще кратко в двух словах:
Есть файл, в котором вопрос, варианты ответа, правельный вариант.
Прога случайно (или как-то по турам) загружает вопрос, показывает его на экран (1 формы хватит
Игрок нажимает на какой-то из вариантов, сравниваем с правельным...
ну и т д...
Номер ответа: 4
Автор ответа:
Дмитрий Щапов
Вопросов: 71
Ответов: 321
Профиль | | #4
Добавлено: 22.03.05 23:26
Должен вам огорчить, 1000 форм почти наверняка не получилось бы добавить. @Out of Memory@
Я тут замерил показания проекта с 861формой(больше VB никак не позволил добавить), вышло следующее:
Исходники:486 Кб (немного, правда?)
Блин, откомпилить всё это дело vb не смог.
Попробую с 500 формами... Таже фигня.
Ещё разок с 300 формами: Прога весит 236 Кб.
а кину-ка я на форму(каждую) 3*лэйбла и 4*Баттона
и получаю я чудо, весом 596Кб.
А это не так страшно как я думал. Один фиг 1000 форм - это последствия долгой и очень бурной фантазии(если конечно не созд формы динамически)
Мораль сказки такова: что нет Морали нифига.
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 22.03.05 23:29
Еще и контролов много VB не дает сделать на одной форме
Номер ответа: 6
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #6
Добавлено: 23.03.05 10:16
1000 форм??? Ты хоть представляешь какой размер будет у exe'шника??? )))
По мне, я бы использовал что-нить в виде xml или mdb для хранения
вопросов и бегал по файлу-базе и таскал от туда вопрос и ответы при
выходе нового вопроса. Это довольно легко сделать.
Номер ответа: 7
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #7
Добавлено: 23.03.05 15:11
Нашелся главный маньяк форума! 1000 форм! Блин, тебе бы в Microsoft идти работать...
Можно, конечно, и с базой, но и базу таскать, и компоненты подключать. Я бы сделал массив UDP вроде
Private Type Question
QuestionText as String
AnswerA as String
AnswerB as String
AnswerC as String
AnswerD as String
RightAnswer as Byte
End Type
Dim Questions(1000) as Question
Затем либо считывал бы его с файла на диске, либо из ресурсов (предварительно его туда загнав). В конце концов, в ресурсах есть String Table'ы
Номер ответа: 8
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #8
Добавлено: 23.03.05 16:11
Угу, запихай в ресурсы. Встроенный редактор ресурсов довольно удобный.
Номер ответа: 9
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #9
Добавлено: 24.03.05 14:57
да, 1000 форм это конечно неслабо, точно тебе дорога в микрософт
создай текстовый фаил, помести в него вопросы, считывай данные и проверяй...
по минимуму 1 форма... или точно, тип создай, в него грузи.