6

IE/Firefox の戻るボタン スタイル、ドロップダウン メニュー ボタンを表示する方法はありますか?

4

4 に答える 4

10

クリックするとメニューがドロップダウンするボタンを意味していると思います。

ボタンのクリックを手動でコーディングして、その下に TPopupMenu をドロップダウンすることもできます。

: TClickEvent (おそらく TButton) と TPopupMenu を含むものをフォームにドロップします。いくつかのメニュー項目を追加します。次に、次の OnClick イベント ハンドラを追加します。

procedure TForm86.Button1Click(Sender: TObject);
var
  button: TControl;
  lowerLeft: TPoint;
begin
  if Sender is TControl then
  begin
    button := TControl(Sender);
    lowerLeft := Point(button.Left, button.Top + Button.Height);
    lowerLeft := ClientToScreen(lowerLeft);
    PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
  end;
end;

そしてヴィオラ!魔法のように。再利用する場合は、すべてをコンポーネントにまとめることができます。 ひょっとしたらネット販売もあるかもしれません。

注:遅延が必要な場合は、別のメソッドでそのコードを抽出し、タイマー OnClick を設定して、OnMouseLeave のタイマーをオンにします。次に、タイマーが起動すると、抽出されたメソッドを呼び出すことができます。キーボードのクリックでそれを行う方法がわからない。Firefox などがそれをサポートしているかどうかもわかりません。

于 2008-10-25T00:00:56.463 に答える
9

もちろん。ページにツールバーを配置します。ツールバーを右クリックし、ボタンを追加します。ボタンのスタイルを tbsDropDown に設定します。ページに PopupMenu を配置します。PopupMenu をダブルクリックして、メニュー項目を定義します。次に、作成したボタンに戻り、作成したばかりの PopupMenu を指すように DropdownMenu プロパティを設定します。

于 2008-10-24T23:29:25.310 に答える
8

ジムの答えは素晴らしいですが、最初はうまくいきませんでした。ClientToScreen は Form86 のメソッドを使用します。これは、ボタンがフォーム上に直接ある場合にのみ正しいものです。次のように、呼び出されるボタンの ClientToScreen メソッドである必要があります。

procedure TForm86.Button1Click(Sender: TObject);
var
  button: TControl;
  lowerLeft: TPoint;
begin
  if Sender is TControl then
  begin
    button := TControl(Sender);
    lowerLeft := Point(0, button.Height);
    lowerLeft := button.ClientToScreen(lowerLeft);
    PopupMenu1.Popup(lowerLeft.X, lowerLeft.Y);
  end;
end;

これは、ボタンがどこにあっても機能します。

于 2009-07-28T23:54:14.430 に答える
0

ツールバーを使用したくない場合は、raize (www.raize.com) および Express Editors (www.DevExpress.com) ライブラリに、ツールバーを使用できるコンポーネントがあります。

于 2008-10-24T23:35:32.490 に答える