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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2011, 20:54   #1
tracer
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 30
Лампочка Delphi. Простой Тест

Дана задача сделать тест с использованием TRadioButton и TGroupBox.
Я сделал простой набросок, не обращайте внимание на смысл вопросов.
Отвечая на первый вопрос все идет как надо. Но отвечая на второй вопрос он просто дублирует ответ первого, и делает это до бесконечности.
Нужно что бы отвечал правильно и только на 2 вопроса.

Код:
unit Unit8;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm8 = class(TForm)
    Box1: TGroupBox;
    radio_1: TRadioButton;
    radio_2: TRadioButton;
    radio_3: TRadioButton;
    Box2: TGroupBox;
    radio_4: TRadioButton;
    radio_5: TRadioButton;
    radio_6: TRadioButton;
    Button1: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form8: TForm8;

implementation

{$R *.dfm}

procedure TForm8.Button1Click(Sender: TObject);
begin
   if radio_1.Checked then
Edit1.Text:=edit1.Text+'1)Верный ответ'
else
if radio_2.Checked then
Edit1.Text:=edit1.Text+'1)Неверный ответ'
else
if radio_3.Checked then
Edit1.Text:= edit1.Text+ '1)Неверный ответ'
else
if radio_4.Checked then
Edit1.Text:=edit1.Text+'2)Верный ответ'
else
if radio_5.Checked then
Edit1.Text:=edit1.Text+'2)Неверный ответ'
else
if radio_6.Checked then
Edit1.Text:= edit1.Text+ '2)Неверный ответ'
end;

end.
Подскажите.

Может нужно что то сделать с TGroupBox я точно не знаю.
tracer вне форума Ответить с цитированием
Старый 27.11.2011, 20:58   #2
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Нужно убирать Checked c предыдущего RadioButton.

Добавил.
Пересмотрел код и понял, что то что я сказал теперь не актуально. Пока посижу подумаю.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 27.11.2011, 22:05   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
первые три RadioButton находятся в TGroupBox 1
следующие 3 во втором
Не, так не пойдет. Группировка Радио ведется по контейнерам. Ты их разнес, потому и при клике по некоему баттону из второго бокса, галочка с батона в первом боксе не исчезает.
ИМХО - нафик выкинуть эту программу и с нуля переделать изменив всю стратегию вкорне - совсем неудачная реализация.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2011, 22:22   #4
tracer
Пользователь
 
Регистрация: 10.05.2011
Сообщений: 30
По умолчанию

с чего тогда начать хотя бы?

Может сделать через TRadioGroup? только как?

первые три RadioButton находятся в TGroupBox 1
следующие 3 во втором
может что то с ними сделать? что бы не дублировало

Последний раз редактировалось Stilet; 28.11.2011 в 09:36.
tracer вне форума Ответить с цитированием
Старый 28.11.2011, 09:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с чего тогда начать хотя бы?
Начни с того что раз уж разнес батоны по группам, разнеси и обработчик на две части.
Код:
procedure TForm8.Button1Click(Sender: TObject);
begin
if radio_1.Checked then Edit1.Text:=edit1.Text+'1)Верный ответ'
else
if radio_2.Checked then Edit1.Text:=edit1.Text+'1)Неверный ответ'
else
if radio_3.Checked then Edit1.Text:= edit1.Text+ '1)Неверный ответ'
end;
Код:
procedure TForm8.Button2Click(Sender: TObject);
begin
if radio_4.Checked then Edit1.Text:=edit1.Text+'2)Верный ответ'
else
if radio_5.Checked then Edit1.Text:=edit1.Text+'2)Неверный ответ'
else
if radio_6.Checked then Edit1.Text:= edit1.Text+ '2)Неверный ответ'
end;
Каждая кнопка помещается в свою группу, и контроллирует только батоны этой группы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой тест в Delphi Nicole Помощь студентам 2 02.10.2011 21:29
Простой тест с выводом результата сразу после ответа на вопрос demiancz Общие вопросы Delphi 2 24.06.2011 22:15
Простой тест на С++ _сергей_белко_ C++ Builder 3 28.02.2011 18:52
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
Простой тест Kivik Мультимедиа в Delphi 2 20.01.2009 15:44