• 0
sviat9440

Как задать windowborderstyle

Вопросы

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

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

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


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

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

  • 0

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

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


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

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

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


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

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

 

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

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


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

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

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


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

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


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

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

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

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


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

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

У меня тоже)

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

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

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


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

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

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


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

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

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

 

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

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

 

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

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

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


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

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

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


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

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

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

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

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

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

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


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

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

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


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

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

 

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

 

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

 

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

 

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

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

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


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

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

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


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

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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