![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Всем привет
скачал свежую DRKB (спасибо создателм), попробовал сделать пример, столкнулся с ошибкой [Error] Unit1.pas(43): Undeclared identifier: 'Pts' действительно непонятно что это за фрукт, плюс на эту команду "CreatePolygonRgn" не могу вызвать справку в Delphie. Можете объяснить как это должно работать?
Озадачен такой проблемкой - хочу сделать форму нестандартного вида, как бы намертво склеенную из 2-х прямоугольных форм (например, одинаковых), но одна чуть выше и правее другой (наложены одна на другую). Не проблема написать обработчик перемещения формы и, соответсвенно, привязать координаты другой к этим перемещениям, но есть проблема - форма которая левее не должна становиться активной и перекрывать собой форму правее. Т.е. правая форма всегда должна оставаться активной, даже если курсор мыши перемещает левую форму... Помогите разобраться, можно ли и как это обойти? Это сообщение отредактировал(а) Alexeis - 26.9.2007, 19:20 |
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 7 Всего: 38 |
Перехватывай OnActive... А почему нельзя сделать просто форму нестандартной формы, обрезанную по какому-то региону?
-------------------- ![]() |
|||
|
||||
| Vetos |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.4.2005 Репутация: 1 Всего: 4 |
Так у тебя хотя бы где нибудь описывается var Pts, а так конечно будет выдавать ету ошибку, прочти внимательней пример
-------------------- Строить нужно так, чтоб никто не сломал! А ломать, чтоб никто не знал 8) :ne_huliganit |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 1 Всего: 122 |
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Ее нужно смотреть в справке по API (p.s. в Delphi 2005 и выше все справки объединены. Оч. удобно) -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Лучше воспользуйся регионами и вырежи нужную фигуру.
|
|||
|
||||
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Дык и я о том же, товарисч! Думаю в справке правильнее помещать рабочие примеры, чтобы на их работе разбираться дальше. |
|||
|
||||
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Спасибо товарищу Rodman у, сработало, хоть и несколько не так как ожидалось...
Хотелось реальную дырку в форме, чтобы сквозь нее были видны изображения, расположенные за формой. |
|||
|
||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
Например это может быть нужно, если хочется чтобы одна форма была не прозрачной, а у другой полупрозрачной.
Делай примерно так:
-------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
В общем то, я так и хотел сделать (но не знаю как), думал с двумя формами будет проще. Подскажите пожалуйста, как пользоваться регионами и вырезать формы? Это сообщение отредактировал(а) Scotch - 25.9.2007, 19:03 |
|||
|
||||
| Alix |
|
|||
|
L45 ![]() ![]() Профиль Группа: Участник Сообщений: 581 Регистрация: 4.5.2005 Где: Pskov/Spb Репутация: 8 Всего: 23 |
Вот код, вырежет дырку.
-------------------- Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой High tech. Low live. (с) Gardner Dozois |
|||
|
||||
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Спасибо, Alix, это то что было нужно!
|
|||
|
||||
| aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 7 Всего: 38 |
Посмотри в DRKB или в DelphiWorld... -------------------- ![]() |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 1 Всего: 78 |
-------------------- Ll 2 |
|||
|
||||
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Спасибо, спасибо, спасибо, спасибо и спасибо
буду ваять и разбираться |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
В нашем FAQe не хуже написано Как создавать не квадратные формы и контролы? Как создать круглую форму? Как сделать дырку в окне? Как создать форму в форме эллипса? Как сделать Memo с закруглёнными краями? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 1 Всего: 78 |
И правда, на нашем FAQ все лучше расписано! -------------------- Ll 2 |
|||
|
||||
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Расписано может быть и хорошо, но по моей проблемке ничего не нашел
Мне нужно вырезать в форме 2 прямоугольника, если делать это через SetWindowRgn то захожу в тупик - вырезается только 1, как ни крути |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Все это делается последовательными вызовами CombineRgn. Эта функция служит для объединения и ее можно вызывать много раз для изменения региона. Модератор: темы объединил. Это сообщение отредактировал(а) Alexeis - 26.9.2007, 19:18 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Scotch |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.9.2007 Репутация: нет Всего: нет |
Понятно, оказывается все просто
|
|||
|
||||
| BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: нет Всего: 18 |
А вот у меня, так, ради интереса, появилась пара вопросов.
1. При "обрезке" формы регионом она теряет ХР-шный вид. Как с этим бороться? 2. Если то же самое делать с кнопой, то края у нее обрезаются довольно нелицеприятно. Регион просто ограничивает область видимости контрола. Мне бы, например, хотелось бы увидеть ту же кнопку, но с "правильными" краями. Это возможно без долгих извращений? -------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Сам все сказал.
Добавлю только что не только область рисования, но ограничивает и область при попадании в которую курсора мыши винда отсылает сообщения о перемещении, кликах, передаче фокуса ввода и т.д. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: нет Всего: 18 |
Alexeis, это все так. Может быть я не слишкм конкретно вопрос ставлю?.. На пальцах. У кнопы, если есть манифест, вокруг синенькая рамочка. Прямоугольная. А как мне сделать круглый батон с такой же рамочкой? Да и вообще батон любой формы? Да тоже и формы касается. Есть ли вариант ей по границе региона бордер налепить? И еще про форму. После установки ей региона, у нее пропадает стиль ХР. Сразу после первой перерисовки. -------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
| BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: нет Всего: 18 |
М-да... Из того, что смог найти, делаю вывод, что без извращений не обойтись...
-------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
| lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: 3 Всего: 15 |
А что дырку то делать... TransparentColor в true, TransparentColorValue = clRed (например), и рисуем себе дырку красного цвета... *для формы)
Это сообщение отредактировал(а) lukas - 29.9.2007, 16:45 -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Так дырка тоже регионами делается, только вычитанием их. TransparentColor - для формы работает только, для компонентов не годиться.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |