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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2011, 17:53   #1
Olya1985
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 113
По умолчанию Проверка нажатия нескольких RadioButton (избавиться от множества проверок)

скажите, пожалуйста, как исправить код, чтобы не нужно было писать if несколько раз?

Код:
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
 if RadioButton1.Checked then shape1.Brush.Color:=clRed;
  if RadioButton1.Checked then shape2.Brush.Color:=clsilver;
  if RadioButton1.Checked then shape3.Brush.Color:=clsilver;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
  if RadioButton2.Checked then shape2.Brush.Color:=clYellow;
  if RadioButton2.Checked then shape1.Brush.Color:=clsilver;
  if RadioButton2.Checked then shape3.Brush.Color:=clsilver;
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
  if RadioButton3.Checked then shape3.Brush.Color:=cllime;
  if RadioButton3.Checked then shape1.Brush.Color:=clsilver;
  if RadioButton3.Checked then shape2.Brush.Color:=clsilver;
end;
________
1) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

2) Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
Ну научитесь же, наконец, давать своим темам ПРАВИЛЬНЫЕ названия!

Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 21.08.2011 в 18:35.
Olya1985 вне форума Ответить с цитированием
Старый 21.08.2011, 18:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    procedure RadioButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
 if Sender=RadioButton1 then shape1.Brush.Color:=clRed else shape1.Brush.Color:=clSilver;
 if Sender=RadioButton2 then shape2.Brush.Color:=clYellow else shape2.Brush.Color:=clSilver;
 if Sender=RadioButton3 then shape3.Brush.Color:=cllime else shape3.Brush.Color:=clSilver;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 RadioButton1.OnClick:=RadioButton1Click;
 RadioButton2.OnClick:=RadioButton1Click;
 RadioButton3.OnClick:=RadioButton1Click;
end;

end.
Пойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2011, 18:13   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Он и так Checked, если его OnClick сработало
Код:
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
  shape1.Brush.Color:=clRed;
  shape2.Brush.Color:=clsilver;
  shape3.Brush.Color:=clsilver;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отобразить историю нажатия Button и RadioButton Tokko1 Помощь студентам 7 21.02.2011 17:11
Проверка Нажатия ссылки kaviga PHP 10 22.02.2010 13:56
Проверка Нажатия ссылки kaviga PHP 11 03.02.2010 23:53
Проверка нажатия конкретной клавиши (или нескольких клавиш) в реальном времени ROD Общие вопросы C/C++ 2 15.01.2009 13:11
Эмуляция нажатия нескольких клавиш -=Shad0www Общие вопросы Delphi 3 12.05.2008 08:13