Przezroczysta forma z nieprzezroczystymi komponentami

0

Witam,
cały dzień męczę się by uzyskać następujący efekt: przeźroczysta forma, z nieprzeźroczystymi komponentami. Wydawałoby się, że nie może to być nadto skomplikowane. Googlując natrafiałem na różne solucje, jednak żadna nie była w moim przypadku skuteczna. Oczywiście próbowałem również metodą: Przezroczysta forma , z tym, że w moim wypadku jako tło jest po prostu forma, a nie bitmapa, dlatego próbowałem również generować bitmapę o rozmiarze i kolorze formy, jednakże w efekcie otrzymywałem widoczne jedynie komponenty, bez przeźroczystego tła. Dlatego, że brakuje mi już nerwów do tego postanowiłem poradzić się drogich forumowiczów o poradę.

0

Dziwne. Przykład podany na: http://stackoverflow.com/questions/10098374/how-to-make-form-transparent-while-keeping-the-component-visible - działa idealnie. Efekt jest taki, jak na obrazkach. Nie o takie coś Tobie chodzi? Jeżeli nie, to może ktoś jeszcze tutaj coś lepszego doradzi.

0

Na tym przykładzie komponenty są wycinane, a mnie chodzi o przeźroczystą formę - z nieprzeźroczystymi przyciskami, w załączniku dodałem aktualny efekt jaki uzyskałem. Widać tam 2 przyciski, które chciałbym pozostawić bez efektu przeźroczystości. Aktualne, jedyne rozwiązanie jakie przychodzi mi na myśl to użycie 2 form, jedna jako tło - przeźroczysta, a na nią nakładać formę z wyciętymi przyciskami. Są jeszcze jakieś inne możliwości?

0

To nie wiem jakie to mają być przyciski. Gdyż tamten przykład dokładnie to robi co założyłeś. Kontrolki są po staremu, a całe tło jest przeźroczyste. Jeżeli nie jest to jednak efekt, o który Ci chodzi, to pewnie ktoś coś jeszcze doradzi, bo ja wymiękam.

0

Przy włączonym aero kod, który wrzucił Olesio działa tak jak powinien, ale przy wyłączonym aero musisz dodatkowo zmienić domyślny kolor formy na jakiś inny np. clLime i dopiero później ustawić:

  
form.TransparentColorValue := clLime; 
form.TransparentColor := True;
0

Tu http://stackoverflow.com/questions/11867215/how-do-i-put-a-semi-transparent-layer-on-my-form jest przykład ale też z 2 formami i chyba nie ma innego sposobu niż 2 formy (chyba że dla Windows 8 bo tam WS_EX_LAYERED można ustawić dla okien potomnych to może by sie dało coś wykombinować)

0

Ja domyślnie mam AERO wyłączone pod Windows 7 i wybraną klasyczną kompozycję. I u mnie pod Delphi 7 nie było z tym kodem problemów. Efekt, wydawał się mi taki, o jaki chodzi.

0

Heh, stąd to było tak kłopotliwe. Tymczasowo jestem zmuszony użytkować starego, dobrego XP'ka. Najwidoczniej dlatego nie działały poprawnie wszystkie znalezione solucje, jedyna, działająca, to użycie do tego celu dwóch form. Dzięki Panowie :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1