Delphi 如何从PageControl中的窗体获取值

Delphi 如何从PageControl中的窗体获取值,delphi,delphi-10.2-tokyo,Delphi,Delphi 10.2 Tokyo,下面是我如何创建我的页面控件 PageCtrlSub := TPageControl.Create(Self); PageCtrlSub.Parent := GroupSub; PageCtrlSub.Align := alClient; SubFormCnt := 0; TblOdSub.First; while not TblOdSub.Eof do begin SubPartNo := TblOdSub.FieldByName('sub_part_no').AsString;

下面是我如何创建我的页面控件

PageCtrlSub := TPageControl.Create(Self);
PageCtrlSub.Parent := GroupSub;
PageCtrlSub.Align := alClient;
SubFormCnt := 0;
TblOdSub.First;
while not TblOdSub.Eof do
  begin
    SubPartNo := TblOdSub.FieldByName('sub_part_no').AsString;
    AddNewSubTab(SubPartNo,Prc1Rs);
    TblOdSub.Next;
  end;
下面是我如何在TabSheet上创建我的TabSheet和表单

procedure TFrmSub.AddNewSubTab(PartNo : String; PrcRs : TPriceRec);
  var
    i : Integer;
  begin
    inc(SubFormCnt);
    TabSheet := TTabSheet.Create(PageCtrlSub);
    TabSheet.Caption := 'Sub '+ intToStr(SubFormCnt);
    TabSheet.PageControl := PageCtrlSub;
    Form := TFrmSubExchange.Create(Self);
    Form.Name := 'SForm' + IntToStr(SubFormCnt);
    Form.Parent := TabSheet;
    for i := 0 to Componentcount-1 do
      begin
        if (Components[i] is TFrmSubExchange) and (Components[i].Name = 'SForm' + IntToStr(SubFormCnt)) then
          TFrmSubExchange(Components[i]).DataChangedSub(PartNo, PrcRs);
      end;
    Form.Show;
end;
我在创建的每个表单上都有一个t选项。当用户更改选项卡并按下按钮时,我需要知道活动选项卡窗体上tcoption.caption属性中存储的文本?
提前感谢

没有看到
TFrmSubExchange
的DFM,这只是一个猜测,但您可以尝试以下方法:

procedure TFrmSub.SomeButtonClick(Sender: TObject);
var
  s: string;
begin
  s := (PageCtrlSub.ActivePage.Controls[0] as TFrmSubExchange).Caption1.Caption;
  ...
end;

这就是我需要的,非常感谢