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