У меня проблема с получением значения tabPage->Name
, потому что оно будет сгенерировано, когда пользователь нажмет кнопку, первый блок моего кода создаст новую вкладку внутри PageControl3
, а затем я использую условие static int tabNumber;
по if
для создания tabPage->Caption
, а затем я использую заголовок для tabPage->Name
динамически.
Мне нужно имя этой таблицы, чтобы передать ее в строке ошибок.
static int tabNumber;
if (tabNumber >= 1) ++tabNumber;
else tabNumber = 1;
PageControl3->Visible = true;
TTabSheet *tabPage = new TTabSheet(PageControl3);
tabPage->PageControl = PageControl3;
tabPage->Caption = UnicodeString("Untitled") + IntToStr(tabNumber);
tabPage->Name = UnicodeString("ts") + tabPage->Caption;
Вторая часть моего кода должна создать новый TPanel
внутри текущего tabpage->Name
, который был создан в приведенной выше части моего кода, НО это не сработает.
TPanel *panelPage = new TPanel(tabPage->Name); // Error Line
panelPage->Align = alClient;
panelPage->Name = UnicodeString("panel") + tabPage->Caption;
Ошибка массажа:
[bcc32 Error] mainUnit.cpp(50): E2285 Could not find a match for 'TPanel::TPanel(const UnicodeString)'
Итак, я не знаю, как получить доступ к значению tabPage->Name
, потому что оно было создано динамически?
TPanel *panelPage = new TPanel(tabPage);
Будет ли это работать для вас? Вам нужно сделать панель родительской tabPage? - person Baxter   schedule 08.01.2019panelPage->Parent = tapPage; panelPage->show();
и его работу; D - person Nazari   schedule 08.01.2019tabNumber
необходимо инициализировать, напримерstatic int tabNumber = 0;
, аif (tabNumber >= 1)
, вероятно, вместо этого должно бытьif (tabNumber < MaxInt)
. И вам действительно не нужноName
ваши динамические объекты вообще, если только вы не планируете использоватьTComponent::FindComponent()
для их поиска позже, но это не является хорошим дизайном кода. И вам не нужно вызыватьShow()
, когда вы также используетеVisible = true
(фактически это то, чтоShow()
делает внутри). - person Remy Lebeau   schedule 08.01.2019if (tabNumber < MaxInt)
не будет работать, и я планирую использовать объект дозы позже, я обновлю ответ с помощью вашего примечания. - person Nazari   schedule 09.01.2019