【发布时间】:2014-10-10 09:31:00
【问题描述】:
我在 Firemonkey 中使用 TPanel 创建了一个组件。我的想法是在运行时单击我的组件并实现一些功能。因此,当我将我的组件拖到表单上并运行应用程序时,我点击了我的组件,那时我的功能将起作用。
这里我创建了一个Component,源码如下:
unit Layout1;
interface
uses
FMX.controls, System.Classes,FMX.StdCtrls, FMX.Types,System.UITypes, System.SysUtils,FMX.Dialogs;
type
TTestPnl = class(TPanel) // inherit panel
private
protected
public
Pnl : TPanel;
constructor Create(AOwner : TComponent); override;
procedure Click; override;
published
end;
procedure Register;
implementation
// Creation component at run time with assigning onclick event
constructor TTestPnl .Create(AOwner: TComponent);
begin
inherited;
Pnl := TPanel.Create(Self);
with Pnl do
begin
Height := 145.000000000000000000;
Position.X := 408.000000000000000000;
Position.Y := 40.000000000000000000;
Width := 201.000000000000000000;
TabOrder := 0;
OnClick := click;
end;
// Implementing Onclick functionality for runtime
procedure TTestPnl .Click;
begin
inherited;
ShowMessage('Click Event Call');
end;
procedure Register;
begin
RegisterComponents('TestPnl', [TTestPnl]);
end;
end.
在我的代码中,当我拖动组件时,仅单击事件调用。但是我需要在拖动组件运行应用程序之后单击我的组件,那时我的程序将调用。
【问题讨论】:
-
你真的想把那个面板放在一个面板里面吗?
-
不只是例子,我想在组件运行模式时调用onclick事件。
-
当然 Click 已经触发 OnClick。为什么不使用普通的 TPanel 并使用其现有的 OnClick?
-
好的,但是在组件内部代码想要实现一些功能。因此,当我在运行时在表单上拖动组件时,当我单击应该调用该函数的组件时。
-
你为什么不问这个问题?如何让用户在运行时拖动我的面板并调整其大小?
标签: delphi components firemonkey