Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Ruby/Tk vs zmienne globalne

Ostatnio zmodyfikowano 2017-03-26 15:59
Autor Wiadomość
mac104
Temat założony przez niniejszego użytkownika
Ruby/Tk vs zmienne globalne
» 2017-03-25 17:34:28
Zastanawia mnie czy w bibliotece Tk w Ruby da się zrobić jakiś program pamiętający dane (a nie tylko wyświetlający "Hello World")
bez użycia zmiennych globalnych (ewentualnie statycznych ale to też w zakresie ograniczonym do jednej kontrolki). Pytam się, bo tyle się naczytałem że zmienne globalne są złe. Kontrolki są obsługiwane przez swoje metody, które przyjmują jako argumenty zdarzenia, więc nie da się tam niczego wcisnąć inaczej niż globalnie...
P-159394
mac104
Temat założony przez niniejszego użytkownika
» 2017-03-26 15:59:33
Sam doszedłem do tego że się da i to w bardzo prosty sposób:

require 'tk'
root = TkRoot.new {title "Okno"}
a = nil
button = TkButton.new(root) {
text "Przycisk"
pack
}
button.bind('ButtonRelease-1') {
puts a
}
a = 3
Tk.mainloop
Wyjście konsoli po naciśnięciu "Przycisku":
3
Myślałem że mamy tu deklarację metody 'bind', w której nie można by było używać zewnętrznych zmiennych lokalnych, ale jest to prawdopodobnie wywołanie tej metody z blokiem - i widać że jestem bardziej przyzwyczajony do C niż do Ruby :)
P-159434
« 1 »
  Strona 1 z 1