12

TSpeedButton にこのプロパティがある理由はわかりませんが、TSpeedButton が特定のグループ インデックスの唯一のボタンである場合、「AllowAllUp」が押されているかどうかに関係なく、押されたままになりません。ジェダイのコントロールで十分かもしれませんが、いくつかの修正があることを願っています. どんな助けや逸話も大歓迎です。

ところで、私は(まだ)Delphi 7を使用していますが、これが全体的な難問であるかどうかはわかりません。

4

11 に答える 11

18

ここには D7 はありませんが、D2006 では、GroupIndex の値が 0 より大きい場合、Speedbutton が押されたままになります。

これが希望する動作でない場合は、OnClick-Eventhandler で Down-Property を手動で設定できます (GroupIndex が 0 であることを確認してください)。

于 2008-10-14T20:47:15.920 に答える
13

Delphi 7(ビルド4.453)で試してみました:

  • 新しいアプリケーションを作成する
  • TSpeedButtonフォームに追加
  • セットするAllowAllUp := true;
  • セットするGroupIndex := 1;
  • アプリケーションを実行する

ボタンをクリックすると、他のコードを必要とせずにダウン状態に切り替わります。

于 2008-10-15T15:46:06.853 に答える
2

ナイトキラーは正しいです。どのバージョンの Delphi でも動作することがわかります。

object SpeedButton1: TSpeedButton
  Left = 152
  Top = 384
  Width = 23
  Height = 22
  AllowAllUp = True
  GroupIndex = 99
end
于 2008-10-14T21:48:12.943 に答える
2

Delphi がその作業を行うので、「コードを書かないでください」。

IDE で、グループとして操作するすべての SpeedButton を選択し、グループ全体の「GroupIndex」を「0」以外に設定すると、完了です -- コードなし -- NADA !!

于 2011-06-01T15:45:32.477 に答える
1

これを機能させるには、OnClick イベントで常にダウンしているため、Down プロパティを切り替えることはできません。別の値が必要です。

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  MyBoolProperty := not MyBoolProperty;
  SpeedButton1.Down := MyBoolProperty;
end;
于 2014-03-10T06:14:01.663 に答える
1

うーん、奇妙なことに、これをかなりの回数使用して成功したことを覚えています。おそらく、SpeedButton のDownプロパティを試してみる必要がありますか? クリックしても自動的にトグルするとは思わない---明示的にトグルする必要があるDownと思います...

[編集: に置き換えChecked--- DownTSpeedButton にはCheckedプロパティがありません。申し訳ありません!]

于 2008-10-14T20:45:15.630 に答える
0

私は自分の問題の解決策を探していましたが、これは同じようなものだと思います。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;

これにより、ボタンをクリックするとボタンが下に切り替わり、もう一度クリックするとボタンが上に切り替わります。

それが何か助けになることを願っています

于 2008-10-29T16:36:28.207 に答える
0

秘訣は、GroupIndex を一意の値に設定し、AllowAllUp を true に設定することです。最初のものを忘れると、ダウンしたままになることはありません。

于 2008-10-30T07:17:45.667 に答える
0

AllowAllup を true に設定し、Down を false に設定します。

次に、OnClickイベントで:

....
btn.AllowAllUp := not btn.AllowAllUp;
btn.Down       := not btn.Down;
....
于 2013-03-04T23:05:45.050 に答える