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? 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 6 cze 2025, o 14:16


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
    Autor Wiadomość
    PostNapisane: 6 cze 2018, o 09:09 
    Offline
    Nowy

    Dołączył(a): 22 lis 2015
    Posty: 8
    Pomógł: 0

    Witam, na początku chciałem zaznaczyć że jestem świeżak jeśli chodzi o programowanie i mam pewien problem, mianowicie:
    w aplikacji mam bardzo dużą ilość przycisków (Buttonów) i jak do tej pory zmieniam ich kolor w taki sposób:

    np: Button_ON.Color=Colors.Green lub Button_ON.Color=Colors.RGB(0,250,0)

    i czy jest możliwość stworzenia Sub tego typu:

    Sub Zmiana_koloru(nazwa_przycisku as String, R as Int, G as Int, B as Int)

    nazwa_przycisku.Color=Colors.RGB(R,G,B)
    End Sub

    nie wiem jak zamienić Stringa na nazwę przycisku



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 09:17 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2014
    Posty: 56
    Pomógł: 4

    nie znam B4A, ale zgaduję, że nazwa_przycisku powinna być typu obiekt, na pewno nie string



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 09:25 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27407
    Lokalizacja: Szczecin
    Pomógł: 1043

    dokładnie - OBIEKT a nie String przekaż jako pierwszy argument funkcji

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 09:31 
    Offline
    Nowy

    Dołączył(a): 22 lis 2015
    Posty: 8
    Pomógł: 0

    szpilek napisał(a):
    nie znam B4A, ale zgaduję, że nazwa_przycisku powinna być typu obiekt, na pewno nie string



    Dziękuję za zainteresowanie,

    jeżeli zrobię tak :

    Sub Zmiana_koloru(nazwa_przycisku as Button , R as Int, G as Int, B as Int) //nazwa_przycisku jako Button

    nazwa_przycisku.Color=Colors.RGB(R,G,B)

    End Sub
    to działa z tym że chodzi mi o to żeby to działało w ten sposób jak np: CallSub("nazwa_funkcji" as String)
    ponieważ dane które odbieram po UDP z ESP8266 są typu string i wygląda to np. tak

    dane as String ="nazwa_przycisku"200,50,10#
    potem to parsuje
    i mam Stringa "nazwa_przycisku" i trzy Inty



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 09:56 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2014
    Posty: 56
    Pomógł: 4

    a to inna bajka
    nie wiem jak jest w visual basicu ale w c# jest funkcja Controls.Find
    musisz szukać czegoś podobnego



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 11:21 
    Offline
    Użytkownik

    Dołączył(a): 10 sty 2018
    Posty: 160
    Pomógł: 11

    Witam
    użyj select case, np. ponumeruj sobie przyciski
    Składnia: [ Pobierz ] [ Ukryj ]
    język vb
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    P.S. To kolejna z opcji ale skoro funkcja twoja działa no to co ty chcesz właściwie zrobić ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 11:57 
    Offline
    Nowy

    Dołączył(a): 22 lis 2015
    Posty: 8
    Pomógł: 0

    Działa jeżeli do funkcji przekazuje argument jako object typu Button

    a ja chciałbym zrobić coś w stylu jak działa Callsub("nazwa funckcji" as String)
    np:
    //funkcje button Click
    Sub ButtonOK_Click

    End Sub

    Sub ButtonUP_Click

    End Sub

    i np poprzez Call sub moge odwołac sie do funkcji w ten sposób:

    dim nazwa_przycisku as String
    Callsub(nazwa_przycisku & "_Click") //to działa


    i chcę zrobic podobną funkcje która jako argument przyjmuje nazwe_przycisku jako String i Inty jako kolory RGB.
    Cały czas kombinuje jak zamienić String na nazwe objektu typu Button(czy coś tego typu)

    to by mi ułatwiło sprawe bo w moim programie mam bardzo dużą ilośc przycisków i w miare rozwoju programu bedą dynamicznie dodawane(mam taka nadzieje)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 12:12 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2014
    Posty: 56
    Pomógł: 4

    spróbuj:

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


    PS. używaj więcej googla, jak sam coś znajdziesz to się szybciej nauczysz:D



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 13:10 
    Offline
    Nowy

    Dołączył(a): 22 lis 2015
    Posty: 8
    Pomógł: 0

    szpilek napisał(a):
    spróbuj:

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


    PS. używaj więcej googla, jak sam coś znajdziesz to się szybciej nauczysz:D


    W VB to na pewno działa natomiast w Basic 4 Android niestety nie.
    W B4A nie ma czegoś takiego jak Me.Controls.Find()
    natomiast jest "Me" ale po "Me." nic sie nie podpowiada

    ale i tak dziękuje za zainteresowanie!!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 14:01 
    Offline
    Użytkownik

    Dołączył(a): 10 sty 2018
    Posty: 160
    Pomógł: 11

    Może spróbuj tego:
    https://www.b4x.com/android/forum/threa ... iew.84501/



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 16:22 
    Offline
    Nowy

    Dołączył(a): 22 lis 2015
    Posty: 8
    Pomógł: 0

    tfosik napisał(a):


    Dziekuje za próby pomocy ale narazie stoje w miejscu



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 16:39 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27407
    Lokalizacja: Szczecin
    Pomógł: 1043

    ozi22 napisał(a):
    ale narazie stoje w miejscu

    Twoja wina - bo dostałeś już podpowiedź od kolegi tfosik ... zastosuj że IFy albo CASE'y i po ptakach ...

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 19:20 
    Offline
    Nowy

    Dołączył(a): 22 lis 2015
    Posty: 8
    Pomógł: 0

    Dziękuję za porady.
    Panie Mirku IFy lub CASEy to by było najłatwiejsze rozwiązanie i na 100% by działało ale pisanie ponad 100 IFów to takie masochistyczne, w ostateczności na tym bym skończył ale znalazłem pewne rozwiązanie mianowicie:
    -każdy Button , Label czy ImageView ma opcję Tag (Button.Tag) tak sie złożyło ze w Designerze przy tworzeniu przycisków w Tagu wpisywałem też jego nazwę i oto ten Tag został wykorzystany do stworzenia funkcji która po tym tagu odwołuje się do danego Butona i zmienia kolor (choć też można sie odwołać do Labela itd)

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



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 19:42 
    Offline
    Użytkownik

    Dołączył(a): 20 sty 2014
    Posty: 56
    Pomógł: 4

    sprytnie, brawo!!



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 6 cze 2018, o 22:34 
    Offline
    Nowy

    Dołączył(a): 22 lis 2015
    Posty: 8
    Pomógł: 0

    Lepszym rozwiązaniem będzie:

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


    Po If v.Tag ==tag Then lepiej dodać
    Dim Button_temp As Button = v
    Button_temp.Color=Colors.RGB(R,G,B)
    ponieważ teraz mamy dostęp do wszystkich właściwości Buttona np

    Button.Text

    w poprzedniej wersji do tego nie było dostępu.



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

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO