Hoi
Ik ben al een tijdje aan het stoeien met hoe ik zaken kan aanpassen op forms welke geladen worden in een PageControl.
Het lukt me wel één Form aan te passen, maar niet alle forms.
Ik zie niet waarom het mis gaat.
Code:
procedure TfrmMain.btnAddClick(Sender: TObject);
var
lFrmTabsheet : TFrmTabsheet;
lTabSheet : TTabSheet;
begin
lTabSheet := TTabSheet.Create(PageControl);
lTabSheet.PageControl := PageControl;
lTabSheet.Name := 'Tabsheet' + FPageCounter.ToString;
lTabSheet.Caption := 'Tabsheet' + FPageCounter.ToString;
lFrmTabsheet := TFrmTabsheet.Create(lTabSheet);
lFrmTabsheet.BorderStyle := bsNone;
lFrmTabsheet.Parent := lTabSheet;
lFrmTabsheet.Align := alClient;
lFrmTabsheet.Tag := FPageCounter;
lFrmTabsheet.Show;
PageControl.ActivePage := lTabSheet;
UpdateLabel;
inc(FPageCounter);
end;
procedure TfrmMain.btnDelClick(Sender: TObject);
begin
if PageControl.PageCount > 0 then
PageControl.ActivePage.Free;
end;
procedure TfrmMain.UpdateLabel;
begin
Label1.Caption := 'Active Page Idx: ' + PageControl.ActivePageIndex.ToString;
end;
// https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.ComCtrls.TPageControl_Properties
procedure TfrmMain.UpdatePage(aPageIndex: integer);
var
I : integer;
J : integer;
// TFORM (FrmMain) -> TPageControl (PageControl) -> TTabsheet (Tabsheetx) -> TForm (FrmTabsheet) -> TEdit (edtFrmTabsheet)
begin
for I := 0 to ComponentCount -1 do
if Components[I] is TPageControl then
if TPageControl(Components[I]).PageCount > 0 then
if TTabsheet(TPageControl(Components[I]).Pages[aPageIndex]).ControlCount > 0 then
for J := 0 to TTabsheet(TPageControl(Components[I]).Pages[aPageIndex]).ControlCount - 1 do
if TPageControl(Components[I]).ActivePage.Controls[J] is TForm then
TFrmTabsheet(TPageControl(Components[I]).ActivePage.Controls[J]).edtFrmTabsheet.Text := Edit1.Text;
end;
procedure TfrmMain.btnCurPageEditClick(Sender: TObject);
begin
UpdatePage (PageControl.ActivePageIndex);
end;
procedure TfrmMain.btnAllPageEditClick(Sender: TObject);
var
I : integer;
begin
if PageControl.PageCount > 0 then
for I := 0 to PageControl.PageCount - 1 do
UpdatePage (I);
end;
Tevens een zipje toegevoegd.
pgControl.zip
Alvast bedankt,
Herby
Bookmarks