AERO GLASS i DELPHI

0

Witam wszystkich! Problem z GlassEffect w DELPHI 2009

Mam pewien problem z wiązany z interface systemu vista / windows 7. Mianowicie Microsoft udostępnił interface aero w którym okienka / formularze na obszarze systemowym są zbudowane z "tafli szkła". Od Delphi bodajże 2007, forma (TForm) posiada cechę

GlassFrame : TGlassFrame

Pola tej cechy potrafią włączyć efekt "szkła" na powierzchni roboczej formy i ustalić jakąś szerokość z każdej strony, bądź też włączyć szkiełko na całej formatce (tak jak w menedżerze gadżetów windows).

Efekt bardzo fajny, tyle tylko, że praktycznie nie do wykorzystania. Nie da się bowiem na takiej tafli absolutnie nic umieścić. Jedynie grafika dobrze jest później wyświetlana. Umieszczenie każdego innego elementu (np. TLabel) powoduje mieszanie barw. Efekt jest taki, że czarny kolor jest kolorem przeźroczystym, biały nie jest, każdy kolor pośredni jest w odpowiednim stopniu przeźroczysty. Znaczy to, że tak naprawdę, nic na takiej tafli szkła nie widać... Powiem także, że efekt Glass wyklucza się z efektem przeźroczystego koloru na formie. Jeden efekt wyklucza drugi. Czy ktoś ma jakiś pomysł jak na tafli szkła umieścić np. TLabel w którym kolor fontu będzie np. niebieski i na ekranie na szkiełku pojawi się po prostu niebieski napis?

Jak ktoś ma w tym zakresie jakieś doświadczenie, to bardzo prosiłbym o jakąś podpowiedź...

0

Ustaw podwójne buforowanie na formie i wszystko będzie się wyświetlało poprawnie.
W OnCreate formy:
Form1.DoubleBuffered:=True;

0

nie prawda alpha blending dziala z aero glass, co do wykorzytsania to licho, ale jak pobieram obrazz z kamerki usb to aero blenduje z tym obrazem z tego powodu ze zrobilem kontrolke ktora jest praktycznie przezroczystatn tzn wykorzysutujeten efekt i dlaatego wszystko wsio smiga, co tam umiescisz i ak bedzie blendoewalo z aero

dowody: na tym rysdunk ujest woda na obrasku tylko jej nie widac za bardzo trudno odwzorowac ruszjaca sie wode na nieruchomym obrazie :F i w ogole pomieszane opengl z dx
user image

a tutaj po prawej jest gradient wygenerowany na tej kontrolce:
od lewej jest kolor czarny i leci w prawo do białego

user image

wygenerowany tak:

int x, y;
int r,g,b;
r=0;
g=0;
b=0;
for (y = 0; y < 240; y++)
for (x = 0; x < 320; x++)

{
r = RoundTo(255.0f*(x / 320.0f),0);
g = r; b = r;
				  Image4->Canvas->Pixels[x][y] = RGB(r,g,b); 
}

TranPanel2->Canvas->CopyRect(Rect(0,0,320,240),Image4->Canvas,Rect(0,0,320,240));

Moze ci ten blending nie dziala bo nie masz aktualizacji windowsa sciaganych na kompa lub masz nielegalna viste :F

Prosty wniosek jak to sie blenduje GL_SRC_COLOR, GL_ONE

a popatrz tu

user image

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