Перейти к содержанию
Fire Monkey от А до Я
  • 0

Как задать windowborderstyle


sviat9440

Вопрос

Добрый день, у меня вопрос к участникам форума: Как правильно задать windowborderstyle.

Например если мы стилизуем кнопку, то в TStyleBook мы добавляем компонент TLayout м названием buttonstyle, и бросаем в него елементы TRectangle и TText, для фона и текста (caption) кнопки. А вот как правильно сделать windowborderstyle?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Открываешь Bitmap Style Designer. Открываешь в нем любой доступный стиль из стандартной поставки (Файл с расширением vsf). Открываешь Objects - Form. Вот тебе полная компоновка стилизованной формы.

 

У меня по этой теме немного другой вопрос. Можно ли у формы со стилизованным бордером отобразить тень? Или хотя бы пиксели с различной прозрачностью?

Как минимум для Windows.

Ссылка на комментарий
  • 0

[sviat] - дать то можно что угодно. но в данном случае мы рискуем нарваться не негодование владельцев форума... так как все это лицензировано.

(по секрету скажу - на трекерах не пробовали искать?....))

 

[AndreyS] - можно. легко! Тема уже поднималась на форуме (ща попробую найти)

 

Не нашел (просто не помню). Может из-за того, что вопрос был не по теме (кстати!)

Но решение такое:

Делаете новый элемент стиля

post-115-0-01983500-1430400724.pngpost-115-0-50485600-1430400732.png

 

Дальше делаете свою форму без рамок и прозрачной. Размещаете на ней любой элемент (например TPanel) с выравниваем, например, Contents. И задаете этой панеле новый стиль.

Где элемент Image это

post-115-0-75153000-1430401016.png

а его свойства, типа:

post-115-0-81586300-1430401129_thumb.png

 

Все. Только "поиграйтесь" со значениями BitmapMargins (у меня тени другие)

Изменено пользователем AlexG
Ссылка на комментарий
  • 0

"Дальше делаете свою форму без рамок и прозрачной. Размещаете на ней любой элемент (например TPanel) с выравниваем, например, Contents. И задаете этой панеле новый стиль."

Ваша форма будет выглядеть как панель со стилем panelformministyle

 

А-ля типа так:

post-115-0-35047400-1430402320_thumb.jpg

 

З.Ы. Надеюсь меня не забанят... потому названий не даю)

Изменено пользователем AlexG
Ссылка на комментарий
  • 0

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

Молодой человек...

Вы меня удивляете)

Больше читайте. Посетите блог Андрея Ефимова. Да и здесь информации море.

Не думаете же Вы что здесь в одном вопросе Вам напишут сразу все... Да и элементарные в общем то вещи...

Ссылка на комментарий
  • 0

Для кого то элементарные, перерыл пол гугла - ничего не нашел. Устал, зашел на форум, написал. Может кто знает и поможет. Мне главное не вид стилизованного бордюра, а сам стилизованный бордюр. Потому что TWebBrowser не пашет если отключен бордюр или включена функция FullScreen. И потому что нужно чтобы форма могла перемещаться по екрану, и меняться в размерах. Если на эти мои сверхневозможные вопросы нет ответа извините.

Ссылка на комментарий
  • 0

[AlexG] - Спасибо. Такой способ я пробовал как-то реализовывать. Получается, конечно, красиво, но есть парочка "но":

 

Во-первых, придется самому реализовывать поведение системных кнопок и ресайза (но это пол-беды)

 

Хуже обстоит дело с перемещением формы. Можно отлавиливать MouseDown и MouseMove на области заголовка формы и гонять форму по экрану за движением мыши. Но так работает, если мышь движется медленно. А если мышь успеет перескочить за пределы заголовка, то форма остается на месте. Так что двигать можно только мееееедленно.

 

Поэтому, когда я спрашивал про тень, я имел в виду как-то это провернуть через Bitmap Style Designer, например через свойство Mask у объекта формы.

 

Хотя добавление прозрачности в область изображения, на которое опирается Mask не срабатывает

Изменено пользователем AndreyS
Ссылка на комментарий
  • 0

Ответы есть, конечно.

Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.

 

По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.

 

Что касается перемещения формы за любой элемент:

- во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True

- во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag

- и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip

 

все

Ссылка на комментарий
  • 0

Ув. участники, я не кого не заставляю сиюминутно отвечать на мои вопросы.Я понимаю что у вас может не быть времени. и не требую моментального ответа. Если у вас сложилось такое впечатление - ИЗВИНИТЕ :mellow:

Ссылка на комментарий
  • 0

Да все решается. Есть конечно грабли. Но я не стал бы и писать, если бы не работало.

И мышкой можно очень быстро дивигать форму (и пальцем, если на планшете), и размеры формы можно ограничить, и ничего не мерцает и не глючит..

 

[sviat] - ничего страшного. все ок

Изменено пользователем AlexG
Ссылка на комментарий
  • 0

Ответы есть, конечно.

Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.

 

По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.

 

Что касается перемещения формы за любой элемент:

- во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True

- во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag

- и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip

 

все

Спасибо, проверил работает! Мне не хватало этой функции. :rolleyes:  :)

Изменено пользователем sviat
Ссылка на комментарий
  • 0

 

Ответы есть, конечно.

Но Вам нужно их задавать отдельно. Внимательно читать, и, главное, с уважением относиться ко всем участникам. У большинства из нас просто нет времени, и стараемся отвечать кратко, только когда есть свободная минутка и знаем ответ.

 

По поводу TWebBrowser - дождитесь ответа. Я, к сожалению, не могу ничего сказать, не пробовал.

 

Что касается перемещения формы за любой элемент:

- во-первых элемент, за который будете перемещать, должен иметь свойство HitTest = True

- во вторых, в обработчике события этого элемента OnMouseDown ставьте StartWindowDrag

- и в-третьих, чтобы менять размер формы, при этом не имея рамок и имея вид как был описан выше - разместите на форме элемент TSizeGrip

 

все

Спасибо, проверил работает! Мне не хватало этой функции. :rolleyes:  :)

 

Ну вот и замечательно! Искренне рад, что смог чем-то помочь.

Ссылка на комментарий
  • 0

Но я не стал бы и писать, если бы не работало.

Я не сомневаюсь что у вас оно работает, я просто говорю что у меня не получается и не работает потому что гдето чтото я не правильно написал)) :rolleyes:

Изменено пользователем sviat
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...