• 0
sviat9440

Как задать windowborderstyle

Вопрос

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

32 ответа на этот вопрос

  • 0

Достаточно посмотреть любой из примеров стилей.

Например:

post-115-0-22027300-1430348145.png

post-115-0-32091000-1430348155.png

Brovin Yaroslav понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Спасибо добрый человек! просто у меня в примерах стилей этого нету. два месяца мучался с этим.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Можешь скинуть любой из примеров стилей с использованием windowborderstyle?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Я, конечно, мог бы. Но некоторые из них идут вместе с самой Delphi.

 

c:\Program Files (x86)\Embarcadero\Studio\15.0\Redist\styles\

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Да, но у меня там нет стилей с использованием windowborderstyle. Там куча всего, но того что мне надо - нет. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Google в помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Я в гугле не нашел еще ни одного FMX стиля. Использую переделанные стандартные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 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
Brovin Yaroslav понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

У меня этого слоя в готовых стилях нету! :blink:  :wacko:

Изменено пользователем sviat

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

У меня этого слоя в готовых стилях нету! :blink:  :wacko:

У меня тоже)

Так я и написал "Делаете новый элемент стиля"

А "panelformministyle" - так это просто я так его обозвал

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

Вот я например сделал, а как сделать так, чтобы форма была такой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

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

 

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

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

 

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

Изменено пользователем AlexG

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

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

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

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

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

Brovin Yaroslav понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

 

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

 

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

 

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

 

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

Изменено пользователем AndreyS

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

И я так и напишу в инструкции к программе: "Двигать нужно медленно".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

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

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

 

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

 

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

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

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

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

 

все

AndreyS, sviat9440, Maximus и 1 другому понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу