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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2017, 10:47   #1
Bob_90
Пользователь
 
Регистрация: 15.06.2012
Сообщений: 11
По умолчанию проверка нажата зафиксирована ли speedButton.

Доброе времени суток.
У меня такой вопрос, ни как не могу сделать. есть 4 speedbutton объеденную в одну группу. как узнать какой button зафиксирован.
Так как кнопки находятся в Frame. И этот Frame используется неоднократно раз использовать OnClick исключено, т.е. как записать в Timer.
Код:
procedure TFrame3.Timer1Timer(Sender: TObject);
var
s: string;

begin
if sSpeedButton1.Down = true then
  begin
   	s:='нажата кнопка A';
  end
else
  begin
    s:='Кнопки не нажаты';
  end;

if (sSpeedButton2.Down) = true then
  begin
	s:='нажата кнопка B';
  end
else
  begin
    s:='Кнопки не нажаты';
  end;

if (sSpeedButton3.Down) = true then
  begin
	 s:='нажата кнопка C';
  end
else
  begin
     s:='Кнопки не нажаты';
  end;

if (sSpeedButton4.Down) = true then
  begin
	 s:='нажата кнопка D';
  end
else
  begin
     s:='Кнопки не нажаты';
  end;
Bob_90 вне форума Ответить с цитированием
Старый 15.04.2017, 12:52   #2
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 272
По умолчанию

Код:
type
  TFrame3 = class(TFrame)
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Timer1: TTimer;
    Label1: TLabel;
    procedure Timer1Timer(Sender: TObject);
  private
    S: string;
    List: TList;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

implementation

{$R *.dfm}

procedure TFrame3.Timer1Timer(Sender: TObject);
var
  I: Integer;
  Btn: TSpeedButton;
begin
  for I := 0 to List.Count - 1 do
  begin
    Btn := TSpeedButton(List[I]);
    if Btn.Down then
    begin
      S := Format('Нажата кнопка %s', [Btn.Name]);
      Break;
    end;
  end;
  Label1.Caption := S;
end;

constructor TFrame3.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  List := TList.Create;
  List.Add(SpeedButton1);
  List.Add(SpeedButton2);
  List.Add(SpeedButton3);
  List.Add(SpeedButton4);
  S := 'Кнопки не нажаты';
  Timer1.Interval := 100;
  Timer1.Enabled := True;
end;

destructor TFrame3.Destroy;
begin
  List.Free;
  inherited Destroy;
end;
Filka вне форума Ответить с цитированием
Старый 15.04.2017, 13:41   #3
Bob_90
Пользователь
 
Регистрация: 15.06.2012
Сообщений: 11
По умолчанию

Спасибо все работает. походу я не совсем хорошо раскрыл вопрос.
Я так понял здесь код откликается когда один из button в позиции down=true "Покажи кнопку". а как определить если button в позиции down=false "Кнопки не нажаты" не во время create, а в процессе обработки?
Bob_90 вне форума Ответить с цитированием
Старый 15.04.2017, 13:44   #4
Bob_90
Пользователь
 
Регистрация: 15.06.2012
Сообщений: 11
По умолчанию

Пардон. Все разобрался
Код:
Btn := TsSpeedButton(List[I]);
    if Btn.Down = true then
    begin
      S := Format('Нажата кнопка %s', [Btn.Name]);
      Break;
    end
    else

//Добавил вот это
    begin
      S := 'Кнопки не нажаты';
    end;
Bob_90 вне форума Ответить с цитированием
Старый 15.04.2017, 13:47   #5
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 272
По умолчанию

В группе одна из кнопок находится в нажатом состоянии и обратно не отжимается (после нажатия)...
Filka вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка состояния SpeedButton helper999999 Общие вопросы Delphi 5 23.05.2014 20:15
SpeedButton HTTqp Компоненты Delphi 4 16.03.2014 14:02
SpeedButton Ko$ Помощь студентам 2 09.11.2011 13:33
Как определить когда нажата кнопка мыши, если она нажата в совсем другой программе? Iceman Общие вопросы Delphi 2 19.10.2009 19:03
Нажата ли клавиша... Xcopy Паскаль, Turbo Pascal, PascalABC.NET 14 26.03.2009 11:14