Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Вниз

Прозрачность в Win 9x   Найти похожие ветки 

 
SGrigory   (2002-04-29 15:36) [0]

Как в 9х сделать прозрачную форму? Желательно, чтобы работало и в NT. Заранее благодарен.


 
Phil   (2002-05-04 17:46) [1]

Работает везде, и в ХР в частности:

unit unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
Button1: TButton;
Button2: TButton; // это просто кнопки на форме - для демонстрации
protected
procedure RebuildWindowRgn;
procedure Resize; override;
public
constructor Create(AOwner: TComponent); override;
end;
var Form1 : TForm1;
implementation// ресурс этой формы
{$R *.DFM}
{ Прозрачная форма }
constructor TForm1.Create(AOwner: TComponent);
begin inherited; // убираем сколлбары, чтобы не мешались
// при изменении размеров формы
HorzScrollBar.Visible:= False; VertScrollBar.Visible:= False;
// строим новый регион
RebuildWindowRgn;
end;
procedure TForm1.Resize;
begin inherited;
// строим новый регион
RebuildWindowRgn;
end;
procedure TForm1.RebuildWindowRgn;
var FullRgn, Rgn: THandle; ClientX, ClientY, I: Integer;
begin
// определяем относительные координаты клиенской части
ClientX:= (Width - ClientWidth) div 2; ClientY:= Height - ClientHeight - ClientX;
// создаем регион для всей формы
FullRgn:= CreateRectRgn(0, 0, Width, Height);
// создаем регион для клиентской части формы
// и вычитаем его из FullRgn
Rgn:= CreateRectRgn(ClientX, ClientY, ClientX + ClientWidth, ClientY +ClientHeight);
CombineRgn(FullRgn, FullRgn, Rgn, rgn_Diff);
// теперь добавляем к FullRgn регионы каждого контрольного элемента
for I:=0 to ControlCount -1 do
with Controls[I]
do
begin
Rgn:= CreateRectRgn(ClientX + Left, ClientY + Top, ClientX + Left +Width, ClientY + Top + Height);
CombineRgn(FullRgn, FullRgn, Rgn, rgn_Or);
end;
// устанавливаем новый регион окна
SetWindowRgn(Handle, FullRgn, True);
end;
end.


 
hoaxer   (2002-05-06 10:35) [2]

Зачем так мучаться? В делфи 6 у формы есть свойство AlphaBlend и еще одно такого-же рода.


 
Mambo   (2002-05-17 16:19) [3]

hoaxer © (06.05.02 10:35) - да но сколько сам Делфи весит и стоит ли из за этого его ставить?



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2002.09.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.008 c
7-50995
wistler
2002-07-04 22:56
2002.09.16
Программирование модема.


14-50982
terexruz
2002-08-18 18:53
2002.09.16
реестр, NT


8-50871
Darts
2002-05-18 16:30
2002.09.16
Быстрый вывод графики


3-50587
Soft
2002-08-24 15:55
2002.09.16
Передача параметров в SQL запросе.


1-50672
Song
2002-09-04 17:22
2002.09.16
Хук на сообщение WM_SYSCOMMAND. Проблема.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский