Easy Windows for Pascal
Jeśli czytałeś art o aplikacjach dwusystemowych, to zapewne wiesz, że napisanie wersji programu pod DOSa nie jest takie łatwe. Nie chodzi mi o to, że trzeba tracić dodatkowy czas, ale o to iż w np. Pascalu ciężko było by samemu napisać program, który był by tak wygodny jak wersja pod Windows. Ponieważ program działający w trybie tekstowym to przeżytek, to postanowiłem opisać ciekawą bibliotekę pod Pascala. Dzięki niej program będzie przynajmniej przypominał interface Windowsa. Co prawda 16 kolorów kontra 16 milionów to niewiele, ale lepsze to niż tryb tekstowy. Zapomnij o kontrolkach OCX !!! W EWP niestety jest zdefinowane tylko kilka obiektów :
- Okno
- Panel (uproszczone FRAME)
- Etykieta tekstowa (LABEL)
- przycisk (COMMAND)
- pole edycyjne (TEXT ale mozna wpisać tylko cyfry i ma 2 strzałki coś na wzór cyfrowy text box)
- przełącznik (CHECK BOX)
Jest to niewiele. Aby było ciekawiej, to musimy to pisać ręcznie (bo to nie Visual pascal, tylko drobna nakładka na Pascala a dokładniej plik(i) TPU) Kod jest bardzo prosty oto etapy pisania takiej aplikacji :
- Zdefinoiowanie obiektów
- narysowanie ich
- dowiedzenie się w co kliknął użytkownik i wykonanie odpowiedniej operacji (reakcja)
- wyłączenie trybu graficznego
Co do definiowania obiektów, to po prostu jest to tablica (może mieć max 80 elementów) gdzie wpisujemy typ (np przycisk, panel) współrzędne, rozmiar i inne dodatkowe rzeczy.
Narysowanie osiągamy za pomocą procedury DRAWSHADE
Reakcja polega na wpisaniu kodu WAITFORUSER (zmienna) gdzie zmienna to numer obiekt w który kliknął użytkownik (nie dotyczy to formularza, etykiety textowej i panelu) Ta procedura spowoduje zatrzymanie działania programu dopóki użytkownik w coś w co można kliknąć nie kliknie. Jak kliknie to zwracany jest numer obiektu (np 2 to jest element tablicy 2 który deklarowaliśmy tj. załóżmy że na początku definiujemy obiekt i przyciskowi X nadajemy index tablicy 2. Jak koś kliknie w przycisk X to jest zwracana wartość 2)
Szczegółowych informacji szukaj w pliku tekstowym dołączonym do EWP (README.TXT lub README.DOC) gdzie wszystko jest bardzo dokładnie opisane. Kod takiego pliku EXE po skompilowaniu to ok. 60 KB + nasz kod. Za to taki plik EXE nie wymaga żadnych plików CHR ani BGI !!! Wychodzi to na jedno, ale im mniej plików tym lepiej !!! Oto przykładowy kod programu (musisz zaopatrzyć się w EWP !!!) :
{ EASY WINDOWS FOR PASCAL DEMONSTRATION }
program example_nr_1;
uses GUI,Mouse,Crt,Graph,Fonts; {zawsze nalezy o tym pamietac}
{W bibliotece FONTS.TPU znajduja sie: } {1. fonty typu CHR } {2. plik egavga.bgi } {Umozliwia to kompilacje programu do jednego pliku EXE} {bez koniecznosci dostepu do plikow typu CHR czy BGI }
var przycisk:integer; {przechowuje numer przycisku}
begin MouseVgaInit; {aby wlaczyc tryb graficzny, zainicjowac myszke i fonty }
t[1].typ:='window'; {moze jakies okienko} t[1].x:=100; t[1].y:=100; t[1].a:=150; t[1].b:=150; t[1].tekst:='Przyk'ad nr 1'; t[1].stan:=true; t[1].krok:=1;
t[2].typ:='button'; {teraz przycisk} t[2].x:=150; t[2].y:=220; t[2].a:=50; t[2].b:=020; t[2].tekst:='ok';
t[3].typ:='panel'; t[3].x:=t[1].x+4; t[3].y:=t[1].y+24; t[3].a:=t[1].a-8; t[3].b:=85; t[3].stan:=true; t[3].krok:=magenta;
t[4].typ:='tekst'; {i jeszcze 3 napisy} t[4].x:=175; t[4].y:=145; t[4].a:=yellow; t[4].tekst:='naciźni'cie przycisku';
t[5].typ:='tekst' ; t[5].x:=175; t[5].y:=165; t[5].a:=lightcyan; t[5].tekst:='spowoduje wyjźcie';
t[6].typ:='tekst'; t[6].x:=175; t[6].y:=185; t[6].a:=lightgreen; t[6].tekst:='z programu';
t[7].typ:='koniec'; {koniec tablicy elementow!!!}
DrawObjects; {narysujmy to na ekranie}
Beep:=true; {wlaczenie dzwieku}
repeat WaitForUser(przycisk); {jesli wcisnal przycisk "ok" to zmienna "przycisk"} until przycisk=2; {bedzie rowna 2 bo ten przycisk byl zdefiniowany } {w DRUGIM wierszu tablicy! }
CloseGraph; {wychodzimy} end.
Myślę że przeglądając ten kod (o ile znasz TP ;-) wiesz o co chodzi. Dzięki EWP wersje DOSowe programów wyglądają podobnie do tych napisanychw VB, ale niestety nie jest to to. Po prostu nie ma np. Option Buttona, czy kilku przydatnych OCX'ów, pola Image ani nic !!! Ale lepsze to niż tryb textowy !!! Na tym kończe ten króciutki art i mam nadzieję, że wykorzystasz ten art do udoskonalenia swoich programów.
I na koniec ciekawostka : jest odpowiednik instrukcji MsgBox !!! Szukaj informacji pod nazwą instrukcji Message.
Być może masz zamiar mnie ochrzanić za to że robię tu jakieś kursy Pascala zamiast recenzować VB. Proszę bardzo, krzycz, ale wiedz, że nie piszę tego tak o bo nie mam pomysłów na arty. Wręcz przeciwnie, wiele musiałem się namęczyć aby móc napisać art o aplikacjach dwusystemowych. Ten art to właśnie takie uzupełnienie tamtego artu o pisanie dosowej wersji aplikacji. Chciałem pokazać że program napisany pod DOSa to wcale nie musi być tryb tekstowy z dwoma kolorami.
Ten art pochodzi z zinu o VB (VBMagazine)
Początek artykułu

Copyright (c) 1999 - 2000 NoName |
|