Thema: Delphi Erscheinen

Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#17

AW: Erscheinen

  Alt 21. Okt 2010, 14:27
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
Alex Winzer
  Mit Zitat antworten Zitat