Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 8 lis 2024, o 18:02


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 
Autor Wiadomość
PostNapisane: 2 sie 2013, o 21:50 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Jako że dawno nic nie pisałem ot tak postanowiłem pokazać wam jak stworzyć spalsh-a
do swojego programu w Visual C# ...

Zaczynamy jak zawsze tworząc nowy projekt Windows Form Applikation

Obrazek

Klikamy na OK i czekamy aż pojawi nam się Dizajner FORM1 , który nas w sumie nie interesuje tym razem bo nie o nim mówimy:)

Zatem szybko unikając go jak święconego ognia dodajem NEW Form ...

Obrazek

i nazywamy go sobie splasher :P

Obrazek


oraz klikamy na ADD

i teraz troszkę się zabawimy :)

Przede wszystkim przygotowujemy sobie obrazek jakiś z przeźroczystym tłem , który umieszczamy jako background image naszej formy spalsher.cs


Obrazek

co czynimy w Oknie properities naszej Formy --
Opcją Background Image , a następnie powiększamy nieco okienko i dopasowujemy obrazek opcją
Backkground Image Layout - nap wybierając opcję streth. Co widać po prawej naszego obrazka:)

W opcjach Properities wyłączamy też opcje dla naszej Formy:

ControlBox = False
FormBorderStyle = None
i najważniejsza OPCJA

TransparencyKey ustawiamy na Control w zakładce kolorów z palety SYSTEM


Po czym z naszego Toolboxa dodajemy ProgresBAR i Timer do naszej Formy
co wygląda tak:

Obrazek

No poustawialiśmy to teraz cza zaatakować properities Timera

Obrazek

czyli musimy go włączyć :)

Enabled = True
oraz
Interval = 32

następnie klikamy 2 razy na Timerek i gdy pokarze się nam okno kodu wpisujemy w sekcji utworzonej Timera:

czyli w funkcji timer1_Tick

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


o tak :
Obrazek

UPDATE

Jeśli nie wiadomo dlaczego się wam sam splash nie zamyka zmieniamy nieco funkcyjkę timera na:

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


od tej pory zawsze się samo zamknie .... choćby nie wiem co :P

Koniec UPDATE

nio obsługa progresa załatwiona ..

wracamy więc do naszej pierwszej formy :) i tam klikamy na niej 2 razy żeby dostać się do kodu
na początku dodajemy

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


w public Form1() wpisujemy :

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


oraz tworzymy nową funkcję :

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


o tak :)

Obrazek


zapisujemy i możemy skompilować prawda że fajny ??


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 sie 2013, o 22:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 sty 2013
Posty: 74
Lokalizacja: Warszawa
Pomógł: 8

Dosyć fajna sprawa :)
Widzę, że ten C# jest dosyć ciekawy, chyba coś w nim pomajsterkuję :twisted:

_________________
sig off ;( <- Why? :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 09:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

NO jak powiedział tak zrobił:)

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 15:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

To działa tylko na maszynie wirtualnej?

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 15:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

a dlaczego ??
normalnie na windowsach działa

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 17:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 sty 2013
Posty: 74
Lokalizacja: Warszawa
Pomógł: 8

Sun, jest pytanko do Ciebie, a mianowicie, jak zrobić by nasz splash zamyka się automatycznie po zakończeniu ładowania? Pytam, gdyż w chwili obecnej zamyka się tylko po najechaniu kursorem na obrazek lub pasek ładowania ;)

_________________
sig off ;( <- Why? :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 17:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

No właśnie nie wiem co macie z tym .... u mnie sie normalnie wyłącza , może to kwestia frameworków
w każdym razie możesz dopisać

close.this();

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 17:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 sty 2013
Posty: 74
Lokalizacja: Warszawa
Pomógł: 8

Jak odpalam release w VS to normalnie się zamyka, ale przy odpalaniu exe to trzeb najechać na obrazek ;)

_________________
sig off ;( <- Why? :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 22:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 12 paź 2011
Posty: 780
Pomógł: 20

Wątki to to co tygrysy lubią najbardziej :)

