CBuilder TMenu отображается не в том месте

У меня есть форма, которую нужно встроить в другую форму. Я размещаю на TCard:

      EmbeddedForm->Parent = ACard;
EmbeddedForm->BorderStyle = bsNone;
EmbeddedForm->Align = alClient;
EmbeddedForm->Show();

Все работает хорошо, за исключением того, что меню на панели смещены туда, где они были бы, если бы форма располагалась в верхнем левом углу экрана. Чтобы было понятно, меню отображается в нужном месте на EmbeddedForm, но при нажатии подменю оказывается не в том месте.

Я пробовал изменить DrawItem событие, но пока я не могу назвать базовый класс DrawItem() как это protected:

      void __fastcall TEmbeddedForm::File1DrawItem(TObject *Sender, TCanvas *ACanvas, TRect &ARect, bool Selected)
{
    ARect.Left = MainMenu1.Left;  // or some other calculation, not important yet
    ARect.Top = MainMenu1.Top;

    // ??? how to do normal drawItem from here?
}

Думаю, либо самому нарисовать (не хочу), либо как-то объяснить TMainMenu где он находится на самом деле (предпочтительное решение).

0 ответов

Другие вопросы по тегам