Всем привет! Сделал на PascalABC.net заготовку для теста с помощью system.windows.forms.
Но у меня проблемка небольшая есть...
Вобщем, у меня задается вопрос через label и, с помощью четырех переключателей (RadioButton), я могу выбрать один вариант ответа и если вариант ответа правильный, то переменной ''pr'' будет присвоено значение pr:=pr+1 (для того, чтобы в конце теста подсчитать кол-во правильных ответов). Но вот проблема, собственно, в том, что при выборе правильного ответа переменной ''pr'' не присвается значение +1. Судя по всему, это потому что при выборе верного переключателя, переключателю не присваивается значениу "true".
Помогите, пожалуйста, исправить.
Вот, собственно, сам код:
Код:
#apptype windows
#reference 'System.Windows.Forms.dll'
#reference 'System.Drawing.dll'
uses
system, System.Windows.Forms;
var
pr:=0;
otv:System.Windows.Forms.Button;
st: System.Windows.Forms.Button;
MyForm: System.Windows.Forms.Form;
But: System.Windows.Forms.Button;
Lab: System.Windows.Forms.Label;
Lab2: System.Windows.Forms.Label;
Rad1: System.Windows.Forms.RadioButton; \\Описание переключателей
Rad2: System.Windows.Forms.RadioButton; \\Описание переключателей
Rad3: System.Windows.Forms.RadioButton; \\Описание переключателей
Rad4: System.Windows.Forms.RadioButton; \\Описание переключателей
\\ Процедура создания второго вопроса
Procedure ButtonClick2(sender: object; e: EventArgs);
begin
Lab2.Show;
Lab2.Text:=IntToStr(pr); \\ Должен вывести переменную (pr), но не зависимо от выбора ответа, записывает 0.
lab.Text:='Вопрос 2';
Rad1.Text:='1';
Rad2.Text:='2';
Rad3.Text:='3';
Rad4.Text:='4';
end;
\\ Процедура создания первого вопроса
Procedure ButtonClick(sender: object; e: EventArgs);
begin
But.Show;
st.Hide;
otv.Hide;
Lab.Show;
Rad1.Show;
Rad2.Show;
Rad3.Show;
Rad4.Show;
Lab.Text:='Вопрос 1';
Rad1.Text:='1';
Rad2.Text:='2';
Rad3.Text:='3';
Rad4.Text:='4';
If Rad2.Checked=true then \\Если выбран второй переклчатель, то
pr:=pr+1; \\Присвоить переменной +1
But.Click+=ButtonClick2 \\Переходим к процедуре второго вопроса
end;
begin \\Тело создания формы
begin
pr:=0; \\Присваиваем pr значение 0
MyForm := System.Windows.Forms.Form.Create;
MyForm.text := 'Форма';
MyForm.Height := 400;
MyForm.Width := 600;
St:=new Button;
St.Text:= 'Начать тест';
St.Width:=200;
St.Height:=100;
St.Left:=200;
St.Top:=100;
MyForm.Controls.Add(St);
But := new Button;
But.Text := 'Далее';
But.Width:=100;
But.Left := 450;
But.Top := 300;
But.Hide;
MyForm.Controls.Add(But);
Lab:=System.Windows.Forms.Label.Create;
Lab.text:='11111';
Lab.Left:=50;
Lab.Top:=20;
Lab.Width:=500;
Lab.Height:=50;
Lab.Hide;
MyForm.Controls.Add(Lab);
\\Создание переключателя №1
Rad1:=System.Windows.Forms.RadioButton.Create;
Rad1.Width:=200;
Rad1.Text:='1 ответ//////////////////';
Rad1.Left:=100;
Rad1.Top:=70;
Rad1.Hide;
MyForm.Controls.Add(Rad1);
\\Создание переключателя №2
Rad2:=System.Windows.Forms.RadioButton.Create;
Rad2.Width:=200;
Rad2.Text:='1 ответ//////////////////';
Rad2.Left:=100;
Rad2.Top:=100;
Rad2.Hide;
MyForm.Controls.Add(Rad2);
\\Создание переключателя №3
Rad3:=System.Windows.Forms.RadioButton.Create;
Rad3.Width:=200;
Rad3.Text:='1 ответ//////////////////';
Rad3.Left:=100;
Rad3.Top:=130;
Rad3.Hide;
MyForm.Controls.Add(Rad3);
\\Создание переключателя №4
Rad4:=System.Windows.Forms.RadioButton.Create;
Rad4.Width:=200;
Rad4.Text:='1 ответ//////////////////';
Rad4.Left:=100;
Rad4.Top:=160;
Rad4.Hide;
MyForm.Controls.Add(Rad4);
otv:=new Button;
otv.Left:=400;
otv.Top:=200;
otv.Text:='Выбрать';
otv.Hide;
MyForm.Controls.Add(otv);
Lab2:= System.Windows.Forms.Label.Create;
Lab2.Width:=200;
Lab2.Height:=100;
Lab2.Left:=350;
Lab2.Top:=80;
Lab2.Text:='fffffffffff';
Lab2.Hide;
MyForm.Controls.Add(Lab2);
begin
St.Click += ButtonClick; \\ Переходим к процедуре первого вопроса
end;
end;
begin
Application.Run(MyForm)
end;
end.