Świetny tutek :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2013, o 23:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 01 sie 2012
Posty: 245
Lokalizacja: Kielce
Pomógł: 6

SunRiver napisał(a):
a dlaczego ??
normalnie na windowsach działa

Chodziło mi o to że sprawdzałem na XP i wyskakiwał mi komunikat że muszę mieć .NET Framework (maszyna wirtualna - nawiasem bezczelna podróbka javy) - czyli widzisz, To działa tylko w systemach w których jest zainstalowana implementacja tej platformy.

_________________
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2013, o 00:37 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3204
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 90

No tak, trzeba doinstalować .NET Framework.

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2013, o 08:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

cóż takie są warunki pisania pod .NET
zwyczajowo jest windzie bo dużo oprogramowania z tego korzysta

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2013, o 15:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Dla wszystkich co im sie splash sam nie zamyka ... co jest dziwne mały update w 1 poście .

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2013, o 16:10 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3204
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 90

No widzisz, jak chcesz to potrafisz. :lol:

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2013, o 16:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 sty 2013
Posty: 74
Lokalizacja: Warszawa
Pomógł: 8

Cytuj:
close.this();

Kurna, a teraz w update widzę this.close(); A ja się męczyłem gdzie dać to close.this(); :lol:

_________________
sig off ;( <- Why? :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2013, o 16:30 
Offline
Moderator zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 18 lip 2012
Posty: 3204
Lokalizacja: Kraków - obok FAB5 ATMEL'a
Pomógł: 90

Nie wiesz jak to jest? Zawsze coś namiesza. ;-)

_________________
http://www.jaglarz.info



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sie 2013, o 10:54 
Offline
Użytkownik

Dołączył(a): 05 lut 2013
Posty: 302
Pomógł: 19

No i teraz jest cacy, splasher zamyka sie bardzo ladnie. A przy okazji testowania zaobserwowalem ciekawa rzecz. Okno tam gdzie ma przezroczystosc zachowuje sie jakby go tam nie bylo. Tzn jak sie wyswietla logo i klikne na pixel ktory ma kolor inny niz przezroczystosc to nic sie nie zmienia, ale jak klikne w miejsce przezroczyste to windows traktuje to jakbym kliknal na aplikacje w "tle". Fajny ficzer, ale czy daloby sie tym sterowac, tzn zeby zachowujac przezroczystosc, ustalic okno jako box?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sie 2013, o 11:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Oczywiście że tak
możesz normalnie ustawiać batony i inne

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2013, o 00:10 
Offline
Użytkownik

Dołączył(a): 27 wrz 2013
Posty: 30
Pomógł: 1

SunRiver

Mam taką skomplikowaną hipotezę na temat problemu z nie znikaniem formy (w wersji bez update).

Wydaje mi się, że ma to jakiś związek z tym, że Twój timer w formie Splasher (czy jak jej tam) tworzy sobie nowy wątek.

Application.Run(Form) samo z siebie się nie zakończy w normalnych warunkach, jeżeli Form robi jakieś dodatkowe wątki
(poza debuggerem, który słabo obsługuje wielowątkowość - stąd różnica w działaniu w debuggerze i poza debuggerem).

Ten wątek utworzony przez timer będzie istniał nawet po zatrzymaniu timera i będzie uniemożliwiał zakończenie Application.Run(), aż do czasu:
- wymuszenia zakończenia wątku tworzonego przez timer, o ile w ogóle klasa timer udostępnia taką metodę jako publiczną (nie wiem, nie wnikałem aż tak w timer)
- usunięcia timera z pamięci metodą .Dispose() (wtedy jego wątek zostanie zabity)
- wymuszenia przetworzenia kolejki eventów aplikacji - np. metodą Application.DoEvents (wtedy przy okazji działa też garbage collector który może zabija takie wątki zombie)
- zamknięcia formy do której należy Timer (czyli to, co dodałeś w patchu)

Dobrze kombinuję?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 wrz 2013, o 17:07 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

dobrze kombinujesz , niemniej u mnie znika za każdym razem ... ale co za różnica to tylko przykład :)

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 20 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO