Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как рисовать нестандартные окна?

270
26 июня 2005 года
Drew
265 / / 20.07.2000
подскажите, кто знает, технологию создания нестандартных (не просто со скруглёнными углами) окон..
301
26 июня 2005 года
lord Kelvin
897 / / 08.11.2004
Цитата:
Originally posted by Drew
подскажите, кто знает, технологию создания нестандартных (не просто со скруглёнными углами) окон..


Форма без заголовка (BorderStyle=bsNone) + TImage во всю форму. У формы еще TransparentColor=true и TransparentColorValue=<Какой-нибудь цвет>. Если на TImage нарисовано окно твоей мечты с дырами цвета <Какой-нибудь цвет>, то все в шоколаде.

270
27 июня 2005 года
Drew
265 / / 20.07.2000
Цитата:
Originally posted by lord Kelvin
Форма без заголовка (BorderStyle=bsNone) + TImage во всю форму. У формы еще TransparentColor=true и TransparentColorValue=<Какой-нибудь цвет>. Если на TImage нарисовано окно твоей мечты с дырами цвета <Какой-нибудь цвет>, то все в шоколаде.



... и видимый объект будет наследовать свойства формы?...

10K
27 июня 2005 года
лАмер
25 / / 27.06.2005
Цитата:
Originally posted by Drew
... и видимый объект будет наследовать свойства формы?...



Нет, видеть и щелкотить мышью ты будешь по TImage и события все, соответственно, ее.

270
27 июня 2005 года
Drew
265 / / 20.07.2000
Цитата:
Originally posted by лАмер
Нет, видеть и щелкотить мышью ты будешь по TImage и события все, соответственно, ее.



я думал, что можно изменить конфигурацию окна... ну скажем подменив прорисовку по OwnerDraw

10K
11 января 2006 года
лАмер
25 / / 27.06.2005
Цитата:
Originally posted by Drew
я думал, что можно изменить конфигурацию окна... ну скажем подменив прорисовку по OwnerDraw


Используй CombineRgn() из Win32

4.8K
12 января 2006 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by лАмер
Используй CombineRgn() из Win32



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

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

270
13 января 2006 года
Drew
265 / / 20.07.2000
Цитата:
Originally posted by Jump
Поддерживаю, клочевое слово RGN (искать в WinAPI) - регион окна.
Там несколько функций: прямоугольный регион, полигональный, элиптический, и функция комбинирования регионов.
После того как создашь регион желаемой формы - применяешь его к окну(тоже отдельная функция) - готово.

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



Народ! речь шла не о том КАК а скорее о том КОГДА.
Требовалось перерисовать окно TForm чтобы НОВОЕ (перерисованное) окно унаследовало свойства и методы СТАРОГО.
Я вообще думал, что можно как-то подменить (перегрузить) функцию прорисовки окна

4.8K
13 января 2006 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by Drew
Народ! речь шла не о том КАК а скорее о том КОГДА.
Требовалось перерисовать окно TForm чтобы НОВОЕ (перерисованное) окно унаследовало свойства и методы СТАРОГО.
Я вообще думал, что можно как-то подменить (перегрузить) функцию прорисовки окна



Что-то совсем не понятно... Как это "перерисовать...чтобы...окно унаследовало свойства и методы" ?

Опиши поподробней, плз: что есть НОВОЕ окно, что есть СТАРОЕ, и как они связаны?

270
13 января 2006 года
Drew
265 / / 20.07.2000
Цитата:
Что-то совсем не понятно... Как это "перерисовать...чтобы...окно унаследовало свойства и методы" ?

Опиши поподробней, плз: что есть НОВОЕ окно, что есть СТАРОЕ, и как они связаны?



да нечего писАть... просто канва окна должна иметь другую форму - ну например - кольцо

4.8K
14 января 2006 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by Drew
да нечего писАть... просто канва окна должна иметь другую форму - ну например - кольцо



На то, о чем ты написал отвечено четырьмя постами выше (мой пост).
Если важен вопрос КОГДА:
Форма окна изменяется единожды, как правило при создании окна, до его отображения. Обновлять это потом на оконной перерисовке нет необходимости.

270
14 января 2006 года
Drew
265 / / 20.07.2000
Цитата:
Originally posted by Jump
На то, о чем ты написал отвечено четырьмя постами выше (мой пост).
Если важен вопрос КОГДА:
Форма окна изменяется единожды, как правило при создании окна, до его отображения. Обновлять это потом на оконной перерисовке нет необходимости.


когда-то... лет так... 10 назад была программка на васике которая удобно и в векторном виде позволяла создавать формы и вставлять их в проект

4.8K
15 января 2006 года
Jump
128 / / 09.11.2005
Цитата:
Originally posted by Drew
когда-то... лет так... 10 назад была программка на васике которая удобно и в векторном виде позволяла создавать формы и вставлять их в проект



Собственно, и при работе с RGN нет ничего сложного. Для начала на бумаге изображаешь фигуру, которую хочешь получить. При этом используешь только два типа линий - эллиптические дуги и прямые, отмечая концы этих линий. Далее с прямыми линиями и так все просто, а выпуклые эллиптические получаются объединением региона окна и эллиптического, а вогнутые - вычитанием эллиптического. В общем объединяем/вычитаем регионы... И применяем это все к окшку в момент его Create'а.

270
16 января 2006 года
Drew
265 / / 20.07.2000
Цитата:
Originally posted by Jump
Собственно, и при работе с RGN нет ничего сложного.


вообще-то я это делал... (сказать откровенно) и даже получалось, но НЕУЖЕЛИ ДО СИХ ПОР нет проги автоматизирующей сей СКОРБНЫЙ процесс

585
16 января 2006 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by Drew
вообще-то я это делал... (сказать откровенно) и даже получалось, но НЕУЖЕЛИ ДО СИХ ПОР нет проги автоматизирующей сей СКОРБНЫЙ процесс


Ты сам то понял чего хочешь? В теме пишешь КАК, потом оказывается что КОГДА, обалдеть линейность. А для работы с формами, в том числе и нестандартными, существует целое море компонентов. Ну, к примеру, библиотека Rz...

270
16 января 2006 года
Drew
265 / / 20.07.2000
Цитата:
Originally posted by honeybeer
Ты сам то понял чего хочешь? В теме пишешь КАК, потом оказывается что КОГДА, обалдеть линейность. А для работы с формами, в том числе и нестандартными, существует целое море компонентов. Ну, к примеру, библиотека Rz...



Где взять?

585
17 января 2006 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by Drew
Где взять?


ну хотя бы здесь

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог