Как получить значение из формы в сторону PageControl

Вот как я создаю свой PageControl.

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;

Вот как я создаю свою вкладку и форму на вкладке.

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;

У меня есть TCaption на каждой форме, которая создается. Когда пользователь меняет вкладку и нажимает кнопку, мне нужно знать текст, хранящийся в свойстве TCaption.caption в форме активной вкладки? Заранее спасибо

1 ответ

Не видя DFM для TFrmSubExchangeЭто всего лишь предположение, но вы можете попробовать что-то вроде этого:

procedure TFrmSub.SomeButtonClick(Sender: TObject);
var
  s: string;
begin
  s := (PageCtrlSub.ActivePage.Controls[0] as TFrmSubExchange).Caption1.Caption;
  ...
end;
Другие вопросы по тегам