Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2008, 21:11   #1
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию Прозрачность

ребята, мне нужна абсолютно прозрачная форма.
(delphi) На фомне лежат несколько обьектов - они должны отображаться.
и еще. Как убрать фон при этом из под компонента? Например у label или RxGifAnimator?
у меня как то был пример, но как то криво он работал.
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 22.01.2008, 21:21   #2
Слава
 
Регистрация: 12.01.2008
Сообщений: 3
По умолчанию

У фщрмы есть своство TransparentColor поставь его true и выбери TransparentColorValue(если ещё у каковато компонента на форме цвет будет такойже то он будет тоже прозрачен с цветом текста аналогично) такойже как цвет формы, поставь Border style none и после этого форма будет невидна.
У Labela тоже есть свойство transparent поставь true и всё.
Слава вне форума Ответить с цитированием
Старый 22.01.2008, 21:29   #3
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

нет, не получается так! я уже много раз пробовал! мне нужно, чтоб формы вообще не было видно, а только, то что под ней - windows, но в это же время видны были компоненты формы, а фона под ними не было!
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 23.01.2008, 00:05   #4
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Я нашел код! но вот с фоном у компонентов проблемы остались.
У кого нибудь есть идеи?

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.
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прозрачность sergei64_89 Общие вопросы .NET 1 29.07.2008 21:43
Прозрачность в PictureBox _Dmitry Общие вопросы .NET 3 24.06.2008 20:33
Прозрачность ЧИЖ HTML и CSS 5 24.10.2007 17:18
Прозрачность MAcK Общие вопросы Delphi 2 21.03.2007 19:24
Прозрачность в Delphi vicvtor Win Api 18 14.11.2006 20:10