프로젝트와 관련하여 도움이 필요합니다. firemonkey의 페이지 컨트롤에 여러 개의 TabItems을 실행하는 루틴이 있으며 탭에 닫기 버튼이 있어야합니다. 새 탭에는 탭 항목의 스타일러에서 닫기 버튼을로드하기위한 체크 박스가 있습니다. 페이지에 기본 탭이 있으며 일부 버튼에는 새 탭 항목이 런타임에 추가됩니다. 기본 탭 페이지를 닫을 때 이벤트를 적용 할 수는 있지만 런타임에 생성 된 탭 페이지에서는 작동하지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 런타임 TTabItem 만들기, firemonkey
이
런타임 tabitemsprocedure TForm1.Button1Click(Sender: TObject);
var
t : TTabItem;
o : TFmxObject;
i : Integer;
c : TControl;
begin
t := TTabItem.Create(pgeControl);
t.Parent := pgeControl;
o := FindBinding('imgCloseTabPage');
if o<>nil then
begin
for i := 0 to ComponentCount - 1 do
begin
if Components[i] is TCheckBox then
begin
TCheckBox(Components[i]).OnClick := CheckBox1Click;
end;
end;
end;
if pgeControl.TabCount - 1 <= nTab then
begin
nTab := nTab + 1;
t.Index := nTab
end
else
begin
t.Index := pgeControl.TabCount - 1;
nTab := pgeControl.TabCount - 1;
end;
t.Tag := nTab;
t.Text := 'Some text...' + ' ' + IntToStr(nTab);
t.Name := 'tabPatient' + IntToStr(nTab);
t.Height := 35;
t.Width := 250;
t.Margins.Top := 0;
t.Margins.Left := 0;
t.Margins.Bottom := 0;
t.Margins.Right := 0;
t.Padding.Top := -5;
t.Padding.Left := 0;
t.Padding.Bottom := 0;
t.Padding.Right := 0;
t.TextAlign := TTextAlign.taLeading;
t.Width := (Length(t.Text) * 6) + 60;
t.Font.Size := 15;
t.StyleLookup := 'tabMainStyle1';
l := TLayout.Create(t);
l.Parent := t;
l.Align := TAlignLayout.alClient;
l.Margins.Top := -5;
l.Margins.Left := 5;
l.Margins.Right := 5;
l.Margins.Bottom := 5;
l.Padding.Top := 0;
l.Padding.Left := 0;
l.Padding.Bottom := 0;
l.Padding.Right := 0;
pgeControl.ActiveTab := pgeControl.Tabs[pgeControl.TabCount - 1];
end;
새로운 탭마다 새로운 체크 박스를 만드시겠습니까? – Peacelyk
아니요, 저는 새로운 탭 항목마다 체크 상자를 만들지 않습니다. 스타일러에서 마녀는 탭 항목을 런타임에 생성 할 때로드합니다. – ManosM