Irgendwie stehe ich im Moment auf dem Schlauch! Kann mir bitte mal jemand sagen, warum mein Fenster beim Aufruf von Fadeout() bei diesem Code nicht verschwindet, sich zwar verschieben aber nicht mehr beenden lässt:
Delphi-Quellcode:
Unit Fading2;
Interface
Uses Forms;
Procedure FadeOut(FadeForm: TForm;
Const dwTime: Integer = 200;
Const Close: Boolean = True);
Implementation
Uses Windows;
Const
Interval = 5;
Procedure FadeOut(FadeForm: TForm;
Const dwTime: Integer = 200;
Const Close: Boolean = True);
Var
Done : Boolean;
Alpha : Double;
Step : Double;
Procedure TimerProc(Wnd:HWnd; Msg, TimerID, dwTime: DWORD);
Stdcall;
Begin
If Done
Then Exit;
Alpha:=Alpha - Step;
If (Alpha < 0)
Then Done:=True
Else FadeForm.AlphaBlendValue:=Round(Alpha);
End;
Var
oldAlpha : Integer;
hTimer : Cardinal;
Begin
Done:= False;
oldAlpha:=FadeForm.AlphaBlendValue;
Alpha:= oldAlpha;
Step:= Alpha / (dwTime / Interval);
SetTimer(0, hTimer, Interval, @TimerProc);
Repeat
Application.ProcessMessages;
Until Done;
KillTimer(0, hTimer);
If Close
Then FadeForm.Close
Else FadeForm.Visible:=False;
FadeForm.AlphaBlendValue:=oldAlpha;
End;
End.
Idee := Brain.Activate(self); bringt bei mir im Moment eine
Exception erster Güte
Guß und Dank, Alex