Jak uzyskać regulowaną przezroczystość komponent

0

W przypadku formy istnieje możliwość wł/wył właściwości alphablend oraz jej regulowania. Czy da się uzyskać taki efekt dla komponentów?

Przeszukałem całe forum, ale nie znalazłem jednoznaczej odpowiedzi na ten temat... Odpowiedzi mijały się z celem jaki chciałbym uzyskać.

Jedna osoba podsunęła mi pomysł, który polega na wykorzystaniu procedur związanych z alphablend (użytych w forms.pas) i użyciu ich do przerobienia wybranego komponentu...
Przeglądałem to i nawet jakby istniała taka możliwość, to sobie z tym nie poradzę.

Za pomoc lub nakierowanie na odpowiednie źródła wielkie dzięki...

0

Jedyne co przychodzi mi do głowy to to:

Jak ustawiasz właściwość AlphaBlen dla formy to przeźroczyste są też komponenty, ale jak kodowo wyłączysz to coś dla formularza, to powinno zostać dla innych komponentów:

Widzi mi się to tak:

Form1.Canvas.Brush.Style := bsClear;

Nie wiem czy to zadziała... ale cóż nigdy się tą właściwością nie bawiłem [stuk]

0

Nie to miałem na myśli.
Jak wrzucę na formę kilka komponentów chciałbym ustawiać przezroczystość każdemu z osobna...

0

Jeśli komponent jest potomkiem z TWinControl, można mu zrobić orzezroczystość tą metodą, co w forms.pas lub też jest ta metoda opisana na swissdelphicenter.com (dla form, ale wystarczy dać po prostu uchwyt komponentu ). Dla innych komponentów trzeba chyba pogrzebać w ich źródłach i ręcznie zrobić przezroczystość.

0

jak ja nakładam obraz na obraz to robię tak (jeśli chodzi o wygląd komponentów, to musisz to sobie jakoś sam przekształcić):

1.mam dwa obrazy (u Ciebie to canvas formy i canvas komponentu)
2.w pętli zczytuję po kolei każdy piksel obrazka 1 i obrazka 2
3.z pikseli wyciągam wartości poszczególnych kolorów (getRvalue... itd...)
4.obliczam średnią kolorów czerwony1 czerwony2 ziel... itd
oczywiście możesz zamiast średniej... "pomieszać" te wartości w innych proporcjach (matematyka)
5.masz 3 wartosci nowego kolru, które łączysz (rgb(r,g,b)) i dostajesz nowy kolor danego piksela, który pozostaje Ci tylko wyświetlić.

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