Как выбрать закрепленную форму VCL в C ++ Builder - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть приложение VCL Forms в C ++ Builder.У меня основная форма с четырьмя стыковками TPageControl.Программа представляет собой программу для рисования графики, которая может открывать изображения в их собственной форме VCL, которую можно закрепить на TPageControl для одновременного просмотра.Когда форма VCL пристыкована, выбор ее с помощью мыши делает основную основную форму ActiveForm.

Как выбрать закрепленную форму VCL и сделать ее ActiveForm?Мне нужно знать, какая закрепленная форма VCL выбрана, чтобы я мог управлять правильным изображением.

Для тестирования я использую цикл ниже, чтобы отобразить все имена форм VCL в TListBox и показать имя ActiveForm в TEdit.Этот код находится в событии кнопки в главной форме.Я могу выбрать свободно плавающую форму VCL и сделать ее ActiveForm, но не закрепленной формой VCL.

void __fastcall TMainForm1::Button3Click(TObject *Sender)
{
  ListBox1->Items->Clear();
  Edit1->Text="";
  UnicodeString n="";

  int C = Screen->FormCount;
  for( int i = 0; i < C; ++i )
  {
    TForm* form = Screen->Forms[i];
    n = form->Name;
    ListBox1->Items->Add(form->Name); //List all Form Names

    if( Screen->ActiveForm == form ){
      Edit1->Text = form->Name;  //Active Form Name
    }
  }
}
...