- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有个问题。
我用这个简单的代码添加了一个按钮,但它没有编译任何解决方案?
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.Controls.Presentation, FMX.StdCtrls, FMX.TabControl;
type
TTabItem = class(FMX.TabControl.TTabItem)
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override;
end;
TTabControl = class(FMX.TabControl.TTabControl)
function GetTabIndex : integer;
public
procedure SetTabIndexv2(const Value: Integer);
property TabIndex: Integer read GetTabIndex write SetTabIndexv2 default -1;
end;
type
TForm1 = class(TForm)
tbc1: TTabControl;
TabItem1: TTabItem;
TabItem2: TTabItem;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
{ TTabItem }
procedure TTabItem.MouseDown(Button: TMouseButton; Shift: TShiftState; X,
Y: Single);
begin
if (self.TabControl.ActiveTab <> self) and
((Button = TMouseButton.mbLeft) or (ssDouble in Shift)) then begin
MessageDlg('[Tab Item] do you want to do this?', System.UITypes.TMsgDlgType.mtInformation,
[System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], 0, procedure (const AResult: TModalResult)
begin
begin
case AResult of
mrYes: self.TabControl.ActiveTab := self;
mrNo:;
end;
end;
end);
end else begin
inherited;
end;
end;
{ TTabControl }
function TTabControl.GetTabIndex: integer;
begin
result := FMX.TabControl.TTabControl(Self).TabIndex;
end;
procedure TTabControl.SetTabIndexv2(const Value: Integer);
begin
if self.TabIndex <> value then begin
MessageDlg('[tabcontrol] do you want to do this?', System.UITypes.TMsgDlgType.mtInformation,
[System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], 0, procedure (const AResult: TModalResult)
begin
begin
case AResult of
mrYes: begin
FMX.TabControl.TTabControl(Self).TabIndex := value;
end;
mrNo : ;
end;
end;
end);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if tbc1.TabIndex = 0 then
tbc1.TabIndex := 1
else
tbc1.TabIndex := 0;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
tbitem: TTabItem;
begin
tbitem := tbc1.Add( ); //Here Error !!!
end;
end.
[dcc32 错误] Unit1.pas(106): E2010 不兼容的类型:“Unit1.TTabItem”和“FMX.TabControl.TTabItem”
最佳答案
你快到了。
procedure TForm15.ButtonRandomSeedClick(Sender: TObject);
var
tbitem: TTabItem;
begin
tbitem := TabControl1.Add( TTabItem ) as TTabItem; //<<<<< Change 1
tbItem.Text := 'Tab ' + IntToStr( TabControl1.TabCount );
end;
procedure TForm15.TabItem1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Single);
var
tbitem: TTabItem;
begin
tbitem := (Sender as TTabItem); // <<<<<<this change for testing only
if (tbItem <> TabControl1.ActiveTab) and
((Button = TMouseButton.mbLeft) or (ssDouble in Shift)) then begin
MessageDlg('[Tab Item] do you want to do this?', System.UITypes.TMsgDlgType.mtInformation,
[System.UITypes.TMsgDlgBtn.mbYes, System.UITypes.TMsgDlgBtn.mbNo], 0, procedure (const AResult: TModalResult)
begin
begin
case AResult of
mrYes: TabControl1.ActiveTab := (Sender as TTabItem);
mrNo:;
end;
end;
end);
end else begin
inherited;
end;
end;
关于delphi - Firemonkey TTabControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593960/
我有个问题。 我用这个简单的代码添加了一个按钮,但它没有编译任何解决方案? unit Unit1; interface uses System.SysUtils, System.Types, Syst
我正在寻找一种在一组选项卡之前实现某种插入标题的方法,如下所示: 选项卡集不应该是多行的,只能是水平的并布置在顶部。但是,当选项卡太多时,它应该可以正确滚动。 我担心我在使用第三方控件方面会受到限制,
我只想知道是否在TTabControl单击时,单击了当前选项卡以外的其他选项卡。想法是最受欢迎的。 附言请不要索要代码。我只是在征求意见。此外,在我的公司发布代码也是不受欢迎的。 (我以前的帖子是在
我有一个与我的 TTabControl 关联的弹出菜单。我希望能够选择该选项卡并通过单击右手按钮来调用下拉菜单。我记得的其他控件似乎有一个右键选择属性。 最佳答案 您可以使用 TPopupMenu 的
我在希伯来语环境中编程,因此我希望 TTabControl 顶部的选项卡从右到左显示。 BiDiMode 属性不会影响选项卡,而是影响控件中包含的文本。 我尝试过以下代码 SetWindowLong
我添加了一些TTabItem (s) 至 TTabControl在运行时。但我无法删除它们。 我用来创建项目的代码: tbi := TTabItem.Create(tbc); tbi.Parent :
我想知道为什么 Delphi (2007) 提供了三个看起来做同样事情的小部件,以及每个小部件的优点/缺点是什么。 在同一主题上,如果我想显示不同的控件集,为什么我应该偏爱例如。 PageContro
这在 Delphi XE8 中工作 这是一个示例项目 https://github.com/dangas56/DelphiDXSeattle-BrokenTabControl 当键盘在设备上弹出时,我
试图在标题中描述我的大部分问题,我基本上做到了。 基本上,我在 Lazarus 中使用 Indy 10 制作了自己的小型 TCP 服务器。它所做的只是接受字节形式的数据包,这些数据包包含代表英文字母的
我是一名优秀的程序员,十分优秀!