2013-06-16 3 views
0

Я хочу сделать приложение базы данных Windows с помощью C++ builder. Идея состоит в том, чтобы иметь статическое меню из 6 значков вверху (мне нужно, чтобы это было постоянным на каждом экране), в то время как на остальной части экрана будут размещены все пользовательские взаимодействия и данные, относящиеся к выбранному пункту меню. У меня есть опыт работы с SDI-приложениями, и насколько я знаю, все приложение не может быть в одном экране/форме. Должен ли я строить это как приложение MDI или есть ли другой способ сохранить фиксированное меню на основе значков, а остальные данные экрана для каждого пункта меню? Я не хочу находиться в одном окне без перекрывающихся форм, пока пользователь переходит через приложение.C++ builder MDI/SDI или другой подход?

ответ

0

Хотя приложение MDI, безусловно, возможно, взаимодействие между различными формами иногда немного громоздко. Страница с вкладками легче обрабатывать, поскольку все они находятся в одном классе TForm. Если вы хотите изменить внешний вид отдельных вкладок, вы можете перегрузить «PageControlDrawTab». Просто добавьте обработчик событий, получите дескриптор Canvas самой вкладки, и вы можете рисовать так, как хотите. См. Пример ниже:

void __fastcall TMainForm::PageControlDrawTab(TCustomTabControl *Control, 
     int TabIndex, const TRect &Rect, bool Active) 
{ 
/* OnDraw handler to change the appearance of the Tabs. 
Change it to blue text on white background. 
*/ 

    String s; 
    TRect r; 
    TTabControl * tTab = (TTabControl *)Control; // Get a pointer to the tab itself 
    s = tTab->Tabs->Strings[TabIndex];   // Retrieve the text of this tab 
    Control->Canvas->Brush->Color = clWhite;  // Use the Canvas to draw 
    Control->Canvas->Font->Color = clBlue;  // .. whatever you like 
    Control->Canvas->FillRect(Rect); 
    Control->Canvas->TextRect(Rect,Rect.Left+4,Rect.Top+2,s); 

} 
0

Возможно, вам придется сделать это в формате MDI. Я не знаю, как разделить меню через формы. Другим вариантом, который вы могли бы использовать, является использование элемента управления страницей и включение всех других «форм» в вкладку, чтобы меню было одинаковым все время. Элементы меню могут реагировать по-разному, если вы хотите, чтобы они были, когда пользователь находится на другой вкладке, или они могут делать то же самое независимо от того, на какой вкладке вы находитесь. Извините, это форма ответа, у меня пока нет комментариев.

+0

Вкладки - это опция. Я не знаю, могу ли я иметь образы вместо простого текста в заголовках таблеток, но я проверю его. – apo

Смежные вопросы