Discussion:
Tcl Tutorial 6
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Googie
2006-10-15 20:16:46 UTC
Permalink
Witam,

Właśnie wysłałem na serwer świeżutki (jeszcze chrupiący) tutorial Tcl w
wersji 6.

Zmiany od wersji 5:

Poprawione różne błędy stylistyczne, oraz literówki.,
W operze już nie rozjeżdżają się numery linii,
Dział "mechanizm zdarzen" przeredagowany i zmieniony na "pętla
zdarzeń",
Popoprawiione <a> w stopce wszystkich stron,
Zmieniony sposób prezentacji dodatków w indeksie tutoriala,
Nowy dział: Wyrażenia regularne,
Nowy dział: przydatne narzędzia, linki, itp,
Nowy dodatek: bazy danych.
--
Pozdrawiam (Regards)!
Googie
mk
2006-10-16 10:41:07 UTC
Permalink
Post by Googie
Witam,
Właśnie wysłałem na serwer świeżutki (jeszcze chrupiący) tutorial Tcl w
wersji 6.
Super, dzięki. Acha on-line jest nadal w wersji 5. Zip jest ok, w 6-tej.

pozdr.
mk
Googie
2006-10-16 10:50:40 UTC
Permalink
Post by mk
Super, dzięki. Acha on-line jest nadal w wersji 5. Zip jest ok, w 6-tej.
Jest w 6-tej. Albo przeglądarka Ci trzyma 5 wersję w cachu, albo jakiś
squid po drodze.
--
Pozdrawiam! (Regards!)
Googie
mk
2006-10-16 12:56:15 UTC
Permalink
Post by Googie
Post by mk
Super, dzięki. Acha on-line jest nadal w wersji 5. Zip jest ok, w 6-tej.
Jest w 6-tej. Albo przeglądarka Ci trzyma 5 wersję w cachu, albo jakiś
squid po drodze.
faktycznie, sorki, to z pośpiechu.
pozdr.
mk
Zbigniew B.
2007-01-16 15:58:54 UTC
Permalink
Post by Googie
Właśnie wysłałem na serwer świeżutki (jeszcze chrupiący) tutorial Tcl w
wersji 6.
No, ale... na _który_ serwer? ;) Może faktycznie bywalcom grupy nie trzeba
podawać adresu - ale ja, na ten przykład, nie znam go.


A skoro Kolega taki biegły, że aż tutoriale pisze, to może mógłby pomóc
w takiej kwestii:

Chcę zrobić taki mini-help, polegający na tym, że wskazanie myszą dowolnie
wybranegp menu (bez wybierania go; chodzi o samo "rozwinięcie" i "dotknięcie"
kursorem bez klikania), spowoduje napisanie w innym oknie tekstu typu "co to
jest, i do czego służy".

Problem polega na tym, że mimo usilnych poszukiwań nie widzę możliwości
"przedłużenia ścieżki" tak, aby "dotarła" aż do poszczególnych punktów menu,
tych dodawanych przez "add". Nie ma problemu z dodaniem takiego mini-helpu
do "korzenia" takiego menu - ale co z jego poszczególnymi punktami?

Grzebiąc wczoraj po Sieci znalazłem czyjś stary post, niestety, w wątku
(króciutkim zresztą) nie podano już nie to, że "gotowca", ale nawet
bliższych szczegółów. Jedyne informacje to to, że sprawę należałoby
rozwiązać przez "bind event <<MenuSelect>>" - no, i tu mam właśnie niejaką
zagwozdkę:

- jak wykorzystać ten <<MenuSelect>> ? Jak dodać moją własną procedurę
coś-gdzieś wyświetlającą do łańcucha tych, które zapewne już są do tego
eventu dowiązane?

- no, i jak w tej procedurze rozpoznać, co też zostało właśnie "dotknięte"
kursorem myszy, nie mając możliwości "przedłużenia ścieżki" bezpośrednio
do "menu entry"?
--
Z.
Googie
2007-01-17 09:33:11 UTC
Permalink
Post by Zbigniew B.
No, ale... na _który_ serwer? ;) Może faktycznie bywalcom grupy nie trzeba
podawać adresu - ale ja, na ten przykład, nie znam go.
Heh, no racja :D Ale gafa.
Adres: http://scripts.one.pl/tcltut/
Post by Zbigniew B.
A skoro Kolega taki biegły, że aż tutoriale pisze, to może mógłby pomóc
[...]

Więc wygląda to tak (piszę z głowy, nie testowałem poniższego):

bind .menu <<MenuSelect>> "showHelp"

proc showHelp {} {
set selected [.menu entrycget active -label]
# tutaj cokolwiek chcesz - masz do dyspozycji
# tytul wybranej pozycji z menu w zmiennej selected
}
--
Pozdrawiam! (Regards!)
Googie
Zbigniew B.
2007-01-17 13:48:38 UTC
Permalink
Post by Googie
bind .menu <<MenuSelect>> "showHelp"
proc showHelp {} {
set selected [.menu entrycget active -label]
# tutaj cokolwiek chcesz - masz do dyspozycji
# tytul wybranej pozycji z menu w zmiennej selected
}
Dzięki, to mnie faktycznie "naprowadza" - jest jednak jeszcze (mały chyba?)
problem, dla którego coś ciężko mi znaleźć rozwiązanie.

Otóż w powyższym on wykonuje - zgodnie z sensem "dowiązania" - procedurę
showHelp dla każdego przypadku "MenuSelect". Ale, żeby przejść do "menu
entry", najpierw trzeba je rozwinąć, klikając na widget; i on wtedy zgłasza
błąd, bo dla .menu nie ma ma ani operacji entrycget, ani też opcji -label.

