• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Tabsheet по размерам Pagecontrol

  • Автор темы Автор темы Jungle
  • Дата начала Дата начала
J

Jungle

Необходим такой трюк: ширина и высота закладок TabSheet должны равняться соответственно ширине и высоте родительского компонента PageControl. Если установить свойства

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

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

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

link removed

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

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

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

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

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

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

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

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

как обратиться к компонентам, расположенным на закладках компонента Notebook из других модулей
Просто в виде MainForm.Button0, точно также как и в случае их размещения на PageControl.

Что же касается того момента, что этот компонент располагается на закладке Win 3.11, то так сложилось исторически, он появился в более ранних версиях и оставлен больше для совместимости. Думаю, на самом деле, не стоит боятся его использовать, к Win 3.11 он никакого отношения не имеет, ни на какие устаревшие API не завязан. Если его функциональность это как раз то что надо, то пускай остается.
 
Silver Wind
Спасибо за помощь! Проблема, думаю, решена. Остановлюсь на компоненте Notebook.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab