Faq прозрачная форма

Содержание
Илон Маск рекомендует:  Программирование на основе win32 api в delphi

Прозрачная форма с заголовком и рамками, Windows

Вопрос

Alex7wrt 179

Alex7wrt 179

  • Продвинутый пользователь
  • Пользователи
  • 179
  • 508 сообщений

Интересует, как можно сделать фон формы прозрачным так, чтобы у нее остались видны заголовок и рамки. Если выставить свойство Transparancy в True, то заголовок и рамки исчезают. То же самое происходит если выставить цвет заливки прозрачным.

Изменено 29 февраля, 2020 пользователем Alex7wrt

Faq прозрачная форма

А в Sapmles\Solution зайти вломы ?
Irrugalar Shaped window (irregular.scx) в What’s new in vfp8
ну и fadeaway.scx из папки Sedona

АГа — ЩАЗ Msdn — на ночь читайте

И не надо нас красными рожами пугать — мы самие такие

Re: Прозрачная форма
s66
Автор

Сообщений: 689
Откуда: Владивосток

Дата: 01.10.07 14:20:40
Re: Прозрачная форма
s66
Автор

Сообщений: 689
Откуда: Владивосток

Дата: 01.10.07 14:54:38
Re: Прозрачная форма
piva

Сообщений: 18541
Откуда: Курган

Дата: 01.10.07 14:57:06

Вопрос не в 6-ке, вопрос в винде, под 9х хоть умучийся, все равно не получится Под 6-кой только одна проблема — выковырнуть hwnd окна, а остальное это чистый WinAPI

ЗЫ — SetLayeredWindowAttributes
Minimum operating systems Windows 2000

Re: Прозрачная форма
pasha_usue

Сообщений: 3276
Откуда: Е-бург

Дата: 02.10.07 07:32:13
Re: Прозрачная форма
MichaelD

Сообщений: 7578

Дата: 02.10.07 07:47:32
Re: Прозрачная форма
pasha_usue

Сообщений: 3276
Откуда: Е-бург

Дата: 02.10.07 07:54:02
Re: Прозрачная форма
MichaelD

Сообщений: 7578

Дата: 02.10.07 09:39:01

Ops. извиняюсь. почему-то не глядя на код был уверен, что там вот этот код (взятый когда-то в fido-шной конфе. ):

Подвалов Андрей
О круглых формах кому интересно

DECLARE INTEGER SetWindowRgn IN win32api INTEGER,INTEGER,INTEGER
DECLARE INTEGER CreateEllipticRgn IN win32api
INTEGER,INTEGER,INTEGER,INTEGER
DECLARE INTEGER GetActiveWindow IN win32api
DECLARE INTEGER GetWindow IN win32api INTEGER,INTEGER

hndw=GetTopWindow(GetWindow(GetWindow(GetActiveWindow(),5),1)) &&определение
хендола текущего окна

hndr=CreateEllipticRgn(3,22,ThisForm.Width-3,ThisForm.Height-3) &&создание
элепсойдного или круглого региона в зависимости от формы (прямоугольного
или квадратная соответственно)

=SetWindowRgn(hndw,hndr,1) &&присвоение региона форме

С наилучшими пожеланиями Подвалов Андрей!

Исправлено: MichaelD, 02.10.07 09:47

Re: Прозрачная форма
piva

Сообщений: 18541
Откуда: Курган

Дата: 02.10.07 09:46:22

Эта скока букв — вместо использования 3 API функций

Re: Прозрачная форма
MichaelD

Сообщений: 7578

Дата: 02.10.07 10:04:28

— судя по коду, вроде как приведён репро-код.
— а судя по моему результату.

[attachment 5193 errcrgn.JPG]

. э в лучшем случае — пища для размышлений.

2) Хм. а я тоже хорош. перепутал округлость с прозрачностью.

Re: Прозрачная форма
Kapa

Сообщений: 247

Дата: 02.10.07 11:08:35
Re: Прозрачная форма
pasha_usue

Сообщений: 3276
Откуда: Е-бург

Дата: 02.10.07 14:16:41
Re: Прозрачная форма
MichaelD

Сообщений: 7578

Дата: 02.10.07 17:15:40

Да не. это я видимо не стой ноги встал. . не увидел кода вызова:

. и замутил «свой вызов». э и ес-но «без предварительных деклараций». Прошу пардона.
На самом деле, у меня тоже в том виде как был приведён — отработал.

Faq прозрачная форма

Доброго времени суток!

Столкнулся с необходимостью сделать полупрозрачную форму с непрозрачными контролами на ней. В частности интересует вывод текста на полупрозрачную форму.

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

Есть возможность изменять прозрачность при помощи Form.Opacity — но в этом случае все размещенные контролы также следуют установленному значению. Пробовал рисовать на форме — ну как и ожидалось — результат тот же, что и c размещенными контролами.

Нарыл в инете вариант с:

Form.BackColor = Color.White;
Form.TransparencyKey = Color.White;

public > <
protected overr > <
if (e != null) <
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
e.Graphics.DrawString(Text, Font, new SolidBrush(ForeColor), ClientRectangle);
>
else
base.OnPaint(e);
>

Но решение не совсем хорошее, т.к. форма становится полностью прозрачной.

В общем я в тупике. пните меня в нужное русло/направление для поиска в моей тупиковой ситуации.

PS: Можно ли делать градиентную прозрачность формы, например, используя в качестве шаблона картинку PNG?

CSS прозрачность – просто о важном

О том, что такое CSS, знают практически все, кто тем или иным образом причастен к созданию сайтов. Термин « CSS прозрачность » (или css opacity ) тоже на слуху. Чаще всего эта методика используется для решения дизайнерских задач (посредством верстки), улучшения юзабилити ресурса.

Что можно сделать при помощи данной технологии?

Используя прозрачность CSS, можно варьировать степень прозрачности как страницы в целом, так и отдельных ее частей:

  • Шапка сайта может быть полупрозрачной, а логотип на ней – совершенно непрозрачным;
  • Прозрачными могут быть боковые поля, подвал и т.д.;
  • Часто с помощью изменения степени прозрачности достигается эффект плавной смены изображений:
  • Прозрачными и полупрозрачными могут быть всплывающие блоки, формы авторизации, фото галереи и другие элементы сайта.
  • Как задается прозрачность CSS: формальности

    За техническую сторону создания этого эффекта отвечает CSS свойство opacity (примечательно, что в переводе на русский язык это слово и означает « прозрачность »).

    Данное свойство характеризуется следующими признаками:

    • значение задается в цифровом выражении (от 0 до 10; чем больше число – тем меньшей будет прозрачность объекта);
    • применяется ко всем элементам, имеющимся на странице (то есть можно задать при помощи CSS прозрачность блока или текста);
    • не наследуется.

    Планируя использовать этот эффект, надо знать, как он поддерживается в разных браузерах:

    Техническая сторона вопроса: задаем прозрачность фона

    Одним из самых важных в верстке (и поэтому распространенных) является вопрос о том, как задать прозрачность фона в CSS. Ничего сложного здесь нет.

    Код элемента, с которым ведется работа, должен выглядеть следующим образом (в скобках указаны варианты, которые срабатывают в разных браузерах):

    При этом надо помнить, что заданная элементу прозрачность впоследствии наследуется дочерними элементами. То есть, если внутри фона есть картинка, текст или что-то еще – оно автоматически изменит степень прозрачности. Это не всегда допустимо.

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

    Видоизменяем код на такой:

    Задача решена. Такой метод можно использовать в тех случаях, когда нужно сделать непрозрачными те элементы, которые находятся внутри кода.

    Техническая сторона вопроса: задаем прозрачность блока

    Если прозрачность фона уже задана, то прозрачность блока, расположенного внутри него, в CSS задается автоматически. Об этом говорилось выше.

    Если же нужно, чтобы дочерний блок не наследовал прозрачность родительского – все обстоит сложнее! Решить данный вопрос можно следующим образом:

    Сущность данного метода состоит в том, что блок, который надо сделать непрозрачным, не является на самом деле дочерним. Поэтому его прозрачность будет независимой величиной.

    Дополнение

    Еще один важный вопрос прозрачность background в CSS. Иными словами, это создание полупрозрачного цветного фона. Его можно задать следующим образом:

    Таким образом, в работе с прозрачностью в CSS все достаточно просто и логично.

    Надеемся, что данная статья оказалась для Вас действительно полезной.

    С# — Прозрачная форма

    В настоящее время у меня есть Форма со всеми желаемыми эффектами, кроме одного. Текущая форма состоит из майнипа в верхней части с панелью под ней, которая содержит метки и графические ящики. Когда форма запускается, menustrip не отображается, он становится видимым только тогда, когда пользователь нажимает кнопку «Alt» и исчезает тем же способом.

    На панели будет фоновое изображение с прозрачным фоном (.PNG). Это изображение станет основным макетом формы, так как я установил borderstyle равным ни одному. Теперь проблема в том, что форма по-прежнему имеет белый/сероватый фон под панелью.

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

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

    В форме задайте следующие свойства:

    Это сделает форму прозрачной. Затем установите backgroundimage:

    Также будут прозрачными части изображения, также Color.Lime .

    Если вы также хотите избавиться от границ Forms , добавьте также эту строку:

    Будьте осторожны, когда вы выберете backcolor. Выделите Backcolor, чтобы отличаться от вашего текста, изображений и любого цвета управления, что означает, выбрать цвет, который вы никогда не собираетесь использовать в своей форме, и я думаю, что Fuchsia/lime будет лучшим выбором. Для выбора кода заднего плана ниже:

    а затем Сделайте этот цвет прозрачным с помощью этих кодов:

    Прозрачность в Delphi

    Свойство формы TransparentColor := true;
    TransparentColorValue:=ClGreen;

    все что будет зеленое будет прозрачным.

    2-ой вопрос да можно.
    выполняем пункт 1. цвет формы ставим green кидаем панель и растягиваем на половину.

    Black Raider
    Посмотреть профиль
    Отправить персональное сообщение для Black Raider
    Найти все сообщения от Black Raider
    Да можно.

    Свойство формы TransparentColor := true;
    TransparentColorValue:=ClGreen;

    все что будет зеленое будет прозрачным.

    Это чото нето! форма ссловно «дырявая» получается, а мне нужно именно прозрачная, ктому же комп как то напрягается, да еще и к правому краю монитора «прилипает». А можно ли ето реализовать спомощью свойства AlphaBlendValue?

    Практическое руководство. Установка степени прозрачности фона элемента управления How to: Give Your Control a Transparent Background

    В предыдущих версиях платформы .NET Framework элементы управления не поддерживали задание прозрачных цветов фона, если предварительно не был установлен метод SetStyle в конструкторе форм. In earlier versions of the .NET Framework, controls didn’t support setting transparent backcolors without first setting the SetStyle method in the forms’s constructor. В текущей версии платформы для большинства элементов управления можно задать цвет фона Transparent в окне Свойства во время разработки или в коде в конструкторе форм. In the current framework version, the backcolor for most controls can be set to Transparent in the Properties window at design time, or in code in the form’s constructor.

    Элементы управления Windows Forms не поддерживают настоящую прозрачность. Windows Forms controls do not support true transparency. Фон прозрачного элемента управления Windows Forms закрашивается его родительским элементом. The background of a transparent Windows Forms control is painted by its parent.

    Элемент управления Button не поддерживает прозрачный цвет фона, даже если свойство BackColor имеет значение Transparent. The Button control doesn’t support a transparent backcolor even when the BackColor property is set to Transparent.

    Правильная прозрачность

    Однажды мне понадобилось сделать прозрачные боковые поля для одного дизайна. Я решил использовать прозрачность CSS.

    Но каково было узнать, что все элементы внутри прозрачного блока тоже становятся прозрачны и это никак не изменить :-(, тогда мне пришлось использовать прозрачный png.

    Недавно я наткнулся на замечательную технику, позволяющую устранить эту проблему, ею я и хочу с вами любезно поделиться.

    Техника заключается в подложке прозрачного блока в основной блок, который вы хотите сделать прозрачным.

    Вот так выглядит наш блок:

    h1 > Привет, я прозрачный блок h1 >

    Текст внутри блока. Текст внутри блока. Текст внутри блока.

    Теперь добавим прозрачную подложку:

    div class =«transparency» >

    div >

    div class =«content» >
    h1 > Привет, я прозрачный блок h1 >
    Текст внутри блока. Текст внутри блока. Текст внутри блока.
    div >
    div >

    Теперь перейдем к оформлению css:

    #container <
    padding:20px;
    width:300px;
    color:#FFFFFF;
    position:relative;
    float:left;
    margin-left:20px;
    overflow:hidden;
    >

    #container .transparency <
    opacity:0.5;
    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    background-color:#000000;
    width:340px;
    height:1500px;
    position:absolute;
    top:0px;
    left:0px;
    z-index:-1;
    >

    Готово! Теперь все элементы внутри блока не изменят свою прозрачность. Для полного счастья, я решил написать небольшой скрипт на jQuery, который всё автоматизирует.

    Вам будет достаточно лишь добавить класс transp к вашему блоку:

    h1 > Привет, я прозрачный блок h1 >

    Текст внутри блока. Текст внутри блока. Текст внутри блока.

    И конечно, сам jQuery код:

    На мастера jQuery я, конечно, не претендую, но это работает!

    Читают сейчас

    Похожие публикации

    • 15 сентября 2020 в 22:39

    Насколько хорошо вы знаете CSS? (+ мини-тест)

    Переполнение и потеря данных в CSS

    Инструмент для сравнения CSS фреймворков

    Заказы

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Комментарии 56

    Прошу прощения, но вы кажется что-то перемудрили. Вот так тоже работает неплохо :)

    .trans
    <
    opacity:0.5;
    filter:alpha(opacity=50);
    -moz-opacity:0.5;
    background-color:#000000;
    width:100%;
    height:100%;
    position:absolute;
    margin:-20px;
    >

    .container
    <
    position:relative;
    width:200px;
    padding:20px;
    border:1px solid red;
    >

    Рамка красная для наглядности ;)

    Проще надо быть:

    При условии, что внутри у вас всё будет в тэгах(скажем нет голому тексту).

    внутри непофикшенной прозрачности.
    Получается, что потомки наследуют уровень прозрачности и если им выставить opacity: 0.5 при том, что у парента уже стоит 0.5, реальная opacity у них будет 0.25. Хотя computed style показывает все равно ту, которая установлена для

    , т.е. 0.5.

    Очередной гениальный веб-девелопер, и поклонник jQuery.

    Давайте рассмотрим такую ситуацию:
    Высота блоков не фиксированная, а JS отключен(даже если это опустить, неприятно смотреть на любые прыжки после загрузки страницы).

    В данном случае нет «правильного» решения, в этом главная ошибка статьи. На мой взгляд, правильное решение — дублировать блок с текстом, и использовать копию как блок с прозрачностью, таким образом он сразу будет иметь нужную высоту, но это ппц с точки зрения семантики, а так же возрастает вес страницы. К тому же, при отключении JS фильтры ИЕ не работают. А использовать jQuery для столь элементарной задачи, и писать об этом статью — это моветон.

    Если JS отключен блок просто не будет прозрачен.

    Зачем это занудство: «Что же будет если отключить javascript? Что же будет если отключить браузер?»

    Я лишь описал как решить возникшую проблему, которую не только я встретил на своем пути.

    Форма обратной связи в прозрачном окне

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

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

    Все просто, так как обратная связь связывать веб мастера с пользователями. Где некоторые делают ее под разнообразные запросы, которые носят разнообразный характер подачи заявление.

    Нужно изначально понимать, что связь не только даст вам представление о том, какие возможные неполадки или проблемы, которые могут возникнуть у ваших посетителей или гостей, если для них она доступна, но и наоборот это какой функционал отлично работает.

    Так выглядит на отдельной странице:

    Приступаем к установке:

    body <
    background: url(‘Ссылка для фона’) no-repeat top center;
    background-size: cover;
    height: 100vh;
    >

    .sapackages-gulopan <
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    padding: 0 20px;
    >

    .genstasel-nackages <
    display: flex;
    max-width: 618px;
    margin: 0 auto;
    background: rgba(12, 12, 12, 0.84);
    padding: 27px;
    border-radius: 3px;
    box-shadow: 0 0 8px rgba(19, 18, 18, 0.3);
    >

    .vitumike-abovesad <
    display: flex;
    flex-direction: column;
    margin-right: 4%;
    >

    .vitumike-abovesad,
    .kedetaqen <
    width: 48%;
    >

    .vitumike-abovesad .bkackeogun, .kedetaqen textarea <
    margin: 8px 0;
    background: rgba(10, 10, 10, 0);
    border: 0px;
    border-bottom: 2px solid #a5d1ea;
    padding: 8px;
    color: #81e9f5;
    width: 100%;
    >

    .kedetaqen textarea <
    height: 212px;
    >

    ::-webkit-input-placeholder <
    /* Chrome/Opera/Safari */
    color: #b0ddf1;
    >
    ::-moz-placeholder <
    /* Firefox 19+ */
    color: #b0ddf1;
    >
    :-ms-input-placeholder <
    /* IE 10+ */
    color: #b0ddf1;
    >

    .detadsav <
    background: #0b7bb3;
    text-align: center;
    padding: 14px;
    border-radius: 3px;
    color: #eae7e7;
    cursor: pointer;
    text-transform: uppercase;
    >

    @media screen and (max-width: 600px) <
    .genstasel-nackages <
    flex-direction: column;
    >
    .kedetaqen textarea <
    height: 80px;
    >
    .vitumike-abovesad,
    .kedetaqen <
    width: 100%;
    >
    >

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

    Прозрачная форма в VBA (регулировка прозрачности формы)

    В данной статье собрано несколько примеров установки прозрачности форм (UserForm)

    Во всех файлах для установки прозрачности используется WinAPI функция SetLayeredWindowAttributes

    Примеры взять с форума ПланетаExcel, и немного переработаны.

    Прозрачность форм можно задавать в широком диапазоне — от 0 (полностью прозрачная форма) до 255 (непрозрачная)

    Также добавлен пример установки прозрачности самого Excel:
    (перед запуском формы, окно Excel плавно «расстворяется» (исчезает), а после закрытия формы также плавно появляется вновь)

    Вложение Размер Загрузки Последняя загрузка
    Регулировка прозрачности формы (от 0 до 255) 35.5 КБ 8 4 года 51 неделя назад
    Плавное появление и исчезание формы VBA 47 КБ 143 1 год 27 недель назад
    Плавно исчезающий Excel на время работы с формой 50.5 КБ 8 4 года 50 недель назад
    • 14354 просмотра

    Комментарии

    Здравствуйте, Константин.
    Если это и возможно сделать (в чём я сомневаюсь, т.к. элементы управления на форме VBA не имеют hWnd), — то очень сложно.
    В любом случае, с этим помочь не смогу.

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

    Понравилась статья? Поделиться с друзьями:
    Кодинг, CSS и SQL