- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi FireMonkey 学习笔记 – TPopup 控件的使用
TPopup 控件可以用于类似菜单或 comboBox 弹出方式显示控件内容,例如下图所示的 CallOutPanel 在点击 button2 之后显示出来,当 CallOutPanel 失去焦点后即会消失。

方法很简单,就是将 TPopup 控件放到窗体上,然后,将需要显示的控件拖放到 TPopup 控件里,注意,TPopup 控件必须是它的父级,如下图,在结构树中,需要显示的控件是 TPopup 控件的子控件。

另外要注意的一点是:TPopup 控件的位置(Position)很重要,如果位置设置不对,将无法显示出Popup效果,这也许是 Delphi 的一个 Bug,但不管怎样说,你可以选择在向窗体中放置 TPopup 控件时,就放在窗体的左上角 Position 为0,0的的位置,或者在窗体创建的事件里,把TPopup对象实例的 Position 设置为 0, 0。

TPopup 控件的显示和关闭。
- 设置 TPopup 控件实例的 IsOpen 属性为 true,即会显示出 TPopup 控件;设置为 false,则会关闭 TPopup 控件,或者,当焦点位置更新时,也会自动关闭已经打开的 TPopup 控件实例。
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls;
type
TForm1 = class(TForm)
ToolBar1: TToolBar;
Popup1: TPopup;
CalloutPanel1: TCalloutPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
StyleBook1: TStyleBook;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
Popup1.IsOpen:=True;
end;
end.