рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Запускаю цикл, по которому заполняются данные списка for i:=0 to PQuestion(node.Data).ResultCount-1 do with ResultView.Items.Add do

Запускаю цикл, по которому заполняются данные списка for i:=0 to PQuestion(node.Data).ResultCount-1 do with ResultView.Items.Add do - раздел Информатика, Собственные программы ScreenSaver и закрепим максимум из пройдённого материала на полезных в реальной жизни примерах Begin Caption:=Pquestion(Node.data).resilttext[I]; If Pques...

begin
Caption:=PQuestion(node.Data).ResiltText[i];
if PQuestion(node.Data).ResiltValue[i]=true then

begin
SubItems.Add('Да');
ImageIndex:=2;

end
else

begin
SubItems.Add('Нет');
ImageIndex:=1;

end; end; end;

Это событие генерируется каждый раз, когда пользователь выбрал какой-нибудь элемент. По выбору вопроса мы должны заполнить ответы в списке ListView. Но прежде чем заполнять, я очищаю список, потому что он уже мог быть заполненным данными другого вопроса.

В обработчик события нам передаётся параметр Node типа TTreeNode, который указывает на выделенный элемент. Второй строчкой кода я проверяю, если выделенный элемент равен nil (ничего не выбрано), то нужно выходить из процедуры.

Чтобы получить доступ к структуре PQuestion, в которой хранятся данные об ответах выделенного вопроса, мы должны обратиться к свойству Data выделенного элемента Node. Как ты помнишь, в это свойство мы поместили указатель на структуру PQuestion. Но программа не может знать какого типа этот указатель, поэтому мы должны явно указывать это -PQuestion(node.Data).

Далее, я запускаю цикл от 0 до количества вариантов ответов в данном вопросе PQuestion(node.Data).ResultCount минус 1. Внутри цикла я выполняю код ResultView.Items.Add, который создаёт очередной элемент списка. Здесь метод Add также возвращает указатель на созданный элемент, вместе с которым и будет выполняться дальнейший код (об этом говорит оператор with). А внутри кода я выполняю следующее:

1. 1. Заполняю заголовок элемента Caption.

2. 2. Если PQuestion(node.Data).ResiltValue[i] равно true, то есть ответ верный, то я добавляю дочерний элемент (текст этого элемента будет отображаться во второй колонке списка) SubItems.Add('Да') и присваиваю 2-й индекс иконки. Иначе текст дочернего элемента будет равен «Нет» и иконка будет иметь индекс единицы.

 

Таким образом, внутри цикла будет обработаны все варианты ответов, и все они будут добавлены в список. Попробуй сейчас запустить программу и создать пару вопросов с различными вариантами и посмотреть, как всё будет выглядеть. Моё окно программы ты можешь увидеть на рисунке 25.3.8.

Совсем забыл описать код, по которому мы будем отображать окно, показанное мной на рисунке 25.3.8. Для этого нам надо подкорректировать обработчик события OnClick для кнопки создания нового проекта теста:

procedure TTestEditorForm.NewButtonClick(Sender: TObject);

begin NewTestForm.ShowModal; if NewTestForm.ModalResult<>mrOK then exit;

– Конец работы –

Эта тема принадлежит разделу:

Собственные программы ScreenSaver и закрепим максимум из пройдённого материала на полезных в реальной жизни примерах

Глава Сплошная практика...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Запускаю цикл, по которому заполняются данные списка for i:=0 to PQuestion(node.Data).ResultCount-1 do with ResultView.Items.Add do

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Procedure TForm1.FormCreate(Sender: TObject); begin BGbitmap:=TBitmap.Create;//Инициализация
// Выставляем размеры картинки как у экрана BGbitmap.Width := Screen.Width; BGbitmap.Height := Screen.Height; DC := GetDC (0); Backgr

Procedure TForm1.FormCreate(Sender: TObject); begin BGbitmap:=TBitmap.Create;//Инициализация
// Выставляем размеры картинки как у экрана BGbitmap.Width := Screen.Width; BGbitmap.Height := Screen.Height; DC := GetDC (0); Backgr

TempPanel.Width:=20; //Устанавливаю ширину TempPanel.Height:=20; //Устанавливаю высоту
//Далее устанавливаю обработчик нажатия на эту панель TempPanel.OnMouseDown:=PanelMouseDown; //Добавляю панель в контейнер CompList (CompList.Add) //

If Button=mbRight then
begin index:=TPanel(Sender).Tag; TPanel(CompList.Items[index]).Free; CompList.Delete(index); for i:=index to CompList.Count -1 do TPanel(Co

Procedure TTestEditorForm.ShowHint(Sender: TObject); begin
StatusBar.Panels.Items[0].Text := Application.Hint; end; Здесь я отображаю текст текущей подсказки, который находиться в свойстве Hint объекта Application на

Procedure TTestEditorForm.ShowHint(Sender: TObject); begin
StatusBar.Panels.Items[0].Text := Application.Hint; end; Здесь я отображаю текст текущей подсказки, который находиться в свойстве Hint объекта Application на

Добавляю новый элемент в дерево вопросов with QuestionTreeView.Items.Add(nil, NewQuest.Name) do
begin ImageIndex:=0; Data:=NewQuest; end; end; В самом начале я очищаю элементы управления окна EditQuestionForm. Потом

If NewTestForm.TestTypeBox.ItemIndex=0 then
begin QuestionResultForm:=TQuestionResultForm.Create(Owner); QuestionResultForm.ProjectName:=NewTestForm.TestNameEdit.Text; QuestionResultForm.Caption:=QuestionResultForm.Caption+' : '

PQuestion(QuestionList[QuestionTreeView.Selected.Index]).Name
Здесь я использую контейнер QuestionList. В квадратных скобках у него я указываю индекс элемента из контейнера, который мне нужен. Здесь я указываю индекс выделенного в дереве элемента Qu

Procedure TTestEditorForm.SaveAsMenuClick(Sender: TObject); begin if SaveDialog1.Execute then
begin TQuestionResultForm(ActiveMDIChild).FileName:=SaveDialog1.FileName; SaveButtonClick(nil); end; end; Здесь я отображаю окно выбора имени фай

Создаю новый элемент в дереве with QuestionResultForm.QuestionTreeView.Items.Add(nil, NewQuest.Name) do
begin ImageIndex:=0; Data:=NewQuest; end; end; finally //Закрываю файл fs.Free;

Private
{ Private declarations } QuestionList:TList; Question, QuestionNumber, FalseNumber:Integer; FileName:String; Разберём,

Procedure TTestForm.RunButtonClick(Sender: TObject); begin
LoadFile; QuestionNumber:=0; FalseNumber:=0; NextButton.Enabled:=true; NextQuestion;

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги