собственно сабж =), подскажите плз, как сделать чтобы форма была прозрачной а все компоненты на форме видимые.
Здравствуйте, Seyfred, Вы писали:
S>собственно сабж =), подскажите плз, как сделать чтобы форма была прозрачной а все компоненты на форме видимые.
Это как это видимые?

Насколько я знаю или все прозрачное или ничего.
Здравствуйте, Danchik, Вы писали:
D>Здравствуйте, Seyfred, Вы писали:
S>>собственно сабж =), подскажите плз, как сделать чтобы форма была прозрачной а все компоненты на форме видимые.
D>Это как это видимые?
D>Насколько я знаю или все прозрачное или ничего.
ну как здесь
http://www.nnm.ru/imagez/gallery/doci/all/all_best-1156880631_i_3506_full.jpg
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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 форум.
Здравствуйте, <Аноним>, Вы писали:
[]
А>ну как здесь 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>>
D>Насколько я знаю или все прозрачное или ничего.
А почему, собснно ?
Большинство виджетов, кроме обрезков типа TLabel — полноценные виндовые окна. Для них можно свою прозрачность сделать по идее.
Правда работать будет только на Windows NT5 2000 и дальше.
Если нужно поддерживать Windows не-NT или Windows NT4 — тогда только через библиотеки шкурок.
Здравствуйте, 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;