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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 9 kwi 2025, o 04:14


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 28 gru 2013, o 17:41 
    Offline
    Użytkownik

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

    W sumie to taki ultra mikro poradnik przez kolegę jednego z forum zainspirowany
    bo jak widzę proste sprawy wiele kłopotów potrafią czynić

    Sprawa jest banalnie prosta mianowicie chodzi o to ze w naszym programie
    chcemy tylko raz otworzyć inne okno ... i do puki bedzie ono otwarte
    nie da się otworzyć ....

    Dlaczego ano bo jak sobie damy butona otwierającego okno to ile razy klikniemy tyle się
    otworzy :P

    No to jedziemy :

    Tworzymy nowy projekt nazywamy sobie np One_windows_only
    dodajemy na formie1 buton -> Otwórz okno
    dodajemy pictureBox i wrzucamy jakiś tam obrazek

    o takie coś np:

    Obrazek

    teraz dodajemy 2 nowe Winows form :P
    jedną nazywamy noweOkno , a drugą inneOkno

    Obrazek

    otwieramy każdą z nich i umieszczamy przycisk ZAMKNIJ:

    Obrazek

    teraz klikamy na przycisk Zamknij i wstawiamy w funkcji button_Click linijkę:

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


    pozwoli nam to przyciskiem zamknąć okienko ...

    i wracamy do naszego 1 okna z pictureboxem gdzie klikamy na przycisku otwórz okno
    i w funkcji button_Click wstawiamy kod:

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


    kod jest prosty wiec nie będę go objaśniał , ale to nie wszystko musimy sobie przed naszym przyciskiem zdefiniować licznik:) co robimy taką linijką :

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



    analogicznie postępujemy z pictureBoxem na który klikamy i wstawiamy kod

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



    juz nie definiujemy licznika bo jest :)

    a cały kod powinien wyglądać tak:

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



    od tej pory kliknięcie na klawisz czy też pictureBox spowoduje otwarcie przypisanego mu okna
    ale każde następne klikniecie zamiast otworzyć okienko kolejne tera tylko przeniesie nas na juz otwarte które zamigota i usłyszymy dźwięk :) Rozwiązanie zaproponowane przez kol. developer85 tu opisane przypadło mi do gustu gdyż
    zmienna licznik przydaje się też w różnych innych miejscach programu :)

    to wszystko , flagi okienek to naprawdę prosta sprawa ...

    a tu cały nasz programik żebyście sobie sami sprawdzili jak działa ...
    dodajcie sobie nowe okienko i butonik je otwierający i zobaczcie jak działa bez naszej wstaweczki:)


    Załączniki:

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

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 18:09 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 13 paź 2011
    Posty: 581
    Pomógł: 17

    Dzięki śliczne ;-)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 19:04 
    Offline
    Użytkownik

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

    proszę bardzo :P

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 19:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 wrz 2013
    Posty: 58
    Zbananowany użytkownik

    Pomógł: 10

    A po co ten licznik? nie wystarczy tak:

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 19:28 
    Offline
    Użytkownik

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

    mozna jeszcze krócej , bo przecież tyle wersji ilu programistów prawda :)


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

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 19:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 wrz 2013
    Posty: 58
    Zbananowany użytkownik

    Pomógł: 10

    OK, myślałem że może jakiś szerszy zamysł w tym był :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 19:35 
    Offline
    Użytkownik

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

    Cytuj:
    OK, myślałem że może jakiś szerszy zamysł w tym był


    W kilku miejscach używam jeszcze zmiennej .. do innych celów i nie chciało mi się tworzyć nowej ...
    a tu akurat taki przykład tylko .... bez znaczenia

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 20:03 
    Offline
    Użytkownik
    Avatar użytkownika

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

    Pomógł: 6

    Heh jak się bawić to też tak można:) po kliknięciu na button "Open window" otwiera się nowa forma a button się dezaktywuje :P

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


    a dla formy drugiej w zdarzeniu Form_closing:
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    To tak w 3 minuty.:)


    Autor postu otrzymał pochwałę

    _________________
    Inspekcja TV kanalizacji
    Programowanie



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 gru 2013, o 23:21 
    Offline
    Użytkownik

    Dołączył(a): 16 maja 2012
    Posty: 349
    Lokalizacja: Legnica
    Zbananowany użytkownik

    Pomógł: 23

    Macam się na razie z C# więc nie jestem w stanie podać działającego przykładu, ale podane rozwiązania sprowadzają się do otwarcia okna modalnego, które nie pozwala przenieść sterowania poza takie okno w ramach aplikacji. Do tej pory dłubałem nieco w MiniGUI ( GUI dla Harbour - kompilatora Clipper'a ) gdzie do dyspozycji były różne rodzaje okien i możliwość sprawdzenia po nazwie/identyfikatorze czy dane okno jest już powołane. Mi by się marzyło takie rozwiązanie, które pozwala otworzyć kilka okien różnymi kontrolkami ale bez dubli, tzn, że kontrolki w oknie głównym są zawsze aktywne, ale w momencie jej przyciśnięcia wykonuje się sprawdzenie czy dane okno jest już otwarte. Jeżeli nie to otwiera, jeżeli tak to robi na nim focusa. Okno nie powinno blokować otwierania innych okien innymi kontrolkami. Czy można liczyć na taki przykład w C#?

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 gru 2013, o 00:35 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 23 wrz 2013
    Posty: 58
    Zbananowany użytkownik

    Pomógł: 10

    Cytuj:
    Macam się na razie z C# więc nie jestem w stanie podać działającego przykładu, ale podane rozwiązania sprowadzają się do otwarcia okna modalnego, które nie pozwala przenieść sterowania poza takie okno w ramach aplikacji.


    Pozwolę sobie odpowiedzieć na to pytanie delikatnie modyfikując kod kolegi SunRiver'a
    Wydaje mi się że kod jest na tyle prosty że niema potrzeby nic tłumaczyć, a więc...

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


    Oraz projekt w załączniku


    Autor postu otrzymał pochwałę

    Załączniki:

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 29 gru 2013, o 18:03 
    Offline
    Użytkownik

    Dołączył(a): 16 maja 2012
    Posty: 349
    Lokalizacja: Legnica
    Zbananowany użytkownik

    Pomógł: 23

    Jakże to proste, jak się na to patrzy, a szczególnie jak się doczyta o OpenForms. Jeszcze dużo czytania przede mną. Dzięki :)

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 lut 2014, o 13:50 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 24 lut 2014
    Posty: 16
    Pomógł: 1

    SunRiver napisał(a):
    (new noweOkno()).ShowDialog(this);


    no to się nazywa optymalizacja kolego stosowałam podobne rozwiązanie do
    pokazanego przez kolegę (przez kulturę nie napiszę tego nicku) ale to jest dużo lepsze wyjście
    brawo . Widzę, że kolega z niejednego kompilatora jadł :)

    _________________
    sig off ;(



    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: 12 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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