16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"ポップアップリストボックス利用サンプル"
この発言は #01008 かとちん さんのポップアップするリストボックス に対するコメントです
また自己レスです。
スピードボタンを押下してコンボボックスのようにポップアップする例です。
処理概要としては
1.スピードボタンのクリックで「ポップアップ」
2.ポップアップ中に再度ボタンをクリックされたら「ポップアップしない」
┏━┓ ← このようなスピードボタンを用意してください。
┃▼┃
┗━┛
// PopupListBox1.OnPopupClose イベントの実装
procedure TForm1.PopupListBox1PopupClose(Sender: TObject;
ActiveTo: TControl);
begin
// スピードボタン自体が押下されたキャンセルでは
// ポップアップしないようにメモしておく
if ActiveTo = SpeedButton1 then
SpeedButton1.Tag := 1;
end;
// SpeedButton1.OnMouseDown イベントの実装
procedure TForm1.SpeedButton1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Pt: TPoint;
begin
if mbLeft = Button then
begin
// 今回の押下がリストボックスを閉じるための押下でなければ
// リストボックスをポップアップ
if SpeedButton1.Tag = 0 then
begin
Pt := SpeedButton1.ClientToScreen(Point(X, Y));
PopupListBox1.Popup(Pt.x, Pt.y);
end;
SpeedButton1.Tag := 0;
end;
end;
⌒ ⌒ 2000/01/25(火) 午後 08:28 かとちん(JDX06162)
◎ ◎ mailto:tarochan.kato@nifty.ne.jp
∋ ▽ ∈ http://pc2.techno-ware-unet.ocn.ne.jp/~kato/
Original document by かとちん 氏 ID:(JDX06162)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|