CanDo ----- MAîY KONSTRUKTOR Tak zwane programy multimedialne sâ bardzo mocnâ stronâ Amigi. Wîaôciwie kaûdy produkt z tej grupy wnosi coô nowego, ma pewne unikalne, wczeôniej nie spotykane, moûliwoôci. Jednym z tego rodzaju programów, odbiegajâcych w znacznym stopniu od ustalonych przez Scalë standardów, jest CanDo. Jarosîaw Horodecki Pod koniec 1994 roku ukazaîa sië nowa, znacznie rozbudowana, wersja tego doskonaîego programu. Dodano wiele ciekawych opcji, znacznie poszerzajâcych jego moûliwoôci. Zostaîy równieû zlikwidowane bîëdy, przez które CanDo miaîo pewne tendencje do wyôwietlania czerwonej migajâcej ramki na czarnym tle. Jak juû wspomniaîem, CanDo nie jest typowym programem multimedialnym. Jest to coô poôredniego pomiëdzy programami w rodzaju Scali czy Media Point, a programami sîuûâcymi do prostego tworzenia wîasnych aplikacji systemowych. Najbliûszy CanDo jest z pewnoôciâ opisywany rownieû w tym numerze Helm. CanDo jest programem najbardziej skomplikowanym z caîej opisywanej w tym numerze rodziny programów multimedialnych. Nie chodzi tu jednak o liczbë dostëpnych opcji, choê jest ona imponujâca, ale o wymaganâ wiëdzë koniecznâ do efektywnej obsîugi tego programu. Nie wszystko da sië bowiem osiâgnâê jedynie poprzez wybieranie róûnych gadûetów i ustawianie opcji w otwierajâcych sië okienkach. W CanDo bardzo waûnâ rolë odgrywa jego wewnëtrzny jëzyk, za pomocâ którego tworzone sâ poszczególne strony projektu, wykonywane wszelkie moûliwe dziaîania programu, wywoîywana duûa czëôê jego funkcji. Znajomoôê tego jëzyka jest wiëc wîaôciwie konieczna do stworzenia ambitniejszych aplikacji. Sytuacji takiej nie byîo w wypadku Scali, która równieû ma wîasny jëzyk, ale jego znajomoôê nie jest absolutnie konieczna. W Helmie takûe wewnëtrzny jëzyk nie byî aû tak waûny, choê bez jego znajomoôci nie byîo moûliwe peîne wykorzystanie jego moûliwoôci. Jak wiëc widaê, CanDo jest pod tym wzglëdem niejako wyjâtkiem. Oczywiôcie czëôê operacji jest wykonywana nie poprzez wpisywanie kolejnych komend, ale po prostu z wykorzystaniem gadûetów oraz rozwijanych menu. Gîówny ekran CanDo to wîaônie zestaw gadûetów z rysunkami symbolizujâcymi ich znaczenie, dodatkowo kaûdy gadûet jest jednak odpowiednio podpisany. Dziëki temu nigdy nie ma wâtpliwoôci, czego moûna oczekiwaê po klikniëciu myszâ w danym miejscu ekranu. Doskonaîym rozwiâzaniem jest to, iû gadûety symbolizujâce poszczególne funkcje programu, a znajdujâce sië na jego gîównym ekranie, moûna w dowolny sposób przestawiaê, dostosowujâc ich ustawienie do wîasnych potrzeb. Do najwaûniejszych funkcji dostëpnych na gîównym ekranie z pewnoôciâ naleûy edycja poszczególnych stron aplikacji (w CanDo strony te nazwano "card", co po polsku znaczy dosîownie "karty" i nie jest chyba najlepszym tîumaczeniem) oraz ustawianie parametrów danego okna. Strona to jakby pojedynczy krok danej aplikacji. Do kaûdej ze stron w CanDo przypisany jest okran lub okno, umieszczone na jednym z ekranów publicznych. W ustawianiu parametrów przypisanego do danej strony ekranu bâdú okna jest caîkowita dowolnoôê. Moûna ustaliê rozdzielczoôê ekranu, a okno otworzyê na jednym z ekranów publicznych, dostëpnych w systemie. Utworzone okno lub ekran moûe mieê równieû róûne standardowe elementy, jak ramka, odpowiednie gadûety do jego przesuwania, zamykania, skalowania, pomniejszania oraz przekîadania. Kaûdy z tych elementów moûe byê przypisany danej stronie. Oczywiôcie moûliwe jest takûe dowolne zdefiniowanie standardowego kroju czcionki oraz palety kolorów. Jako podkîad moûna równieû wczytaê obrazek, który wypeîni caîe tîo ekranu bâdú okna. Dodatkowo moûna równieû skorzystaê z kilku bardzo prostych efektów pojawiania sië ekranów lub okien z uûytym jako tîo obrazkiem. Oczywiôcie moûliwoôê otwierania okienek i ekranów nie jest najwaûniejszâ cechâ CanDo. Kaûdej ze stron przyporzâdkowaê moûna równieû wiele róûnych elementów, dziëki którym da sië tworzyê nie tylko proste projekty, ale równieû nawet bardzo skoplikowane programy. Do dyspozycji sâ wiëc zwykîe przyciski, które jednak moûna w dowolny sposób dostosowaê do wîasnych potrzeb. Moûliwe jest dowolne ustawienie wielkoôci oraz pozycji danego przycisku, okreôlenie jednego z kilku rodzajów ramki. W tworzonym gadûecie moûna równieû umieôciê dowolny brush, a takûe opisaê go, umieszczajâc dowolny napis w jednym z moûliwych do wyboru miejsc. Oprócz gadûetów na ekranie moûemy umieszczaê równieû róûnego rodzaju suwaki -- sîuûace do wyboru jakiejô wartoôci, pola alfanumeryczne oraz numeryczne -- do wpisywania tekstów lub liczb, pola tekstowe wyposaûone w suwaki lub strzaîki -- przeznaczone do wyôwietlania tekstów. Moûliwe jest oczywiôcie równieû wyôwietlanie dowolnych tekstów bezpoôrednio w zdefiniowanym oknie bâdú na ekranie. Przydatnym dodatkiem jest jeszcze moûliwoôê zdefiniowania dowolnej, a wîaôciwie limitowanej wielkoôciâ ekranu, liczby rozwijanych menu. Dziëki temu moûna znacznie wzbogadziê liczbë opcji dostëpnych z poziomu danego ekranu, jednoczeônie nie powodujâc niepotrzebnego zaômiecania go wieloma róûnymi gadûetami. Kolejny rodzaj opcji, jakie da sië przypisaê danej stronie, moûna nazwaê funkcjami sterujâcymi pracâ danego projektu. Bezpoôrednie dziaîanie tych narzëdzi nie jest widoczne na ekranie, tak jak na przykîad znajdujâcy sië na nim gadûet czy pole tekstowe. Niemniej jednak funkcje te speîniajâ szalenie waûnâ funkcjë. Dwie z nich umoûliwiajâ analizowanie danych nadchodzâcych z klawiatury, myszy oraz joysticka oraz, w razie wykrycia okreôlonych sekwencji, uruchomienie wczeôniej okreôlonego programu. Bardzo przydatnâ opcjâ sterujâcâ jest takûe moûliwoôê skorzystania z zegara. Dziëki niej moûna okreôlone programy wywoîywaê o wyznaczonej godzinie lub po upîyniëciu okreôlonego czasu. Moûna równieû wstrzymaê dziaîanie danej aplikacji na pewien czas. Kolejne dwie funkcje mogâ natomiast w znacznym stopniu uîatwiê dokîadne zgranie animacji lub muzyki z tym, co ma sië dziaê na ekranie. Dziëki tym komendom okreôla sië pewne czynnoôci, jakie majâ byê wykonane w okreôlonych momentach pokazywania animacji lub teû odtwarzania muzyki. Sâ takûe dwie opcje przeznaczone dla ludzi lepiej obeznanych ze ôrodowiskiem systemu Amigi. Pierwsza z nich oczekuje na otrzymanie przez port ARexxa wskazanej sekwencji znaków, druga natomiast uaktywnia podany program, gdy otrzyma od DOS-u wiadomoôê o dokonaniu jakiejkolwiek zmiany w wyznaczonym katalogu. Bardzo oryginalnâ opcjâ jest natomiast moûliwoôê zaprogramowania reakcji na wîoûenie oraz wyjëcie dysku ze stacji. Wbrew pozorom przy tworzeniu wiëkszych aplikacji funkcja ta moûe sië okazaê bardzo przydatna. Z gîównego menu dostëpnych jest równieû kilka ciekawych opcji edycyjnych. Przede wszyskim mamy tutaj doskonaîe rozwiâzanie w formie dwóch gadûetów, nazwanych SuperMover oraz SuperDuper. Pierwszy z nich umoûliwia dokîadne ustawienie na ekranie wskazanego obiektu. Drugi natomiast to doskonaîe narzëdzie, dziëki któremu bardzo szybko i dokîadnie stworzyê moûna duûe grupy kopii danego obiektu, na przykîad matrycë pól numerycznych, z których zdefiniowaê wystarczy tylko jedno pole, pozostaîe powstajâ juû w peîni automatycznie, odpowiednio poustawiane. SuperMover natomiast umoûliwia dokîadne przesuwanie danego obiektu po ekranie. Jest równieû bardzo ciekawa opcja nazwana Allign Object, dziëki której da sië ustalaê parametry, dotyczâce pozycji i wielkoôci danego obiektu, korzystajâc z parametrów nadanych innemu obiektowi. Dziëki tej funkcji moûna w prosty sposób uporzâdkowaê na danym ekranie ustawienie wszystkich elementów. Podczas opisu poszczególnych funkcji kilka razy wspomniaîem o wywoîywaniu pod jakimiô warunkami pewnych programów. Nie napisaîem jednak, co to za programy. Chodzi tu mianowicie o krótkie najczëôciej skrypty, napisane w wewnëtrznym jëzyku CanDo. Programy takie, jak juû pisaîem, sâ w zasadzie najwaûniejszâ czëôciâ caîej aplikacji i dopiero dziëki nim za pomocâ CanDo stworzyê moûna niemalûe kaûdy program pracujâcy pod systemem. Skrypty te wywoîywane sâ z poziomu róûnych opcji samego CanDo. Mogâ byê przyporzâdkowane do wielu róûnych obiektów funkcjonujâcych na danej stronie. Na przykîad w wypadku opisywanych gadûetów mamy aû cztery moûliwoôci wywoîania skryptu: zaraz po wciôniëciu, po wciôniëciu i puszczeniu, po podwójnym klikniëciu oraz po przejôciu nad gadûetem z przyciôniëtym przyciskiem myszy. Kaûdej z wymienionych sytuacji moûe byê przyporzâdkowany jeden osobny program. Podobnie jest z pozostaîymi opcjami CanDo. Nawet opcja definicji danej strony daje juû moûliwoôê wywoîania aû piëciu róûnych programów, a z poziomu definicji okna wywoîaê moûemy w zaleûmoôci od sytuacji trzy róûne programy. Ôwiadczy to chyba dobitnie o roli skryptów w programie CanDo oraz o moûliwoôciach, jakie niesie ze sobâ opanowanie jëzyka wewnëtrznego CanDo. Sam jëzyk programowania CanDo nie jest jednak zbyt skomplikowany. Przede wszystkim w samym edytorze dostëpnych jest wiele opcji, które umoûliwiajâ bardzo îatwe wykonywanie podstawowych funkcji, jak przejôcie do nastëpnej, poprzedniej lub dowolnej innej strony, uruchomienie animacji czy rozpoczëcie odgrywania muzyki. W edytorze skryptów znajduje sië równieû dokîadny indeks, opisujâcy skîadnië wszystkich rozkazów i funkcji jëzyka. Moûna takûe skorzystaê z mechanizmu autoweryfikacji, wyszukujâcego ewentualne bîëdy skîadniowe programu. Korzystajâc z jëzyka CanDo, moûna osiâgnâê wszystkie efekty, jakie oferuje program. Przede wszyskim sâ to komendy dotyczâce obróbki brushy. Zarówno animowanych, jak i statycznych. Animowane brushe moûna oprócz samego ich wyôwietlania równieû poruszaê po powierzchni caîego okna, czy teû ekranu. Edycja tego ruchu jest wrëcz dziecinnie prosta. Wystarczy prostokâtem symbolizujâcym wielkoôê animacji poruszaê dowolnie po ekranie. Wszystkie stworzone w ten sposób kroki zostanâ przez program zapamiëtane i zapisane w formie rozkazów skryptu. Statyczne brushe natomiast na wiele sposobów wprowadza sië na ekran. Efektów tych jest ponad piëêdziesiât, jest wiëc w czym wybieraê. Korzystajâc z tej opcji moûna wynagrodziê sobie brak sensownych efektów pojawiania sië zdefiniowanych w oknie obrazków. Trzeba jednak przyznaê, ûe wszystkie efekty dziaîajâ w widoczny sposób gorzej niû te w Scali czy Media Point. Nie sâ tak pîynne, a ich pomysîy nie sâ tak ciekawe. Podobne przeksztaîcenia moûna równieû wykonywaê na samej palecie danego okna, w tym wypadku dostëpnych jest jednak tylko kilkanaôcie efektów. Z poziomu jëzyka wewnëtrznego uruchomiê moûna równieû odgrywanie sampla bâdú caîego utworu muzycznego. CanDo potrafi odtwarzaê muzykë w wielu znanych standardach, jak ProTracker, MED, OctaMed, Octalizer oraz kilku innych. Moûna równieû w dowolnym miejscu ekranu nanieôê pewne odrëcznie rysowane ksztaîty. CanDo wyposaûony jest w tym celu w prosty programik graficzny, który zapamiëtuje wszystkie wykonywane elementy graficzne, a nastëpnie tîumaczy stworzony obrazek na swój jëzyk. Moûliwe jest takûe bezpoôrednie wpîywanie na stan wszelkich generowanych przez CanDo obiektów. Moûna je uaktywniaê lub wyîâczaê, przemieszczaê, skalowaê. Moûliwoôci jest naprawdë bardzo duûo i nie sposób wspomnieê o nich wszystkich w tak ogólnym opisie. Oczywiôcie, jak przystaîo na porzâdny jëzyk programowania, nie dysponuje on tylko i wyîâcznie funkcjami zajmujâcymi sië obsîugâ grafiki, gadûetów i przeîâczaniem poszczególnych stron. W jëzyku tym znajdujâ sië takûe funkcje zajmujâce sië zarzâdzaniem zmiennymi, wykonywaniem operacji matematycznych oraz logicznych. Moûna równieû tworzyê tablice zmiennych. W sumie jëzyk CanDo ma okoîo 450 rozkazów. Z pewnoôciâ jak na tego typu program nie jest to maîo. Podsumowujâc, CanDo wydaje sië byê programem nieco odmiennym od panujâcego w ôwiecie amigowym stereotypu programu multimedialnego. Zamiarem autorów byîo prawdopodobnie stworzenie pakietu znacznie uîatwiajâcego mniej zaawansowanym programistom tworzenie prostych aplikacji systemowych lub interaktywnych prezentacji, w których jednak grafika i efekty wizualne nie bëdâ najwaûniejszym skîadnikiem. Ôwiadczy o tym chyba równieû zestaw doîâczonych do programu przykîadów, wôród których znajduje sië miëdzy innymi arkusz kalkulacyjny, ksiâûka telefoniczna i prosty pakiet finansowy. Program: CanDo 3.02 Producent: Inovatronics Cena: okoîo 300DM Ocena: 8/10