Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Tabsheet по размерам Pagecontrol
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Компоненты
Jungle
Необходим такой трюк: ширина и высота закладок TabSheet должны равняться соответственно ширине и высоте родительского компонента PageControl. Если установить свойства

PageControl.Style:=tsButtons; {плоский PageControl}
TabSheet1.TabVisible:=False {отключаем видимость корешка закладки}

в этом случае всё ещё сохраняется минимальный зазор по периметру:

Silver Wind
Jungle
Т.е. тебе нужен компонент с закладками типа как в PageControl, но без ярлычков и чтобы закладки занимали всю область компонента?
Тогда посмотри на TNotebook (закладка Win 3.1). А в TPageControl, насколько я знаю от этого бордюра никак не избавиться через его свойства.
Jungle
Silver Wind,
На самом деле я использую рисованный интерфейс для своей программы, стараясь не применять стандартные компоненты VCL. Но без PageControl мне не обойтись. Вот окно моей программы:



На данный момент управляю видимостью панелей через BringToFront, на которых расположен Image с PNG-изображением (благодаря PNGComponents 1.0 RC3). Это извращенный способ, так как каждый раз при перерисовке Image изображение слегка мельтешит.

Можно еще рисовать на канве PageControl, но только если это Bitmap, а у меня PNG.
Silver Wind
Ну раз без PageControl не обойтись, то почему бы не заменить его на TNotebook? Функционал у них очень похож - это реализация закладок, разница лишь в том, что у TNotebook ярлычков закладок нет в принципе, но в данном случае они как раз и не нужны.

З.Ы. Кстати интерфейс красиво нарисован, мне понравилось.
Jungle
Silver Wind

Да, компонент Notebook – как раз то, что необходимо для решения задачи, однако есть некий скептицизм, что касается его использования.

Ну, во-первых, я столкнулся, казалось бы, с такой смешной ситуацией; переношу компоненты на закладки копированием в буфер: делаю активной вторую закладку, вставляю компоненты из буфера – размещение происходит на первой закладке. Вставляю компоненты из буфера на третью закладку – размещение происходит на четвертой. В общем, закономерность непонятная. Поправить ситуацию можно, если только переключиться на текстовый вид формы и вставлять нужные куски кода в нужных местах.

Во-вторых, я практически незнаком с компонентами windows 3.11, поэтому возник вопрос: как обратиться к компонентам, расположенным на закладках компонента Notebook из других модулей? К примеру, если компонент располагается на главной форме MainForm1, то из другого модуля к нему можно обратиться через with MainForm1 do.

ЗЫ: у меня есть и другое приложение с рисованным GUI, в котором используется PageControl. Однако здесь задача решилась моментально.

Silver Wind
Цитата(Jungle @ 5:08:2008 - 13:10) *
Ну, во-первых, я столкнулся, казалось бы, с такой смешной ситуацией; переношу компоненты на закладки копированием в буфер: делаю активной вторую закладку, вставляю компоненты из буфера – размещение происходит на первой закладке. Вставляю компоненты из буфера на третью закладку – размещение происходит на четвертой. В общем, закономерность непонятная. Поправить ситуацию можно, если только переключиться на текстовый вид формы и вставлять нужные куски кода в нужных местах.

Да, есть такой момент, сам сталкивался.

Цитата(Jungle @ 5:08:2008 - 13:10) *
как обратиться к компонентам, расположенным на закладках компонента Notebook из других модулей

Просто в виде MainForm.Button0, точно также как и в случае их размещения на PageControl.

Что же касается того момента, что этот компонент располагается на закладке Win 3.11, то так сложилось исторически, он появился в более ранних версиях и оставлен больше для совместимости. Думаю, на самом деле, не стоит боятся его использовать, к Win 3.11 он никакого отношения не имеет, ни на какие устаревшие API не завязан. Если его функциональность это как раз то что надо, то пускай остается.
Jungle
Silver Wind
Спасибо за помощь! Проблема, думаю, решена. Остановлюсь на компоненте Notebook.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.