Form smooth?



  • Ich hab jetzt folgendes. Klappt ganz gut:

    void __fastcall TForm1::FormShow(TObject *Sender)
    {
       AnimateWindow(Handle, 500, AW_BLEND);
    }
    


  • Cool, ich habs so gelöst:

    packt mal ne trackbar auf eure form und fügt in onchange folgendes ein:

    LONG Beta = GetWindowLong( Handle, GWL_EXSTYLE );
    SetWindowLong( Handle, GWL_EXSTYLE, Beta | WS_EX_LAYERED );
    SetLayeredWindowAttributes( Handle, 0, ( 255 * TrackBar1->Position ) / 100, LWA_ALPHA );

    Trotzdem danke für eure Hilfe!

    Mein problem immernoch ist das es nur unter win2000 und unter winxp geht 😞



  • AnimateWindow()



  • ja, geht das, bei mir in win 98 se reagiert das programm 5 sekunden nicht...



  • Lass das. Sowas brauch eh niemand.



  • Wer braucht das sch*** design von winxp? 😃

    Ja, ich stimme dir zu, das ist schigy miggy, aber schön... 😉

    [ Dieser Beitrag wurde am 20.04.2003 um 20:36 Uhr von Tillmann David editiert. ]



  • Ich hab nochmal ein wenig rumprobiert. Leider gibts bei mir im BCB3 AnimateWindow() noch nicht. Die Funktion musste ich mir also direkt aus der Lib laden. Ich habs jetzt so gemacht:

    // In der Projekt-cpp vor "Application->Run()"
    Application->ShowMainForm = false;
    
    // In der Form-cpp:
    #define AW_BLEND  524288
    typedef BOOL (*PTR_AW) (HWND, DWORD, DWORD);
    
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
       BlendWindow();
       Show();
       Refresh();
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::BlendWindow()
    {
       HMODULE hDll = LoadLibrary("User32.dll");
       if(hDll)
       {
          PTR_AW AnimateWindow = (PTR_AW)GetProcAddress(hDll, TEXT("AnimateWindow"));
    
          if(AnimateWindow)
             AnimateWindow(Handle, 500, AW_BLEND);
          else
             ShowError("No Proc");
    
          FreeLibrary(hDll);
       }
       else
          ShowError("No Lib");
    }
    

    Was auch geil ist, ist AW_CENTER statt AW_BLEND. *g* 😉



  • Gooooooooooooooooooil, genau das hab ich gesucht 100000 thx!

    PS: Ich wusste gar nicht, das es AW_CENTER gibt hab mir das immer mit nem timer selbst gebastelt *grl*

    Tausend Dank!



  • Tausend Bitte! 🙂

    Ich habs bei mir jetzt so gemacht, dass ich das Fenster am Ende wieder ausblende per AW_CENTER | AW_HIDE.

    [ Dieser Beitrag wurde am 20.04.2003 um 21:41 Uhr von WebFritzi editiert. ]



  • 🙂

    Hab auch noch 4 Dinge, die auch ganz lustig sein können:
    AW_HOR_POSITIVE
    AW_HOR_NEGATIVE
    AW_VER_POSITIVE
    AW_VER_NEGATIVE

    : )


Anmelden zum Antworten