[C#] [Forms] GIF w oknie programu


(TereskaBro) #1

Witam,

Zrobiłem programik z wypełnianiem kolekcji danymi na dwa sposoby, z wielowątkowością i bez. Chce teraz wcisnąć na główne okno programu animacje, żeby pokazać, że jak wybiorę wypełnianie w wątkach to animacja nadal działa, a jak nie w wątkach to program się "przywiesza" na czas wykonania kodu. Pytanko jest takie, jak tego GIFa umieścić, żeby się ruszał? PictureBox nie odpala GIFów, można ustawić timer i żeby zmieniał ten obrazek co X czasu ale mój GIF ma 30 klatek i nie chcę tego tak robić, słyszałem cos o jakimś Qt ale nie wiem jak to działa, baa nic o tym nie wiem. Będę wdzięczny za pomoc, lub na jakiś lepszy pomysł jak pokaz to "przywieszanie się" programu.

Pozdrawiam TereskaBro


(Infel) #2

Ogolnie  wydaje mi się to zly pomysl na pokazanie, ze program się przywiesi, bo kto normalny wyswietla tak animacje, żeby to zdechlo. Sporoboj rozwinac gifa na jakas dluga bitmapę, stworzyć watek w barckgroundworker i wyswietlac w nim te bitmapę przesunieta o kazda klatke (czyli petla z wyświetleniem z x + offset  i opóźnienie timer.sleep). Tylko pamiętaj, aby zastosować mechanizm InvokeRequired.

 

W net 4.5 lepiej zastosować sync, async. Nie wiem, co ma za zadanie, ale jest ono bez sensu.

 

P.S. Można jeszcze to inaczej zrobić (ale niestety będzie dzialalo): osadzic kontrolke web i podac jej gifa   :smiley:


(Jim1961) #3

A może po prostu, umieść w głównym wątku wyświetlanie aktualnej godziny (z sekundami). Mniej zabawy, a efekt (pokazania że nie zmuliło) osiągnięty :slight_smile:


(TereskaBro) #4

Tomasz, z webem musze obadać, bardzo fajny pomysł jak to wszytsko obejść :slight_smile:

 

Jim, też bardzo fajny pomysł, czy jest jakiś toolsik który za mnie zrobi "zegarek" czy sam musze oprogramować (może mnie nakierujez n biblioteke i metody - chcoiaz penwie jest na mdsnie ale nie moge teraz sprwadzic ;/)

 

Dzięki Panowie :smiley:


(rycerz2000) #5

Co do Qt to raczej bardziej używa się go w C++ niż w C#


(TereskaBro) #6

No to Qt odpada :stuck_out_tongue: Wykorzystałem z zegarkiem. Jak będę miał czas to będe próbował z gifem :slight_smile: Dzieki raz jeszcze :slight_smile: