Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2010, 15:59   #1
*stRong*
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 47
По умолчанию PascalABC.net

Всем привет! Сделал на PascalABC.net заготовку для теста с помощью system.windows.forms.
Но у меня проблемка небольшая есть...
Вобщем, у меня задается вопрос через лэйбл, и с помощью четырех переключателей (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.

Последний раз редактировалось *stRong*; 11.06.2010 в 07:50.
*stRong* вне форума Ответить с цитированием
Старый 10.06.2010, 16:08   #2
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Цитата:
Rad1.Checked:=true;
If Rad2.Checked=true then \\Если выбран второй переклчатель, то
pr:=pr+1; \\Присвоить переменной +1
Кажется проблема в этом.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 10.06.2010, 17:50   #3
*stRong*
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 47
По умолчанию

Тьфу... Rad1.Checked:=true это остаток эксперемента. Без этой строчки тест не работает. А введя эту строку в код, программа начала независимо от выбора переключателя присваивать переменной единицу...
Не могу понять из-за чего он криво работает...

Ну так что? Никто не знает, почему переключателю, при клике на него, не присваивается значение true?

Последний раз редактировалось Stilet; 11.06.2010 в 07:49.
*stRong* вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PascalABC.NET, windows.forms *stRong* Помощь студентам 0 03.06.2010 21:47
Создание теста на PascalABC.NET *stRong* Паскаль, Turbo Pascal, PascalABC.NET 1 03.06.2010 19:41
3D в PascalABC Рудко Дмитрий Паскаль, Turbo Pascal, PascalABC.NET 6 09.02.2010 13:02
Графика PascalABC.NET Ученик. Помощь студентам 6 04.02.2010 15:24