IE/Firefox の戻るボタン スタイル、ドロップダウン メニュー ボタンを表示する方法はありますか?
4 に答える
クリックするとメニューがドロップダウンするボタンを意味していると思います。
ボタンのクリックを手動でコーディングして、その下に 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 などがそれをサポートしているかどうかもわかりません。
もちろん。ページにツールバーを配置します。ツールバーを右クリックし、ボタンを追加します。ボタンのスタイルを tbsDropDown に設定します。ページに PopupMenu を配置します。PopupMenu をダブルクリックして、メニュー項目を定義します。次に、作成したボタンに戻り、作成したばかりの PopupMenu を指すように DropdownMenu プロパティを設定します。
ジムの答えは素晴らしいですが、最初はうまくいきませんでした。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;
これは、ボタンがどこにあっても機能します。
ツールバーを使用したくない場合は、raize (www.raize.com) および Express Editors (www.DevExpress.com) ライブラリに、ツールバーを使用できるコンポーネントがあります。