Wstawiłbym tam if-a, który dopuszcza tego set-a (i resztę operacji
w procedurze showHelp) wyłącznie dla "menu entries" - ale jak rozróżnić, nad
czym teraz "prześlizguje się" kursor myszy - czy to jest "menu entry", czy
widget "menu", czy jeszcze coś-tam innego?

Chociaż dla if-a zasadniczo wystarczy mi informacja "akurat jestem nad .menu
entry".
--
Z>
Zbigniew B.
2007-01-17 16:34:21 UTC
Permalink
OK, kierując się podpowiedzią z comp.lang.tcl zrobiłem to w końcu tak:
#v+
bind .menubar.help.menu <<MenuSelect>> {showHelp %W}

proc showHelp {w} {
if { [$w index active] != "none" && [$w index active] > 0 } {
set chosen [.menubar.help.menu entrycget active -label]
.statusBar.lab config -text $helptext($chosen)
} else {
.statusBar.lab config -text ""
}
}
#v-

Co to za zmienna "%W"? Czy jest gdzieś dostępne wyszczególnienie
i szczegółowy opis takich "wewnętrznych"(?) zmiennych?
--
Z.
Zbigniew B.
2007-01-17 17:09:34 UTC
Permalink
OK, jak zwykle "man" - już mam... :]
--
Z.
Zbigniew B.
2007-01-24 13:39:49 UTC
Permalink
Post by Googie
Heh, no racja :D Ale gafa.
Adres: http://scripts.one.pl/tcltut/
Odnoszę wrażenie, że jest drobny błąd - ale akurat w tutorialach każdy błąd
jest istotny z punktu widzenia docelowego odbiorcy, czyli osoby uczącej się:

http://scripts.one.pl/tcltut/tutorial/data/tk/widgets.html

"entry"

#v+
entry .pole -width 30
pack .pole
.pole insert end "Przykładowy wpis"
puts "Zawartość pola edycji: [.pole get 0 end]"
#v-

Ostatni wiersz powinien chyba brzmieć:

puts "Zawartość pola edycji: [.pole get]"
--
Z.
Googie
2007-01-24 13:52:43 UTC
Permalink
Post by Zbigniew B.
puts "Zawartość pola edycji: [.pole get]"
Racja. Poprawię w następnej wersji.
--
Pozdrawiam! (Regards!)
Googie
Zbigniew B.
2007-01-24 16:10:42 UTC
Permalink
Post by Googie
Post by Zbigniew B.
puts "Zawartość pola edycji: [.pole get]"
Racja. Poprawię w następnej wersji.
I jeszcze jedno zauważyłem - akurat poniżej:

#v+
after 15000 {
puts "Tekst po edycji: [.tekst get 0.0 end]"
}
#v-

Powinno chyba być: [.tekst get 1.0 end]

Wprawdzie błędem nie sypie - ale, jeśli chodzi o ścisłość...
--
Z.
Mirosław Kosmala
2007-01-25 13:35:43 UTC
Permalink
Post by Zbigniew B.
Post by Googie
Post by Zbigniew B.
puts "Zawartość pola edycji: [.pole get]"
Racja. Poprawię w następnej wersji.
puts "Tekst po edycji: [.tekst get 0.0 end]"
Powinno chyba być: [.tekst get 1.0 end]
Wprawdzie błędem nie sypie - ale, jeśli chodzi o ścisłość...
Ortógrafy i interpunkcyję też asanowi popraw. Albo jeszcze lepiej
zmobilizuj go do napisania skryptu, który będzie to robił automatycznie we
wszystkich widgetach text - przyda się nam wszystkim ;-))))
--
miroslaw.kosmala(Q)trilowcy.org
Zbigniew B.
2007-01-25 15:23:51 UTC
Permalink
Post by Mirosław Kosmala
Post by Zbigniew B.
Post by Googie
Post by Zbigniew B.
puts "Zawartość pola edycji: [.pole get]"
Racja. Poprawię w następnej wersji.
puts "Tekst po edycji: [.tekst get 0.0 end]"
Powinno chyba być: [.tekst get 1.0 end]
Wprawdzie błędem nie sypie - ale, jeśli chodzi o ścisłość...
Ortógrafy i interpunkcyję też asanowi popraw. Albo jeszcze lepiej
zmobilizuj go do napisania skryptu, który będzie to robił automatycznie we
wszystkich widgetach text
Gdyby chodziło o materiały przeznaczone do nauki ortografii i/lub
interpunkcji - tak, w takim właśnie przypadku nie powinno się w nich
znajdować ani jednego błędu ortograficznego tudzież interpunkcyjnego.

Wydawałoby się, że dla każdego, kto chociaż czasami myśli, winno to być
zrozumiałe, ale... ale nie ma sprawy, w końcu zdaję sobie sprawę, że różni
tu piszą. ;)
Post by Mirosław Kosmala
- przyda się nam wszystkim ;-))))
"Wszystkim"? Niekoniecznie - ja, na ten przykład, czegoś takiego nie
potrzebuję. A Pan Szanowny zdążył skończyć jakąś szkołę? I dalej z tą
ortografią... no cóż, i tak bywa.
--
Z.
Mirosław Kosmala
2007-01-26 07:21:31 UTC
Permalink
Post by Zbigniew B.
"Wszystkim"? Niekoniecznie - ja, na ten przykład, czegoś takiego nie
potrzebuję. A Pan Szanowny zdążył skończyć jakąś szkołę? I dalej z tą
ortografią... no cóż, i tak bywa.
No tak - wiem, że to marne wytłumaczenie, ale same techniczne te moje
szkoły, same techniczne... ;-)
--
miroslaw.kosmala(Q)trilowcy.org
Loading...