Formy a przezroczystość

0

Witam, od dłuższego czasu męczę się z jednym problemem i za cholerę nie mogę tego pokonać:

  • mam formę główną na której jest komponent TImage i jakiś załadowany obraz
  • na tej formie tworzę sobie dynamicznie mniejsze formy z różną zawartością, które to formy mają przezroczyste tło (transparent color, transparency). i teraz:

jeżeli tworzę małą formę na formie bazowej to ładnie tło jest przezroczyste(widzę obrazek pod spodem) ale gdy ta formę zacznę poruszać po ekranie to jak by odcina fragment obrazka który przykrywała na początku i przesuwa się z tym początkowym tłem cały czas.

Kolejny problem, to jeśli przykryję ta małą formę na chwile inną formą(zawartością) to jej tło przejmie jak by tą zawartość która go przykrywała.
próbowałem z właściwościami repaint, refresh, visible false/true, ale bez rezultatu.
bida...

0

o ile pamietam to np taki alphablending nie dziala dla form potomnych. moze tu lezy roblem... w samym systemie?

0

czyli nie tędy droga? muszę to jakimś innym sposobem zrobić??

0

moge sie mylic wiec sprawdz czy jesli formy nie sa potomne to przezroczystosc zadziala.
zawsze da sie jakos inaczej to rozwiazac, ale musialbys napisac dokladnie jaki efekt chcesz osiagnac. albo wstawic screena.

0

Spróbuję to opisać bardziej dokładnie:

Mam formę główną na której jest komponentTimage i w nim wstawiony jakiś obrazek, który stanowi tło dla całej aplikacji.

W aplikacji mam przycisk , po naciśnięciu którego tworzę sobie na formie głównej nową mniejszą formę, która to składa się z kilku etykiet ,oraz komponentu Timage, w którym mam jakiś obrazek.

(...)
Unit_aaa[NumberOfUnit] :=TFormRooftop.create(self);
Unit_aaa[NumberOfUnit].Brush.Style:=bsClear;
Unit_aaa[NumberOfUnit].BorderStyle:=bsNone;
Unit_aaa[NumberOfUnit].visible:=true;
Unit_aaa[NumberOfUnit].Parent:=self;
(...)

Forma ta jest przezroczysta, tak że widzę tylko same etykiety i obrazek bez samego tła formy.

I teraz w trakcie działania programu chcę sobie swobodnie przesuwać te mniejsze formy z przezroczystym tłem po formie głównej. Tylko że jak je przesuwam to tło tej mniejszej formy jak by zatrzymuje wycinek obrazka formy bazowej i przesuwam tak jak by z wycinkiem tej formy.-Rys A

Kolejny problem to to że po zasłonięciu formy mniejszej inną zawartością jej tło przestaje być przezroczyste, a pojawia się na niej fragment zawartości która ją przysłoniła . - Rys.B

RYSUNEK A
http://img43.imageshack.us/i/problemaj.png/

RYSUNEK B

http://img14.imageshack.us/i/problemb.png/

0

zrezygnuj z uzywania form bo to bez sensu.
mozesz wykorzystac zwykle TImage + TLabel +troche kodu, zeby oba komponenty trzymaly sie razem i byly traktowane jak jeden element.
mysle, ze najwygodniej byloby napisac wlasny komponent dziedziczacy chyba po TGraphicControl.
dodatkowa zaleta jest taka, ze wyswietlane na formie "ikonki" beda wyswietlane z kanalem alpha (czyli 32bit, z polprzezroczystosciami).

0

w sumie było by to najlepsze wyjście...gdybym nie miał już pokaźnego kodu....cholernie dużo do przerabiania

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