![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Dreyka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 13.7.2004 Репутация: нет Всего: нет |
Нужно сделать так, чтобы на моей прозрачной форме был виден помещённый на неё рисунок.
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Ищи информацию по регионам - CreateEllipticRgn, SetWindowRgn и т.д.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Burich-Caeser |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 109 Регистрация: 28.7.2004 Репутация: нет Всего: 1 |
Вообще все достаточно просто. У формы есть свойство TransparentColor кажется. Его устанавливаешь в черный, цвет формы тоже в черный + еще какое-то свойство связанное с этим надо установить в истину.Извини, лень запускать Delphi и смотреть...
Насчет CreateEllipticRgn, SetWindowRgn совет хорош, но для такого простого случая париться с этим будет напряжно. --------------------
Ты брошен вниз силой судьбы,Ты унижен и раздавлен,Время забыть то, кем ты был,Но помнить, кем ты стал... |
|||
|
||||
| Dreyka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 13.7.2004 Репутация: нет Всего: нет |
Нашел кое что вроде бы работает
var FullRgn, ClientRgn, CtlRgn : THandle; procedure TForm1.DoInvisible; var AControl : TControl; A, Margin, X, Y, CtlX, CtlY : Integer; begin Margin := ( Width - ClientWidth ) div 2; FullRgn := CreateRectRgn(0, 0, Width, Height); X := Margin; Y := Height - ClientHeight - Margin; ClientRgn := CreateRectRgn( X, Y, X + ClientWidth, Y + ClientHeight ); CombineRgn( FullRgn, FullRgn, ClientRgn, RGN_DIFF ); for A := 0 to ControlCount - 1 do begin AControl := Controls[A]; if ( AControl is TWinControl ) or ( AControl is TGraphicControl ) then with AControl do begin if Visible then begin CtlX := X + Left; CtlY := Y + Top; CtlRgn := CreateRectRgn( CtlX, CtlY, CtlX + Width, CtlY + Height ); CombineRgn( FullRgn, FullRgn, CtlRgn, RGN_OR ); end; end; end; SetWindowRgn(Handle, FullRgn, TRUE); end; procedure TForm1.FormDestroy(Sender: TObject); begin DeleteObject(ClientRgn); DeleteObject(FullRgn); DeleteObject(CtlRgn); end; procedure TForm1.DoVisible; begin FullRgn := CreateRectRgn(0, 0, Width, Height); CombineRgn(FullRgn, FullRgn, FullRgn, RGN_COPY); SetWindowRgn(Handle, FullRgn, TRUE); end; procedure TForm1.FormCreate(Sender: TObject); begin DoInvisible; end; |
|||
|
||||
| Viruser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.8.2004 Где: Ukraine, Melitopo l Репутация: нет Всего: нет |
Можно задать прозрачность на какой нибудь уникальный цвет. Например задай цвет формы
Прозрачными будут участки с цветом $5645ea. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
форму делаешь серым цветом, а кнопку красным.
в свойсвах формы ставишь TransparentColor:=true; TransparentColorValue:=серый; а свойсво Transparent, по-моему вообще не трегаешь |
|||
|
||||
![]()
|
| Правила форума "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. |