lechoo Napisano 27 Październik 2003 Napisano 27 Październik 2003 Na poczatek moja wersja skryptu. W tym temacie chodzilo glownie o zapoznanie sie z interfejsem ale przy okazji wyniklo kilka innych ciekawych problemow. utility teapot_util \"Teapot\" ( local my_teapot button create_teapot \"Create teapot\" colorpicker teapot_color \"Teapot Color: \" color:[100,100,255] fieldwidth:50 title:\"Pick Teapot color\" align:#right enabled:false spinner teapot_radius \"Teapot size: \" type:#float range:[0,200,30] fieldwidth:40 enabled:false align:#right slider teapot_segments \"Segments\" type:#integer range:[1,20,5] enabled:false group \"Teapot Parts\" ( checkbox teapot_body \"Body\" checked:true across:2 enabled:false checkbox teapot_handle \"Handle\" checked:true across:1 enabled:false checkbox teapot_spout \"Spout\" checked:true across:2 enabled:false checkbox teapot_lid \"Lid\" checked:false across:1 enabled:false ) button delete_teapot \"Delete Teapot\" on create_teapot pressed do ( my_teapot = teapot() my_teapot.wirecolor = teapot_color.color my_teapot.radius = teapot_radius.value my_teapot.segments = teapot_segments.value my_teapot.body = teapot_body.checked my_teapot.handle = teapot_handle.checked my_teapot.spout = teapot_spout.checked my_teapot.lid = teapot_lid.checked teapot_color.enabled = true teapot_radius.enabled = true teapot_segments.enabled = true teapot_body.enabled = true teapot_handle.enabled = true teapot_spout.enabled = true teapot_lid.enabled = true ) on teapot_color changed val do my_teapot.wirecolor = val on teapot_radius changed val do my_teapot.radius = val on teapot_segments changed val do my_teapot.segments = val on teapot_body changed val do my_teapot.body = val on teapot_handle changed val do my_teapot.handle = val on teapot_spout changed val do my_teapot.spout = val on teapot_lid changed val do my_teapot.lid = val on delete_teapot pressed do ( teapot_color.enabled = false teapot_radius.enabled = false teapot_segments.enabled = false teapot_body.enabled = false teapot_handle.enabled = false teapot_spout.enabled = false teapot_lid.enabled = false delete my_teapot ) ) Co nowego? Przedewszystkim elementy interfejsu. Moze krotkie omowienie na przykladzie spinnera. spinner teapot_radius \"Teapot size: \" type:#float range:[0,200,30] fieldwidth:40 enabled:false align:#right spinner - typ kontrolki (moze tez byc button, slider, checkbox itd) teapot_radius - nazwa kontrolki przez ktora bedziemy sie potem do niej odwolywac. Odradzam uzywanie tu nazw typu spiner1 czy spiner2, kiedy jest ich kilkabardzo latwo wszystko pokrecic. \"Teapot size: \" - tekst ktory pojawi sie przy spinerze w menu type:#float - rodzaj liczb ktore beda wyswietlane w spinerze. Tutaj liczby rzeczywiste (pozatym sa tez #integer czyli liczby calkowite i #worldunits czyli maxowe unity) range:[0,200,30] - zakres liczb wyswietalnych w okienku spinera [min,max,wartosc_domyslna] fieldwidth:40 - szerokosc pola spinera enabled:false - ta wlasciwosc okresla czy element bedzie wlaczony align:#right - i na koniec wyrownanie do lewej Jak pewnie zauwarzyliscie czesc parametrow, jak np. enabled czy align jest wspolna dla wszystkich elementow interfejsu. Z przydatniejszych warto wspomniec tez o offset ktory ustawia dokladnie konkretny element. Jesli nasz button jest za wysoko wystarczy dodac offset:[0,-10] aby przesunac go o 10 pikseli w dol. Innym przydatnym parametrem jest across ktory umozliwia ustawianie elementow obok siebie. button guzik1 \"Opcja 1\" button guzik2 \"Opcja 2\" button guzik3 \"Opcja 3\" Tak zdefiniowane przyciski beda umieszczone jeden pod drugim. Drobna modyfikacja pozwala umiescic je obok siebie. button guzik1 \"Opcja 1\" across:3 button guzik2 \"Opcja 2\" across:2 button guzik3 \"Opcja 3\" across:1
lechoo Napisano 27 Październik 2003 Autor Napisano 27 Październik 2003 Autor: Bart Utility czajnik \"Czajnik\" ( local pot label l1 \"\" button tea \"Create Teapot\" label l2 \"\" colorpicker Pik \"Wire color:\" color:[0,0,255] enabled:false label l3 \"\" group \"Teapot parts\" ( checkbox Body \"Body\" checked:true enabled:false checkbox Handle \"Handle\" checked:true enabled:false checkbox Spout \"Spout\" checked:true enabled:false checkbox Lid \"Lid\" checked:true enabled:false ) group \"Parameters\" ( spinner Rad \"Radius \" range:[10,100,40]align:#left enabled:false slider Seg \"Segments \" range:[4,20,6] type:#integer enabled:false ) button del_pot \"Delete Teapot\" enabled:false on Pik changed kolor do ( pot.wirecolor = kolor ) on Body changed arg do ( pot.body=arg ) on Handle changed arg do ( pot.handle=arg ) on Spout changed arg do ( pot.spout=arg ) on Lid changed arg do ( pot.lid=arg ) on tea pressed do ( pot=teapot radius:40 segments:6 pot.wirecolor=[0,0,255] tea.enabled=false pik.enabled=true Body.enabled=true Handle.enabled=true Spout.enabled=true Lid.enabled=true Rad.enabled=true Seg.enabled=true del_pot.enabled=true ) on del_pot pressed do ( select pot delete selection Body.checked=true -- ponowne zaznaczenie wszystkich checkboxow Handle.checked=true Spout.checked=true Lid.checked=true Pik.color=[0,0,255] -- ustawienie colorpikera na defoultowy Rad.value=40 -- ustawienie spinnera i slidera na wart. defoultowe Seg.value=6 tea.enabled=true pik.enabled=false Body.enabled=false Handle.enabled=false Spout.enabled=false Lid.enabled=false Rad.enabled=false Seg.enabled=false del_pot.enabled=false ) on seg changed value do ( pot.segs=Seg.value ) on rad changed value do ( pot.radius=Rad.value ) )--End utility W temacie chcialem zebyscie zmieniali parametry czajniczka w momencie zmieniania ustawien w interfejsie. Dla wiekszosci elementow interfejsu robi sie to w ten sam sposob. on nazwa_elementu changed nowa_wartosc do ( --jakis kod np. jakis_parametr = nowa_wartosc ) Zasada dzialania jest bardzo prosta. W monencie zmiany ustawienia, wartosci kontrolki wykonywany jest kod pomiedzy nawiasami a wlasnie wprowadzona wartosc jest umieszczana w zmiennej nowa_wartosc. Jesli naszym elementem jest spiner bedzie tam liczba, jesli colorpicker bedzie to kolor a jesli checkbox nowa_wartosc bedzie mogla byc true lub false. W przypadku buttona nic nie jest przekazywane, wykonywany jest jedynie kod. Jedyne do czego moglbym sie \"przyczepic\" w tym skrypcie to sposob okreslenie parametrow czajniczka w momencie jego tworzenia. Eleganciej byloby zamiast pot.wirecolor=[0,0,255] pisac pot.wirecolor = Pik.color czyli od razu inicjalizowac wartoscia a interfejsu.
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 Autor: Bartłomiej Cysewski utility Bart \"Temat 2\" ( --definicja elementów interfejsu button b1 \"Stwórz\" colorpicker b2 \"Kolor siatki\" spinner b3 \"Rozmiar\" range:[1,100,25] type:#integer slider b4 \"Szczegółowość siatki\" range:[3,20,4] checkbox c1 \"Dziobek\" checkbox c2 \"Pokrywka\" checkbox c3 \"Uchwyt\" checkbox c4 \"Korpus\" button b5 \"Usuń\" --tworzenie teapot\'a on b1 pressed do ( tea = teapot() ) --zmiana koloru siatki on b2 changed col do ( tea.wirecolor = col ) --zmiana rozmiaru teapot\'a on b3 changed rad do ( tea.radius = rad ) --zmiana gęstości siatki on b4 changed seg do ( tea.segs = seg ) --ukrycie dzióbka on c1 changed a1 do ( tea.spout = not tea.spout ) --ukrycie pokrywki on c2 changed a2 do ( tea.lid = not tea.lid ) --ukrycie uchwytu on c3 changed a3 do ( tea.handle = not tea.handle ) --ukrycie korpusu on c4 changed a4 do ( tea.body = not tea.body ) --usunięcie teapot\'a on b5 pressed do ( delete $teapot01 ) ) --koniec utility Tutaj pojawia sie problem ktory mialem z chyba polowa skryptow. Jesli spojrzycie na poprzedni skrypt zauwarzycie deklaracje w trzeciej linijce local pot Dzieki temu zmienna pot jest widoczna w calym skrypcie, natomiast tutaj zmienna tea czyli ta w ktorej przechowywany jest teapot jest widoczna tylko w zdarzeniu on b1 pressed do Efekt jest taki ze w momencie kiedy proboje zmienic jakis parametr script sie wywala bo w zdarzeniu np. on c3 changed a3 do ( tea.handle = not tea.handle ) nie ma deklaracji tej zmiennej i nie jest ona tu znana. Podejrzewam ze czesc z Was mogla pisac w maxie 3 gdzie wszystkie zmienne byly deklarowane domyslnie jako globalne i wtedy nie ma takiego problemu. Natomiast w maxie 4 i 5 zmienne domyslnie ustawiane sa na lokalne. Kiedy przesiadlem sie na maxa 4 nie wiedzialem o tym i mialem spore problemy bo nic mi nagle nie dzialalo. Musze jeszcze wspomniec o kasowaniu teapota on b5 pressed do ( delete $teapot01 ) Jak widac odwolanie do obiektu nastepuje przez jego nazwe, moze to rodzic problemy jesli w scenie juz byl inny czajnik o takiej samej nazwie.
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 Autor: BooM-Bel utility bmb \"BooM-Bel\" ( button tp \"czajniczek\" -- tworzenie czajniczka colorpicker wctp \"kolor\" color:[125,125,125] enabled:false-- określenie koloru siatki spinner rtp \"romiar\" range:[1,50,10] type:#integer enabled:false-- wielkość czajniczka slider stp \"siatka\" range:[1,12,6] type:#integer enabled:false-- szczegółowość siatki Group \"ukryj czesci dzbanka\" -- ukrywanie elementów ( checkbox cb1 \"przykrywka\" enabled:false checked:true-- przykrywka checkbox cb2 \"dziubek\" enabled:false checked:true-- dziubek checkbox cb3 \"uszko\" enabled:false checked:true-- uszko checkbox cb4 \"dzbanuszek\" enabled:false checked:true-- cały dzbanuszek ) button ktp \"kasuj\" enabled:false-- kasowanie czajniczka on tp pressed do --tworzenie dzbanka i udostępnianie pozostałych funkcjii ( tpo = teapot radius:rtp.value tpo.name = \"dzbanuszek\" tpo.wirecolor = wctp.color tpo.segs = stp.value wctp.enabled=true rtp.enabled=true stp.enabled=true cb1.enabled=true cb2.enabled=true cb3.enabled=true cb4.enabled=true ktp.enabled=true ) on wctp changed new_col do -- określenie koloru siatki ( tpo.wirecolor = wctp.color ) on rtp changed value do-- wielkość czajniczka ( tpo.radius=value ) on stp changed value do-- szczegółowość siatki ( tpo.segs=value ) on cb1 changed false do-- ukrywanie przykrywka ( tpo.lid=false ) on cb1 changed true do-- pokazywanie przykrywka ( tpo.lid=true ) on cb2 changed false do-- ukrywanie dziubek ( tpo.spout=false ) on cb2 changed true do-- pokazywanie dziubek ( tpo.spout=true ) on cb3 changed false do-- ukrywanie uszka- ( tpo.handle=false ) on cb3 changed true do-- pokazywanie uszka ( tpo.handle=true ) on cb4 changed false do-- ukrywanie dzbanka ( tpo.body=false ) on cb4 changed true do-- pokazywanie dzbanka ( tpo.body=true ) on ktp pressed do --kasowanie dzbanka i ukrywanie pozostałych funkcjii ( delete tpo wctp.enabled=false rtp.enabled=false stp.enabled=false cb1.enabled=false cb2.enabled=false cb3.enabled=false cb4.enabled=false ktp.enabled=false ) ) Jedyny problem to brak deklaracji zmiennej o ktorej pisalem post wczesniej. Dajcie znac ktorej wersji maxa uzywacie, ja mam 5.0 i u mnie bez tej deklaracji niestety nie chodzilo.
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 Autor: leander utility czajnik \"Czajnik Manager v1.0\" ( button stworz \"Stwórz\" align:#left across:2 tooltip:\"Stwórz czajnik\" button skasuj \"Skasuj\" align:#right enabled:false tooltip:\"Skasuj czajnik\" spinner rozmiar \"Rozmiar:\" range:[0,100,25] type:#float enabled:false slider siatka \"Szczegolowosc siatki:\" range:[0,15,5] type:#integer enabled:false ticks:15 checkbox pokrywka \"Pokrywka\" enabled:false checked:true checkbox dziobek \"Dzióbek\" enabled:false checked:true checkbox uchwyt \"Uchwyt\" enabled:false checked:true checkbox korpus \"Korpus\" enabled:false checked:true on stworz pressed do ( myCZAJNIK = teapot() skasuj.enabled = true rozmiar.enabled = true siatka.enabled = true pokrywka.enabled = true dziobek.enabled = true uchwyt.enabled = true korpus.enabled = true ) on rozmiar changed val do myCZAJNIK.radius = val on siatka changed val do myCZAJNIK.segs = val on pokrywka changed STATUS do ( if STATUS == false then myCZAJNIK.lid = false else myCZAJNIK.lid = true ) on dziobek changed STATUS do ( if STATUS == false then myCZAJNIK.spout = false else myCZAJNIK.spout = true ) on uchwyt changed STATUS do ( if STATUS == false then myCZAJNIK.handle = false else myCZAJNIK.handle = true ) on korpus changed STATUS do ( if STATUS == false then myCZAJNIK.body = false else myCZAJNIK.body = true ) on skasuj pressed do ( delete(myCZAJNIK) -- \"zerowanie\" zmniennych: skasuj.enabled = false rozmiar.enabled = false siatka.enabled = false rozmiar.value = 25 siatka.value = 5 pokrywka.enabled = false dziobek.enabled = false uchwyt.enabled = false korpus.enabled = false pokrywka.state = true dziobek.state = true uchwyt.state = true korpus.state = true ) ) Poza brakiem deklaracji zmiennej przechowujacej tepot wszystko OK. Zwrocilem uwage na sposob ustawiania widocznosci poszczegolnych elementow czjniczka. on korpus changed STATUS do ( if STATUS == false then myCZAJNIK.body = false else myCZAJNIK.body = true ) Mozna duzo prosciej, przeciez w zmiennej STATUS jest juz potrzebna Ci wartosc. on korpus changed STATUS do CZAJNIK.body = STATUS
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 Autor: Sypo utility skrypt \"Zadanko\" ( local pot rollout cre \"Create\" ( group \"Temat 2\" ( button tea \"Teapot\" width:45 height:20 button closet \"Close Teapot\" enabled:false offset:[1,5] spinner rad \"Radius: \" range:[1,50,20] width:80 height:25 enabled:false offset:[23,25] type:#float slider seg \"Segments: \" range:[4,32,12] enabled:false type:#integer colorpicker kol \"Kolor: \" color:[77,110,141] width:80 height:20 enabled:false offset:[13,5] ) group \"Fragmenty\" ( checkbox bod \"Body\" checked:true enabled:false checkbox han \"Handle\" checked:true enabled:false checkbox spo \"Spout\" checked:true enabled:false checkbox lid \"Lid\" checked:true enabled:false ) on tea pressed do ( pot = Teapot radius:20 pot.segs = seg.value pot.wirecolor = kol.color pot.name = \"Czaj\" closet.enabled = not closet.enabled rad.enabled = not rad.enabled seg.enabled = not seg.enabled kol.enabled = not kol.enabled bod.enabled = not bod.enabled han.enabled = not han.enabled spo.enabled = not spo.enabled lid.enabled = not lid.enabled ) on closet pressed do ( delete pot closet.enabled = not closet.enabled rad.value = 20 rad.enabled = not rad.enabled seg.enabled = not seg.enabled kol.enabled = not kol.enabled bod.enabled = not bod.enabled bod.checked = on han.enabled = not han.enabled han.checked = on spo.enabled = not spo.enabled spo.checked = on lid.enabled = not lid.enabled lid.checked = on ) on rad changed value do pot.radius=rad.value on seg changed value do pot.segs = seg.value on kol changed new_col do pot.wirecolor = kol.color on bod changed new_checked do pot.body = bod.checked on han changed new_checked do pot.handle = han.checked on spo changed new_checked do pot.spout = spo.checked on lid changed new_checked do pot.lid = lid.checked ) on skrypt open do ( addRollout cre ) on skrypt close do ( removeRollout cre ) ) Wszystko w najlepszym porzadku. Zwroccie uwage na tworzenie wlasnego rolloutu i zdarzenia on skrypt open do on skrypt close do ktore pozwalaja przygotowac sobie jakies dane i posprzatac po sobie gdy skrypt jest zamykany.
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 Autor: VGTsXVII utility opcje \"VGTsXVII_Teapot\" ( global obiekt button przycisk01 \"Create\" colorpicker kolor \"Wire color:\" color:[255,255,255] align:#center enabled:false on kolor changed new_col do selection.wirecolor = new_col spinner wielkosc \"Wielkosc:\" range:[0,100,10] align:#center fieldwidth:25 type:#integer enabled:false on wielkosc changed val do selection.radius = val slider gestosc \"podzial:\" range:[1,32,4] ticks:16 align:#center enabled:false on gestosc changed val do obiekt.segs = val checkbox box1 \"pokrywka\" offset:[20,0] enabled:false checked:true on box1 changed val do obiekt.lid=val checkbox box2 \"dziobek\" offset:[20,0] enabled:false checked:true on box2 changed val do obiekt.spout=val checkbox box3 \"uchwyt\" offset:[20,0] enabled:false checked:true on box3 changed val do obiekt.handle=val checkbox box4 \"korpus\" offset:[20,0] enabled:false checked:true on box4 changed val do obiekt.body=val button przycisk02 \"Delete\" enabled:false on przycisk01 pressed do ( obiekt=teapot() obiekt.wirecolor=[255,255,255] obiekt.radius=10 obiekt.segs=4 select(obiekt) kolor.enabled=true wielkosc.enabled=true gestosc.enabled=true box1.enabled=true box2.enabled=true box3.enabled=true box4.enabled=true przycisk02.enabled=true ) on przycisk02 pressed do ( delete(obiekt) kolor.color=[255,255,255] kolor.enabled=false wielkosc.value=10 wielkosc.enabled=false gestosc.value=4 gestosc.enabled=false box1.checked=true box1.enabled=false box2.checked=true box2.enabled=false box3.checked=true box3.enabled=false box4.checked=true box4.enabled=false przycisk02.enabled=false ) Wszystko w porzadku. Tym razem obiekt zostal zadeklarowany jako globalny. Roznica polega na tym ze wtedy jest widziany tez przez inne skrypty, co pozwalaloby np. wymieniac im dane. Az sie prosi o jakies zadanie na ten temat :D
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 Autor: Warui utility czajnik_uti \"Czajnik (Kurs MAX Script 2)\" ( button utwoz \"Utworz Czajnik\" enabled:true group \"Parametry\" ( colorpicker kolor \"Kolor:\" color:(random black white) enabled:false align:#center width:90 spinner rozmiar \"Rozmiar:\" range:[0,100,20] type:#worldunits fieldwidth:40 enabled:false align:#center slider segmenty \"Segmantacja:\" range:[0,15,4] type:#integer enabled:false align:#center label lab1 \"Pokaz:\" align:#left enabled:false checkbox pokrywka \"Pokrywka\" checked:true across:2 enabled:false checkbox ucho \"Ucho\" checked:true offset:[10,0] enabled:false checkbox dziobek \"Dziobek\" checked:true across:2 enabled:false checkbox korpus \"Korpus\" checked:true offset:[10,0] enabled:false ) button skasuj \"Skasuj Czajnik\" enabled:false group \"O skrypcie\" ( label lab2 \"\"Czajnik\" by Warui\" label lab3 \"© 2003\" ) rollout ustawienia \"Ustawienia\" ( label lab4 \"Pozycja czajnika:\" align:#left spinner x \"x:\" range:[-1000,1000,0] type:#worldunits fieldwidth:40 align:#left across:3 spinner y \"y:\" range:[-1000,1000,0] type:#worldunits fieldwidth:40 align:#center spinner z \"z:\" range:[-1000,1000,0] type:#worldunits fieldwidth:40 align:#right button ok \"OK\" width:100 on ok pressed do ( czajnik = teapot radius:20 segs:4 wirecolor:kolor.color pos:[x.value,y.value,z.value] destroydialog ustawienia; ) ) function zmien_dostepnosc = ( utwoz.enabled = not utwoz.enabled skasuj.enabled = not skasuj.enabled kolor.enabled = not kolor.enabled rozmiar.enabled = not rozmiar.enabled segmenty.enabled = not segmenty.enabled lab1.enabled = not lab1.enabled pokrywka.enabled = not pokrywka.enabled ucho.enabled = not ucho.enabled dziobek.enabled = not dziobek.enabled korpus.enabled = not korpus.enabled ) on utwoz pressed do ( zmien_dostepnosc() createdialog ustawienia modal:true width:250 ) on skasuj pressed do ( zmien_dostepnosc() if(isvalidnode czajnik) then delete czajnik -- resetujemy do ustawien poczatkowych kolor.color = (random black white) rozmiar.value = 20 segmenty.value = 4 pokrywka.checked = true ucho.checked = true dziobek.checked = true korpus.checked = true ) on kolor changed nowy_kolor do czajnik.wirecolor = nowy_kolor on rozmiar changed nowy_rozmiar do czajnik.radius = nowy_rozmiar on segmenty changed nowa_segmentacja do czajnik.segs = nowa_segmentacja on pokrywka changed zmiana_pokrywki do czajnik.lid = zmiana_pokrywki on ucho changed zmiana_ucha do czajnik.handle = zmiana_ucha on dziobek changed zmiana_dziobka do czajnik.spout = zmiana_dziobka on korpus changed zmiana_korpusu do czajnik.body = zmiana_korpusu ) Chyba najciekawszy skrypt. Brak deklaracji zmiennej ale zwroccie uwage na dwie rzeczy: - funkcje createdialog ktora powoduje wyswietlenie wczesniej zdefiniowanego rolloutu jako osobnego okienka - sposob kasowania czajniczka if(isvalidnode czajnik) then delete czajnik Wlasciwie zawsze powinno sie tak robic. Funkcja IsValidNode sprawdza czy rzeczywiscie czajnik istnieje i dopiero wtedy mozliwe jest jego skasowanie. Bez tego zabezpieczenia skrypt wysypalby sie gdybym skasowal teapota klawiszem Del a potem probowal zrobic to jeszcze raz skryptem.
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 I drugi temat za nami :) Temat wydaje mi sie dosc prosty choc czesc osob twierdzila przeciwnie, moze to wyjasnia slabsza frekwencje. Musze dobrze przemyslec nastepny , tak zeby byl lepiej wywazony. Do piatku wrzuce go na forum. Swoja droga ciekawe czy ustanowilem jakis rekord w dlugosci pojedynczego posta :)
VGT Napisano 28 Październik 2003 Napisano 28 Październik 2003 Rekordy długości to dopiero będą jak pojawią się jeszcze bardziej złożone zadanka. :D Frekwencja nieco podupadła, ale oby wyjątkowo, bo ponownie od samych uczestników wychodzą nowe i całkiem ciekawe rzeczy. W połączeniu z opisem ich działania daje to bardzo dobrze przyswajalną wiedzę.
lechoo Napisano 28 Październik 2003 Autor Napisano 28 Październik 2003 Ponizej link do zipa ze skryptami z tego tematu. tematy02.zip
Sypo Napisano 28 Październik 2003 Napisano 28 Październik 2003 Oj aż mi się gęba ucieszyła jak zobaczyłem skrypt Warui :) W momencie kasowania teapot\'a na klawiaturze cały skrypt mi wariował a tu taka niespodzianka!! A ja już zacząłem z tego wszystkiego o callbackach czytać:)
warui Napisano 29 Październik 2003 Napisano 29 Październik 2003 Originally posted by lechoo Brak deklaracji zmiennej Jak gadalismy na gg, to prosiłem Cię zebyś to dopisał ;)
lechoo Napisano 29 Październik 2003 Autor Napisano 29 Październik 2003 Faktycznie. Moj blad :( Nastepnym razem postaram sie oceniac skrypty na bierzaco jak przychodza (oczywiscie u siebie lokalnie, nie na forum), a nie wszystko na koniec, wtedy nie bedzie takich wpadek.
adek Napisano 2 Listopad 2003 Napisano 2 Listopad 2003 Świetna robota Adam to podsumowanie ... Aby zwiększyć frekwencję postaram się zamieścić newsa na głównej stronie .... może to coś da :)
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się