прозрачность формы (как в Vista)
От: Seyfred  
Дата: 13.09.06 16:16
Оценка:
собственно сабж =), подскажите плз, как сделать чтобы форма была прозрачной а все компоненты на форме видимые.
Re: прозрачность формы (как в Vista)
От: Danchik Украина  
Дата: 13.09.06 16:18
Оценка:
Здравствуйте, Seyfred, Вы писали:

S>собственно сабж =), подскажите плз, как сделать чтобы форма была прозрачной а все компоненты на форме видимые.

Это как это видимые?
Насколько я знаю или все прозрачное или ничего.
Re[2]: прозрачность формы (как в Vista)
От: Аноним  
Дата: 13.09.06 16:35
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, Seyfred, Вы писали:


S>>собственно сабж =), подскажите плз, как сделать чтобы форма была прозрачной а все компоненты на форме видимые.

D>Это как это видимые?
D>Насколько я знаю или все прозрачное или ничего.

ну как здесь http://www.nnm.ru/imagez/gallery/doci/all/all_best-1156880631_i_3506_full.jpg
Re[3]: прозрачность формы (как в Vista)
От: Danchik Украина  
Дата: 13.09.06 16:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Danchik, Вы писали:


D>>Здравствуйте, Seyfred, Вы писали:


S>>>собственно сабж =), подскажите плз, как сделать чтобы форма была прозрачной а все компоненты на форме видимые.

D>>Это как это видимые?
D>>Насколько я знаю или все прозрачное или ничего.

А>ну как здесь http://www.nnm.ru/imagez/gallery/doci/all/all_best-1156880631_i_3506_full.jpg


Кажется нет, но поэксперементируйте со стилем WS_EX_LAYERED, почитайте Using Layered Windows.
А еще лучше запостайте даный вопрос на WinAPI форум.
Re[3]: прозрачность формы (как в Vista)
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 13.09.06 17:03
Оценка:
Здравствуйте, <Аноним>, Вы писали:

[]

А>ну как здесь http://www.nnm.ru/imagez/gallery/doci/all/all_best-1156880631_i_3506_full.jpg


SetLayeredWindowAttributes посмотри, это оно.
... << RSDN@Home 1.1.4 beta 7 rev. 452>>
Re: прозрачность формы (как в Vista)
От: Seyfred  
Дата: 13.09.06 17:17
Оценка:
=))))
нашол вот этот код

public
procedure CreateParams (var Params: TCreateParams); override;
end;

.....................

procedure TForm1.CreateParams (var Params: TCreateParams);
begin
inherited CreateParams (Params);
Params.ExStyle := Params.ExStyle or
WS_EX_TRANSPARENT;
end;

он работает, но немного глючно =(
Re[2]: прозрачность формы (как в Vista)
От: Аноним  
Дата: 14.09.06 08:11
Оценка:
D>Насколько я знаю или все прозрачное или ничего.

А почему, собснно ?

Большинство виджетов, кроме обрезков типа TLabel — полноценные виндовые окна. Для них можно свою прозрачность сделать по идее.
Правда работать будет только на Windows NT5 2000 и дальше.

Если нужно поддерживать Windows не-NT или Windows NT4 — тогда только через библиотеки шкурок.
Re[2]: прозрачность формы (как в Vista)
От: NSP Россия  
Дата: 14.09.06 18:11
Оценка:
Здравствуйте, Seyfred.

Не совсем корректный код.


Форма должна по цвету отличаться от цвета остальных контролов,для случая если цвет формы = clWhite
Должно быть так:
procedure TForm1.ButtonClick(Sender: TObject);
begin
if SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED) = 0 then
   ShowMessage(SysErrorMessage(GetLastError));
if not SetLayeredWindowAttributes(Handle, ColorToRGB(clWhite), 255, 1) then
   ShowMessage(SysErrorMessage(GetLastError));
end;


На интересной работе и сны интересные видишь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.