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. Ponieaż 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 :
lOknol
lPanel (uproszczone FRAME)l
lEtykieta tekstowa (LABEL) l
lprzycisk (COMMAND)l
lpole edycyjne (TEXT ale mozna wpisać tylko cyfry i ma 2 strzałki coś na wzór cyfrowy
text box)l
lprzełącznik (CHECK BOX)l
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 :
lZdefinoiowanie obiektówl
lnarysowanie ichl
ldowiedzenie się w co kliknął użytkownik i wykonanie odpowiedniej operacji (reakcja)l
lwyłączenie trybu graficznegol
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.
Jelcyn
Tutaj są do ściągnięcia
zanotowane.pldoc.pisz.plpdf.pisz.plteen-mushing.xlx.pl