질문이 있습니다.Firemonkey TTabControl
이 간단한 코드로 버튼을 추가했지만 모든 솔루션을 컴파일하지 못합니까?
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'코드이 수정으로
Delphi can Fire monkey TTabControl replicate VCL TPageControl.OnChanging event
아마도 Unit1에 TTabItem 클래스 선언이 중복되어있을 수 있습니다 ... – dustypup
답변 해 주셔서 감사합니다. 어떤 부분이 잘못되었는지 이해할 수 없습니다. 감사합니다. –
'Unit1.TTabItem'선언이 어떻게 생겼습니까? 일반적으로 문제에 대한 충분한 맥락을 보여 주어야합니다. 문맥이없는 4 줄은 대개 시간 낭비입니다. –