Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#16: 2014-05-27 02:00:55 ЛС | профиль | цитата
[offtop]
sla8a писал(а):
а о чем сериал? Прикола не понял

Да забей, нормально все. Ждем окончания тестирования[/offtop]

карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#17: 2014-05-27 11:59:16 правка | ЛС | профиль | цитата


Редактировалось 8 раз(а), последний 2021-06-21 07:06:56
карма: 0

0
Ответов: 165
Рейтинг: 7
#18: 2014-05-27 12:00:58 ЛС | профиль | цитата
^это я
карма: 1

0
Ответов: 2193
Рейтинг: 673
#19: 2014-05-28 09:48:47 ЛС | профиль | цитата
176-104-171-213.matrixnet писал(а):
Кроме окна ОК правильной прорисовки нет.
Если вас это не убедило, то вот вам более весомое доказательство, того что функция SetWindowRgn применило регион к окну.
Вот скриншот схемы в которой как устанавливается регион, так и получается регион с окна, после чего этот регион отрисовывается на PaintBox-е.
Скриншот схемы
Сама тестовая схема
Обратите внимание что прозрачность Transparent=True у элемента Label установлено.
И для получения региона используется второй элемент, который не может содержать в себе данные о регионе кроме как получить их у окна.
Для теста нажмите вначале кнопку Test1 (регион установиться к окну), а потом кнопку Test2 у окна будет получен регион и отрисован на PaintBox-е.
А вот и результат схемы где прорисовки нормально элемента не произошло, но регион установлен, что видно по результатам работы функции GetWindowRgn которая и возвращает установленный регион.
Результат работы тестовой схемы

Еще раз повторю причина неправильной прорисовки это не вина функции SetWindowRgn.

176-104-171-213.matrixnet писал(а):
программист от пользователя тем и отличается что первый доходит до глубинной сути вещей,а второй пользуется правилами.
Так объясните эту суть.

------------ Дoбавленo в 09.48:
flash1103, вот вам еще один пример того что регион применен к панели.
Посмотрите работу этой схемы: Схема 2 (используются только стандартные элементы). Тут для тестирования установлен у панели свой курсор (crCD - курсор с диском), поводите курсором над панелью до нажатия на кнопку (Test1) и после нажатия. И обратите внимания что курсор мыши меняется только в том месте где применен регион (треугольная форма).
карма: 10

1
файлы: 4rgn_transparent_02.jpg [22.5KB] [939], rgn_transparent_01.jpg [89.9KB] [834], rgn_transparent_01.sha [3.6KB] [356], rgn_transparent_02.sha [2.5KB] [450]
Голосовали:flint2
Ответов: 2059
Рейтинг: 131
#20: 2014-05-28 22:21:10 ЛС | профиль | цитата
вот вам еще один пример того что регион применен к панели.

Спокойно. Народ хочет разобраться.
176-104-171-213.matrixnet писал(а)
программист от пользователя тем и отличается что первый доходит до глубинной сути вещей,а второй пользуется правилами.

На свете есть такое, мой друг Горацио, что и не снилось мудрецам!
карма: 6

0
Ответов: 2193
Рейтинг: 673
#21: 2014-05-28 22:41:45 ЛС | профиль | цитата
Если еще есть сомнения, то нажмите в этом примере: test_sha на кнопку 1 или 2 после нажатия на кнопку Test1. Не получится панель обрезана под регион и кнопки вне панели.
карма: 10

0
файлы: 1rgn_transparent_03.sha [3KB] [437]
Ответов: 2059
Рейтинг: 131
#22: 2014-05-28 22:58:11 ЛС | профиль | цитата
Если еще есть сомнения, то нажмите в этом примере:

Сомнений нет, кто понял, но примеры не не сосем подходят. Вот если бы чего-то в анимации и со звуком. Правда стиль музыки не угадаешь - ...
Сначала надо понять, а примеры... , примеры тоже не плохие.
карма: 6

0
Ответов: 165
Рейтинг: 7
#23: 2014-06-01 22:53:01 ЛС | профиль | цитата
flint2 писал(а):
Спокойно. Народ хочет разобраться.
,
sla8a писал(а):
Если еще есть сомнения


Читайте внимательно мой первый ответ
flash1103 писал(а):
Как функцию SetWindowRgn сдружил со св-вом Transparent=true?

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

Пришлось покопаться в функции TransparentBlt, пришел к выводу что её надо выкинуть
Вот вариант новой label использующий другой алгоритм псевдопрозрачности.
-свойство SetTransparent перекрыто заглушкой
-своя отрисовка onpaint
новая лейба на вашем примере sla8a http://forum.d2h.ru/forum_serv.php?q=56&id=3754
можно сделать моды всех компонентов использующих это св-во,благо их мало.
------------ Дoбавленo в 22.53:
+ прозрачность работает и с Ctl3d=true
- не правильно работает autosize=true c Ctl3d=true(она всё время не правильно с рамкой работала), буду дорабатывать
Этот вариант label кому-нибудь нужен?
карма: 1

0
Ответов: 2193
Рейтинг: 673
#24: 2014-06-01 22:58:25 ЛС | профиль | цитата
flash1103 писал(а):
Этот вариант label кому-нибудь нужен?
Никогда не пользовался прозрачностью.
Лучше создать отдельную тему, в которой и выложить свои наработки.
карма: 10

0
Ответов: 165
Рейтинг: 7
#25: 2014-06-01 23:04:28 ЛС | профиль | цитата
[flood]Ok,доделаю выложу.[/flood]
карма: 1

0
Ответов: 2193
Рейтинг: 673
#26: 2014-08-28 00:39:35 ЛС | профиль | цитата
Обновление.
Элемент RGN_Draw изменен.
карма: 10

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#27: 2014-08-28 01:06:01 ЛС | профиль | цитата
sla8a писал(а):
Элемент RGN_Draw изменен

Попрошу все изменения выделять отдельными файлами для быстрого добавления. Мне совершенно не нравится тащить весь архив из-за изменений в одном файле
карма: 22

0
Ответов: 2193
Рейтинг: 673
#28: 2014-08-28 01:27:43 ЛС | профиль | цитата
nesco, изменения внесены не только в RGN_Draw, но и в другие элементы. В какие уже и не скажу точно, а RGN_Draw выделил потому что в отличие от остальных "внутренних" изменений, у RGN_Draw изменились как свойства так и события.

Пока все в стадии тестирования, мне удобней все архивом обновлять.
карма: 10

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#29: 2014-08-28 01:42:58 ЛС | профиль | цитата
sla8a писал(а):
Пока все в стадии тестирования, мне удобней все архивом обновлять

Как закончится тестирование, обязательно сообщи, будем обновлять
карма: 22

0
Ответов: 2193
Рейтинг: 673
#30: 2014-11-11 23:28:30 ЛС | профиль | цитата
nesco, можно обновлять. Обновил первый пост (обратите внимания на новые пункты 12 и 13). Вам для удобства одним файлом: [offtop]-архив с файлами удалил-[/offtop]
В архиве:
  • В папке last_2014_11_11 файлы элементов.
  • В папке sha примеры работы как с конкретными элементами, так и с регионами вообще. Как по мне так им дорога в HiAsmElementsdelphiExampleFormsRegions.
  • Скриншот моей панели элементов, если не будет возражений, то расположите элементы на панели в таком порядке.
  • карма: 10

    3
    Голосовали:foksov, ser_davkin, miver
    Сообщение
    ...
    Прикрепленные файлы
    (файлы не залиты)