Создание электронно-обучающего пособия по программированию
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
?обавляю структуру в контейнер.QuestionList.Add(NewQuest);
//Создаю новый элемент в деревеQuestionResultForm.QuestionTreeView.Items.Add(nil, NewQuest.Name) do:=0;:=NewQuest;;;
//Закрываю файл.Free;;;;.
Приложение Г
Модуль создания нового теста
unit NewTestWizardUnit;
interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls;= class(TForm): TPanel;: TLabel;: TLabel;: TImage;: TBevel;: TLabel;: TEdit;: TButton;: TButton;: TLabel;: TComboBox;FormShow(Sender: TObject);
{ Private declarations }
{ Public declarations };: TNewTestForm;
{$R *.dfm}TNewTestForm.FormShow(Sender: TObject);.Picture.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName)+logo.bmp);;
end.
Приложение Д
Модуль создания вопросов и ответов.
unit QuestionResultUnit;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, ComCtrls, ToolWin, ImgList;=^TQuestion;=record: String[255];:Integer;: array[0..10] of String[255];: array[0..10] of boolean;;= class(TForm): TTreeView;: TListView;: TSplitter;: TToolBar;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TToolButton;: TImageList;FormClose(Sender: TObject; var Action: TCloseAction);CloseButtonClick(Sender: TObject);NewButtonClick(Sender: TObject);FormShow(Sender: TObject);QuestionTreeViewChange(Sender: TObject; Node: TTreeNode);EditButtonClick(Sender: TObject);DeleteButtonClick(Sender: TObject);FormCreate(Sender: TObject);
{ Private declarations }
{ Public declarations }:String[255];:String;:TList;;: TQuestionResultForm;MainUnit, EditQuestionUnit;
mrOKthenexit;:=New(PQuestion);.Name:=EditQuestionForm.QuestionEdit.Text;.ResultCount:=EditQuestionForm.ResultListBox.Items.Count;i:=0toNewQuest.ResultCount-1do.ResiltText[i]:=EditQuestionForm.ResultListBox.Items.Strings[i];.ResiltValue[i]:=EditQuestionForm.ResultListBox.Checked[i];;.Add(NewQuest);QuestionTreeView.Items.Add(nil,NewQuest.Name)do:=0;:=NewQuest;;;TQuestionResultForm.QuestionTreeViewChange(Sender:TObject;:TTreeNode);:Integer;.Items.Clear;Node=nilthenexit;i:=0toPQuestion(node.Data).ResultCount-1doResultView.Items.Adddo:=PQuestion(node.Data).ResiltText[i];PQuestion(node.Data).ResiltValue[i]=truethen.Add();:=2;.Add();:=1;;;;TQuestionResultForm.EditButtonClick(Sender:TObject);:Integer;QuestionTreeView.Selected=nilthenexit;">{$R *.dfm}TQuestionResultForm.FormClose(Sender: TObject;Action: TCloseAction);.Free;:=caFree;:=nil;;TQuestionResultForm.CloseButtonClick(Sender: TObject);;;TQuestionResultForm.FormShow(Sender: TObject);:=TList.Create;;TQuestionResultForm.NewButtonClick(Sender: TObject);:PQuestion;:Integer;.ResultListBox.Items.Clear;.QuestionEdit.Text:=;.ShowModal;EditQuestionForm.ModalResult<>mrOK then exit;:=New(PQuestion);.Name:=EditQuestionForm.QuestionEdit.Text;.ResultCount:=EditQuestionForm.ResultListBox.Items.Count;i:= 0 to NewQuest.ResultCount-1 do.ResiltText[i]:=EditQuestionForm.ResultListBox.Items.Strings[i];.ResiltValue[i]:=EditQuestionForm.ResultListBox.Checked[i];;.Add(NewQuest);QuestionTreeView.Items.Add(nil, NewQuest.Name) do:=0;:=NewQuest;;;TQuestionResultForm.QuestionTreeViewChange(Sender: TObject;: TTreeNode);:Integer;.Items.Clear;Node=nil then exit;i:=0 to PQuestion(node.Data).ResultCount-1 doResultView.Items.Add do:=PQuestion(node.Data).ResiltText[i];PQuestion(node.Data).ResiltValue[i]=true then.Add(Да);:=2;.Add(Нет);:=1;;;;TQuestionResultForm.EditButtonClick(Sender: TObject);:Integer;QuestionTreeView.Selected=nil then exit;
//Заполняю компонент QuestionEdit в окне редактирования вопросов
EditQuestionForm.QuestionEdit.Text:=PQuestion(QuestionTreeView.Selected.Data).Name;
//Очищаю список вариантов ответов в окне редактирования вопросов
EditQuestionForm.ResultListBox.Clear;i:=0 to PQuestion(QuestionTreeView.Selected.Data).ResultCount-1 do
//Заполняю список вариантов ответов в окне редактирования вопросов
EditQuestionForm.ResultListBox.Items.Add(PQuestion(QuestionTreeView.Selected.Data).ResiltText[i]);
//Если ответ верный, то ставлю галочку
if PQuestion(QuestionTreeView.Selected.Data).ResiltValue[i]=true then.ResultListBox.Checked[i]:=true;;
mrOK then exit;(QuestionTreeView.Selected.Data).Name:=EditQuestionForm.QuestionEdit.Text;(QuestionTreeView.Selected.Data).ResultCount:=EditQuestionForm.ResultListBox.Items.Count;i:= 0 to PQuestion(QuestionTreeView.Selected.Data).ResultCount-1 do(QuestionTreeView.Selected.Data).ResiltText[i]:=EditQuestionForm.ResultListBox.Items.Strings[i];(QuestionTreeView.Selected.Data).ResiltValue[i]:=EditQuestionForm.ResultListBox.Checked[i];">//Отображаю окно редактирования вопроса.ShowModal;EditQuestionForm.ModalResult<>mrOK then exit;(QuestionTreeView.Selected.Data).Name:=EditQuestionForm.QuestionEdit.Text;(QuestionTreeView.Selected.Data).ResultCount:=EditQuestionForm.ResultListBox.Items.Count;i:= 0 to PQuestion(QuestionTreeView.Selected.Data).ResultCount-1 do(QuestionTreeView.Selected.Data).ResiltText[i]:=EditQuestionForm.ResultListBox.Items.Strings[i];(QuestionTreeView.Selected.Data).ResiltValue[i]:=EditQuestionForm.ResultListBox.Checked[i];
end;
//Вызываю процедуру QuestionTreeViewChange, которая должна обновить
//информацию в ResultView. Первый параметр нас не интересует, а второй
//мы обязаны указать потому что внутри процедуры QuestionTreeViewChange
//мы используем его. Я указываю выделенный элемент.
QuestionTreeViewChange(nil, QuestionTreeView.Selected);;TQuestionResultForm.DeleteButtonClick(Sender: TObject);:Integer;QuestionTreeView.Selected=nil then exit;
//Подтверждение удаленияApplication.MessageBox(PChar(Вы действительно хотите удалить - +
idOkthenExit;">QuestionTreeView.Selected.Text),Внимание!!!, MB_OKCANCEL+MB_ICONINFORMATION)<>idOk then Exit;
//Сохраняю индекс выделенного элемента:=QuestionTreeView.Selected.Index;
//Удаляю выделенный элемент из дерева.Items.Delete(QuestionTreeView.Selected);
//Удаляю из контейнера.Delete(Index);;TQuestionResultForm.FormCreate(Sender: TObject);:=;;.
Приложение Е
Модуль редактирования тестаEditQuestionUnit;
interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ExtCtrls, CheckLst, Buttons;= class(TForm): TPanel;: TImage;: TButton;: TButton;: TCheckListBox;: TLabel;: TEdit;: TLabel;: TSpeedButton;: TSpeedButton;FormShow(Sender: TObject);NewResultButtonClick(Sender: TObject);SpeedButton1Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TEditQuestionForm;
{$R *.dfm}TEditQuestionForm.FormShow(Sender: TObject);.Picture.Bitmap.LoadFromFile(ExtractFilePath(Application.ExeName)+logo.bmp);;TEditQuestionForm.NewResultButtonClick(Sender: TObject);:String;:=;
if InputQuery(Новый ответ, Введите текст ответа:, Str) then
-1then.Items.Delete(ResultListBox.ItemIndex);;.">ResultListBox.Items.Add(Str);;TEditQuestionForm.SpeedButton1Click(Sender: TObject);ResultListBox.ItemIndex<>-1 then.Items.Delete(ResultListBox.ItemIndex);;.