Как заставить Delphi TSpeedButton оставаться нажатым, если он единственный в группе - PullRequest
11 голосов
/ 15 октября 2008

Я не уверен, почему TSpeedButton имеет это свойство, но когда TSpeedButton является единственной кнопкой данного группового индекса, он не остается нажатым, независимо от того, нажата ли кнопка «AllowAllUp». Возможно, контроля джедая будет достаточно, но, надеюсь, есть какое-то решение. Любая помощь или анекдоты приветствуются.

Кстати, я (все еще) использую Delphi 7, но не уверен, что это загадка по всем направлениям.

Ответы [ 11 ]

0 голосов
/ 29 октября 2008

Я искал решение для моей проблемы, и я думаю, что это то же самое. Я хотел, чтобы SpeedButton переключал состояние вверх и вниз, как переключатель, и мне это удалось, установив свойства:

AllowAllUp := True; 
GroupIndex := 1;

Затем в событии OnClick кнопки, которую я написал:

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  if( SpeedButton1.AllowAllUp ) then 
  begin 
    SpeedButton1.AllowAllUp := False; 
    SpeedButton1.Down := True; 
  end else 
  begin 
    SpeedButton1.AllowAllUp := True; 
    SpeedButton1.Down := False; 
  end; 
end;

Это переключает кнопку вниз при нажатии и вверх при повторном нажатии.

Надеюсь, это поможет

...