Главная страница
    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.45 MB
Время: 0.009 c
14-50940
VictorT
2002-08-21 13:05
2002.09.16
Описание функции gethostbyaddr


1-50793
KPY
2002-08-29 07:44
2002.09.16
Шифрация !


1-50838
neg2001
2002-09-03 15:00
2002.09.16
Господа, подскажите откуда можно нормально cкачать Delphi 7


3-50600
Gl
2002-08-26 09:46
2002.09.16
Проблема с кодировкой в IBQuery


7-51003
Swordent
2002-07-03 20:47
2002.09.16
!!! Помогите, люди добрые !!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский