Jak wywołać (aktywować?) formularz zadokowany na zagnieżdżonej zakładce?

0

(Wywołać = spowodować aby był widoczny na pierwszym planie)

Mam w programie kilka formularzy zadokowanych na zagnieżdżonych zakładkach.
formularze sa umieszczane na zakładkach dynamicznie, więc nie wiem gdzie która będzie.
W efekcie otrzymam coś w tym stylu:

FormularzGlowny
  PageControl_I
    tabsheet1
      Form1
    tabsheet2
      Form2
    tabsheet3
      PageControl_II
        tabsheetA
          formA
        tabsheetB
          formB

Chciałbym mieć możliwość wyciągnięcia na wierzch wskazanego formularza (mam dostęp do obiektu).
Napisałem procedurę, która po rodzicach przechodzi do góry wyciągając po kolei każdą kontrolkę na wierzch.

 
procedure ShowControl(aWCntrl: TWinControl);
begin
  if assigned(aWCntrl.parent) then begin
    if (aWCntrl is TTabSheet) and (aWCntrl.Parent is TPageControl) then
      TPageControl(aWCntrl.Parent).ActivePage := TTabSheet(aWCntrl);
    ShowControl(aWCntrl.Parent);
  end else begin
    aWCntrl.Show;
  end;
end;

Pytanie do Was: czy jest jakaś prostsza metoda, bardziej uniwersalna, a może nawet jest jakiś mechanizm do tego, wbudowany w VCL?

0

nie spotkałem się z niczym wbudowanym/uniwersalnym. BTW z czym Ci się to nie podoba :)

0

Wątpię czy o to Ci chodzi, ale może wystarczy form1.BringToFront i form1.SendToBack?

0

@Tomek_Laz - ale jak? Zakładkę? Jeśli już coś to ustawianie ActivePage lub ActivePageIndex - innego sposobu także nie znam.

0

No jak na razie rozwiązanie się sprawdza.
Obawiam się tylko jakichś nieprzewidzianych komponentów grupujących
(ale jak na razie nie widzę takowych)

1 użytkowników online, w tym zalogowanych: 0, gości: 1