Płynny zanik formy

Gandziorz

Użytkownik
Dołączył
Luty 5, 2005
Posty
114
Witam,
Na początku powiem że za konkretną pomoc dam "Pomógł".
Chodzi o to żeby alpha blend płynnie z 255 schodziła do 0 a potem wywalił się np. komunikat
Kod:
ShowMessage('I juz przezroczysta forma');
Wiec AlphaBlend mam ustawioną na true, AlphaBlendValue na 255 i teraz chodzi o to żeby forma płynnie znikała czyli 255 dochodziło do 0.

Dodałem Timer (i w tag dałem wartość 255)do formy FScreen.

Wykonałem coś takiego i działa:
Kod:
timer1.tag:= timer1.tag-1;



AlphaBlendValue := timer1.tag;

if timer1.tag = 0 then

Close;
Forma pomału zanika i się wyłącza
<


Lecz kiedy użyłem go już w Project1.dpr odrazu się wyłącza...
Kod:
begin

  FScreen:=TFScreen.Create(nil);

  FScreen.Show;

  Application.Initialize;

  FScreen.Update;

  Application.CreateForm(TForm1, Form1);

  Application.CreateForm(TForm2, Form2);

  // tutaj ładowanie, albo zwłoka

  FScreen.Destroy;

  Application.Run;

end.
 

djmentos

Użytkownik
Dołączył
Maj 1, 2007
Posty
1868
ale kombinujesz...to są zwykłe pętle.

Kod:
for i:=255 downto 1 do

begin

AlphaBlendValue:=AlphaBlendValue-1;

Application.Processmessages;

end;

ShowMessage('Cośtam cośtam');

najlepiej umiesc to w jakiejs procedurze
Kod:
procedure zniknij;

i potem zamiast //tutaj ładowanie lub zwłoka daj:
Kod:
zniknij;
 

Gandziorz

Użytkownik
Dołączył
Luty 5, 2005
Posty
114
Ok. Temat nie ważny zrobiłem inaczej. Za zainteresowanie dam pomógł.

Proszę o zamknięcie.
 

nitr0

Użytkownik
Dołączył
Maj 15, 2007
Posty
537
hmm... odgrzewam temat bo nie chce zakladac nowego skoro mam problem prawie że identyczny. różnica w tym że chodzi o pojawienie się formy. dałem kod w oncreate :
Kod:
procedure TForm1.FormCreate(Sender: TObject);

var

a : integer;

begin

for a:=1 to 255 do

begin

AlphaBlendValue := AlphaBlendValue + 1;

Application.ProcessMessages;

end;

end;
 

mar_je

Użytkownik
Dołączył
Kwiecień 19, 2007
Posty
74
Originally posted by h4ck3r15
hmm... odgrzewam temat bo nie chce zakladac nowego skoro mam problem prawie że identyczny. różnica w tym że chodzi o pojawienie się formy. dałem kod w oncreate :
Kod:
procedure TForm1.FormCreate(Sender: TObject);

var

a : integer;

begin

for a:=1 to 255 do

begin

AlphaBlendValue := AlphaBlendValue + 1;

Application.ProcessMessages;

end;

end;
Daj w onShow, albo on paint, bo w takim stanie pętla wykonuje się przed pokazaniem formy!
 
Do góry Bottom