|
|
PROGRAMIRANJE
FREE SOURCE CODE
|
|
|
|
|
Alaska
Xbase++
1.7/1.8/1.9 |
eXPress++
1.7/1.8/1.9
|
Na ovom mestu od sada pa na dalje objavljivaću
izvorni kod, primere i rešenja za izradu poslovnog i softvera i
softvera za knjigovodstvo u Xbase, eXpress, Clipper, Visual basic,
Delphiu i Javi.
Coba
20.09.2007.
|
NEW
COBA Systems Alat za Xbase++ environment
Programski alat
Softver: Alaska Xbase++ i svi
programski alati koji pripadaju Alaska Xbase++ programskom jeziku,
posle instalacije u računar zahtevaju podešavanje sistemskog
okruženja na posebno zadate parametre kako bi mogli da rade.
Podešavanje ovog okruženja (set environment variable) kao i
podešavanje projektnih fajlova aplikacije na programe koji ih
otvaraju i edituju i dodavanje novih ikona tim fajlovima vrši se
automatski iz programa XPJCONFIG.EXE koji ove parametre upisuje u
Windows registry. 04.05.2011
Program XPJCONFIG je besplatan i možete ga
ovde preuzeti |
|
|
Clipper pod
Windowsom
Clipper pod Windowsom je rođen. To je
danas činjenica. Zahvaljujući izvrsnim programerskim alatima,
"Clipper način pisanja programa",
kao i stari Clipper izvorni kod nisu otišli na groblje programerske
istorije. Takođe "Novi Clipper način pisanja programa" pokazao je
sve svoje prednosti u brzom i efektnom pisanju aplikacija.
Tekst o tome, od tvoraca Xbase++ i eXpress++ preuzmite ovde, kao
uvod u novi način programiranja pod windowsom. |
|
001.PRG Xbase++ GUI
GLAVNI APLIKACIONI PROZOR
Glavni GUI Aplikacioni prozor
Full Screen mod, AppDesktop():CurrentSize(),
AppDesktop():CurrentPos()
MenuBar meni, Command Buttons Ispis YU ćirilice i latinice u
prozoru, meniju i komandama
Primer izrade FULL SCREEN
glavnog aplikacionog prozora koji uvek zauzima pun ekran bez
obzira na trenutnu rezoluciju monitora (desktopa), sa primerom
MenuBar menija, komandnim dugmadima i sa primerom
dobijanja YU slova latinice i cirilice u aplikacionom prozoru,
u meniju, i na komandnim dugmadima. |
|
002.PRG Xbase++ CRT hibridni mod
CRT PROGRESS BAR
Glavni CRT Aplikacioni prozor i
promena naslova u Title Baru prozora CRT PROMPT meni, i CRT
PROGRESS BAR u dve varijante, odnosno dve različite procedure. |
|
003.PRG Xbase++ GUI i CRT mod
GUI PROGRESS BAR
Progress Bar u GUI modu koji
radi sa aplikaciojom u GUI modu i sa aplikacijom u CRT modu
|
|
004.PRG Xbase++ GUI i CRT mod
ŠTAMPA NA WINDOWS
PRINTERIMA
Štampanje u GUI modu i u CRT
modu, uz upotrebu svih raspoloživih Windows fontova (pa i YU
fontova), štampanje bitmapa (slika) na dokumentu, promena
veličine i boje fontova na štampanom dokumentu. Štampanje
liste artikala preuzete iz baze podataka. |
|
005.PRG Xbase++ GUI mod + eXpress++ biblioteke
GUI NALOG ZA PRENOS (VIRMAN)
Popunjavanje naloga za prenos
(virmana) iz BMP maske i trajno čuvanje podataka virmana u
fajlu PLATA_RACUNI.DBF demonstrira jednostavnu upotrebu
eXpress++ funkcija za simulaciju starog Clipper koda i za
strukturno programiranje Windows GUI interfejsa.
|
|
006.PRG Xbase++ hibridni CRT mod + GUI mod
GLAVNI PROZOR I MENI
HIBRIDNE CRT-GUI APLIKACIJE
1.1. Šta sadrži
ovaj program i šta mu je funkcija
Ovde su u osnovnom obliku date i prikazane bazne tehnike
potrebne za brzo pisanje bilo koje poslovne aplikacije u
Alaska Xbase++ 32-bitnom programskom jeziku, koja koristi
DBF (Data Base Files) bazu podataka odnosno XBASE tip baze
podataka.
Ovaj program rađen je u čistom Xbase++ kodu odnosno u
Clipper-u, tako što je malo dopunjen stari kod iz Clipper
87' samo tamo gde je trebalo dobiti GUI (Grafički Korisnički
Interfejs) dijalog. Ostali stari (najstariji) Clipper 87'
kod nije diran.
Ova aplikacija predstavlja jednostavan primer prevodjenja
starog 16 bitnog Clipper-a na 32 bitni Windows kod, sa
dodatkom GUI dialoga, odnosno Windowsovog grafickog
interfejsa, odnosno dobar primer brze direktne migracije sa
Clippera 87' na Xbase++ 1.7. Korišćeni su samo Xbase++ 1.7 i
XbTools++ 1.7 alati i biblioteke. Nisu korišćene DLL i LIB
biblioteke drugih proizvodjača softvera.
1.2. Source cod (izvorni kod) ovog programa
Tehnike su napisane i demonstrirane u Source Code
(izvornom kodu) u priloženim PRG modulima. Svaki PRG modul,
odnosno izvorni kod, može se menjati i modifikovati. PRG
moduli sa izvornim kodom su sastavni deo ovog programa i oni
su materijal koji služi za obuku u programiranju.
1.3. Prenos Clipper 16-bitne aplikacije u 32-bitnu Alaska
aplikaciju
Ako već imate napisanu Clipper aplikaciju (Clipper
87'/5.1/5.2) ovde su u najosnovnijem obliku date bazne
tehnike potrebne za brzo prebacivanje (migraciju) te
aplikacije u 32-bitnu Alaska Xbase++ Hibridnu ( Windows CRT
i GUI ) aplikaciju.
1.4. Pisanje novih poslovnih aplikacija u Alaska/Clipper
kodu
Za novu aplikaciju ili dopunu i doradu postojeće Clipper
aplikacije pisanje koda je isto kao u Clipper-u, osim ako
nećete da pravite GUI interfejs. U tom slučaju kod mora da
sadrži dodatne komande i procedure sa sintaksom Alaska
Xbase++ i često mora da bude objektno orjentisan.
|
|
007.PRG Xbase++ GUI
mod
RAD SA TASTATUROM U
XBASE APLIKACIJAMA
Ovde su date sve postojeće
bazne tehnike (specijalne smislite sami) kako u standardnom
Windows GUI okruženju (interfejsu) raditi sa tastaturom kao
u DOS-u. Na primer, umesto da sa tasterom TAB skačete sa
dugmeta na dugme, to radite sa strelica gore, strelica dole.
Umesto da sa tasterom Space aktivirate dugme, to radite sa
tasterom Enter. Umesto da sa klikom miša na Cancel [x] u
gornjem desnom uglu prozora zatvorite prozor, to radite sa
Esc. Umesto da sa Alt+U aktivirate dugme na kome piše
"Uputstvo", to radite samo sa U. I ostalo u vezi svakog
tastera na tastaturi, a posebno kako sa tastature
komandovati Browserom (DBGrid, DBedit, TBrowse i ostalo)
odnosno tabelom baze podataka u browse modu.
Motiv:
DOS aplikacija pa takođe i stara knjigovodstvena Clipper
aplikacija imala je posebnu logiku i posebne tehnike rada sa
tastaturom. Miš tada nije postojao ili nije bio korišćen.
Največi deo Clipper aplikacija baziran je isključivo na radu
sa tastaturom, a njihovi korisnici dugogodišnjim radom su
stekli naviku i prihvatili sve udobnosti rada sa tastaturom.
Odbojnost prema mišu polako bledi, ali je još uvek ima, a u
knjigovodstvenim aplikacijama se traži i zahteva očuvanje
lagodnog rada sa tastaturom. Nove generacije knjigovođa,
odrasle sa mišem i pentijumima 4, možda će na sve ovo
gledati sa osmehom, ali moji sadašnji klijenti se najblaže
rečeno lukavo klone miša kad god mogu. Zbog toga sam morao
da u knjigovodstvenim programima urađenim u GUI modu Xbase++
(sa Windows prozorima i ostalim Windows dugmićima,
listboksovima, browserima i slično) sačuvam način rada
tastature koji je postojao u mojim Clipper programima. Sa
Alaska Xbase++ to nije težak posao, pod uslovom da znate šta
radite. E, ali to, "da znate šta radite" ispadne jako težak
posao. Ja sam morao da ga odradim, a vi treba samo da
pročitate i gurate dalje, što je mnogo lakše nego ići od
početka. Obavezno pročitajte priloženi ALASKA XBASE
RAD SA TASTATUROM.PDF
Coba, 29.04.2008.
|
|
008.PRG -
Xbase++ i eXpres++ GUI mod
Demonstracija rada sa eXpress++ bibliotekom
GUI PROMPT MENI
Pravljenje GUI menija po ugledu na Clipper Prompt meni.
Upotreba starih clipper komandi @ x,y SAY i @ x,y GET.
Demonstracija pisanja programa kao običnog Clipper programa
koji posle kompajlovanja i linkovanja daje GUI (Grafički
Korisnički Interfejs) odnosno proizvodi punu 32 bitnu Windows
grafičku aplikaciju.
U paketu je EXE aplikacija koja demonstrira izgled i rad
programa, Za start i rad aplikacije je potrebno instalirati
RunTime biblioteku koju sa Download skidate sa sajta
www.cobasystems.com
a u samoj aplikaciji pod naslovom [Library] dat je i izvorni
kod aplikacije.
Coba, 26.10.2008 |
|
009.PRG
Xbase++ i eXpres++ GUI mod
Demonstracija rada sa Xbase++ i eXpress++ bibliotekom
PAMETNI
GLAVNI PROZOR APLIKACIJE
Pravljenje "pametnog" GUI glavnog prozora aplikacije koji
uvek zauzme ceo Desktop (ceo ekran) ali ostavi nepokriven
ToolBar/TaskBar bez obzira da li se ovaj nalazi u dnu, u vrhu,
ili levo, ili desno na ekranu, i bez ozira koje je širine
ToolBar/TaskBar.
Demonstracija
upotrebe Windows API-ja i User32.dll biblioteke u Alaska
Xbase++ programima.
U paketu je EXE aplikacija koja demonstrira izgled i rad
programa, Za start i rad aplikacije je potrebno instalirati
RunTime biblioteku koju sa Download skidate sa sajta
www.cobasystems.com
a u samoj aplikaciji pod naslovom [Library] dat je i izvorni
kod aplikacije.
Coba, 26.10.2008 |
|
010.PRG
Xbase++ i eXpres++ GUI mod
Demonstracija rada sa Xbase++ i eXpress++ bibliotekom
APLIKACIJA KOJA NE DOZVOLJAVA DRUGU
INSTANCU
Ako se EXE aplikacija A startuje i ostavi podignuta, pa se
ista EXE aplikacija A ponovo startuje, ona će se takođe podići
i biti aktivna. Tog momenta imamo u memoriji računara
istovremeno podignute i aktivne dve iste aplikacije:
aplikaciju A i njenu DRUGU INSTANCU. Na ovaj način pod
Windowsom se može podići neograničen broj instanci jedne
aplikacije.
Međutim, kod knjigovodstvenih programa i programa koji rade
sa bazama podataka često se zabranjuje podizanje druge
instance programa iz raznih opravdanih ili neopravdanih
razloga.
Ovaj program demonstrira pisanje Xbase++ aplikacije u GUI
ili CRT modu, koja ne dozvoljava svoju drugu instancu. Ujedno
je ovo puna demonstracija upotrebe Windows API-ja i User32.dll
biblioteke u Alaska Xbase++ programima.
U paketu je EXE aplikacija koja demonstrira izgled i rad
programa, Za start i rad aplikacije je potrebno instalirati
RunTime biblioteku koju sa Download skidate sa sajta
www.cobasystems.com
a u samoj aplikaciji pod naslovom [Library] dat je i izvorni
kod aplikacije.
Coba, 26.10.2008 |
|
011.PRG Xbase++ i
eXpres++ GUI mod
GLAVNI PROZOR APLIKACIJE I
SEKUNDARNI PROZORI APLIKACIJE
Upravljanje prozorima u Alaska Xbase++ preko User32.dll
Windows API-ja (Testirano pod
WINDOWS-om XP i VISTA radi ugradnje u VISTA aplikacije)
Kada se startuje EXE aplikacija A startuje se prvo njen
glavni prozor (Win Main) koji je najčešće i glavni meni (glavni
izbor rada) aplikacije. Posle toga, aktiviranjem stavki iz
glavnog menija aplikacije, startuju se sekundarni prozori
aplikacije prvo (win 1) a zatim i (win 2).
(1)
Ako sada želimo da završimo aplikaciju to se može učiniti na
dva načina:
prvi način:
- prvo se terminira win 2 prozor
- zatim se terminira win 2 prozor
- sada se može terminirati win main prozor odnosno
aplikacija
drugi način:
- terminira se aplikacija i pri tom se automatski zatvore
svi
otvoreni prozori win 2, win 1 i win main.
U ovom programu demonstrira se i prvi i drugi način. Za
drugi način koristi se funkcija iz User32.dll Windows API
biblioteke. Prvi način obezbeđuje Alaska Xbase++ svojim
postojećim komandama.
(2)
Ako u aplikaciji istovremeno držimo otvorene sve prozore:
Win main, Win 1 i Win 2, a potrebno je da komandama zadatim
iz jednog aktivnog prozora izvršimo nad drugim prozorom
operacije:
- minimizovanja drugog prozora
- maksimizovanja drugog prozora
- normalizovanja drugog prozora
- postavljanje drugog prozora u poziciju "Z Top" (povrh svih
prozora)
- terminiranje drugog prozora (gašenje i zatvaranje)
deo ovih operacija može se uraditi iz Alaska Xbase++ komandi
a deo direktnim pristupom i korišćenjem funkcija iz
User32.dll Windows API biblioteke.
U ovom programu demonstrira se rad sa opisanim operacijama
gde se za neke operacije koriste funkcije iz User32.dll
Windows API biblioteke.
(3)
Ako je aplikacija startovana i otvorena su sva tri prozora
Win main, Win 1 i Win 2, pa se pokuša ponovni start druge
instance aplikacije, tada će se stopirati start druge
instance aplikacije, a aktiviraće se zadnji prozor
aplikacije odnosno Win 2 tako što će se, ako je minimizovan,
postaviti u normalnu veličinu i u Z Top poziciju na desktopu
(povrh svih prozora pred oči korisniku - da vidi da je
aplikacija već startovana).
U ovom programu demonstrira se rad sa opisanim operacijama
gde se za neke operacije koriste funkcije iz User32.dll
Windows API biblioteke.
Coba 26.10.2008
|
|
012.PRG Xbase++
hibridni CRT mod + GUI mod
( vezano za:
006.PRG - Xbase++ hibridni CRT mod + GUI mod )
CRT MENI 8 BigButtons
1.1. Šta sadrži ovaj
program i šta mu je funkcija
Demo primer GUI menija u CRT prozoru i rada sa dodatnim CRT
prozorima u jednoj CRT-GUI baziranoj aplikaciji (Alaska
hibridnoj aplikaciji)
Ova tehnika programiranja meija aplikacije u CRT prozoru,
izvedena je za aplikacije čija izrada (prelazak sa Clipper
koda na Alaska Xbase++) je detaljno demonstrirana i
dokumenovana u 006.PRG paketu. Tako, da u ovom uputstvu važi
sve što je napisano pod tačkama 1.1. do 1.4.
Ovde je postojeća tehnika proširena uvođenjem GUI dugmadi sa
bitmap slikama umesto standardnog Clipper PROMPT menija
datog u paketu 006. Takođe, ovde se demonstrira tehnika rada
sa više istovremeno otvorenih CRT prozora u kojima se
odvijaju pojedine operacije aplikacije.
Ovde su u osnovnom obliku date i prikazane bazne tehnike
potrebne za brzo pisanje bilo koje poslovne aplikacije u
Alaska Xbase++ 32-bitnom programskom jeziku, koja koristi
DBF (Data Base Files)
bazu podataka odnosno XBASE tip baze podataka.
Ovaj program rađen je u čistom Xbase++ kodu odnosno u
Clipper-u, tako što je malo dopunjen stari kod iz Clipper
87' samo tamo gde je trebalo dobiti GUI (Grafički Korisnički
Interfejs) dijalog. Ostali stari (najstariji) Clipper 87'
kod nije diran.
Ova aplikacija predstavlja jednostavan primer prevodjenja
starog 16 bitnog Clipper-a na 32 bitni Windows kod, sa
dodatkom GUI dialoga, odnosno Windowsovog grafickog
interfejsa, odnosno dobar primer brze
direktne migracije sa Clippera 87' na Xbase++ 1.7
Korišćeni su samo Xbase++ 1.7 i XbTools++ 1.7 alati i
biblioteke. Nisu korišćene DLL i LIB biblioteke drugih
proizvodjača softvera.
Coba 26.10.2008
|
013.PRG Xbase++ i
eXpress++ GUI mod Prekid,
tasterom sa tastature, izvršenja DO WHILE - ENDDO masovne
obrade podataka upotrebom AppEvent() i PostAppEvent()
U toku izvršenja masovne
obrade podataka sa bazom podataka, koja se najčešće izvodi u
DO WHILE .NOT. EOF() - ENDDO petlji, potrebno je često puta
prekinuti proces obrade pre nego što se on sam završi. U
Clipper programima se to izvodilo, na primer, sa:
DO WHILE .NOT. EOF()
INKEY()
IF LASTKEY()=27 EXIT ENDIF
SKIP ENDDO
U Alaska Xbase++ aplikaciji umesto toga treba primeniti
Evente. Jedan od načina primene Eventa dat je u
priloženim PRG modulima za eXpress++ (EXPRESS.PRG) i za čist
Xbase++ kod (XBASE.PRG).
Coba 18.09.2009
|
|
014.PRG Xbase++ GUI mod
Alaska Xbase++ BROWSER tabela po sistemu rada Clipper
DBEDIT tabele (tasteri-tastatura + miš-komandna dugmad)
sa mogućnošću promene veličine tabele i okoline (resize)
minimizovanja i maximizovanja u Windows desktopu.
Alaska Xbase GUI browseri:
XbpBrowse(), i XbpQuickBrowse()
mogu prihvatiti staru Clipper DBedit ili DBbrowse
CRT aplikaciju uz relativno male izmene koda te
aplikacije. U tu svrhu alaskine GUI browsere treba
isprogramirati sa korisničkim interfejsom koji
vizualno liči na Clipper interfejs i koji ima što
sličniju, ako ne i istu, logiku upotrebe kao i taj
stari Clipper interfejs.
Pored toga, u radu sa ova dva GUI browsera dobija
se mnogo bolja i raznovrsnija kontrola obrade i
prezentacije podataka u browseru, od obrade i
prezentacije koje pružaju ostale funkcije iz Xbase,
kao što su:
DBEDIT
BROWSE
APPBROWSE
Opisani način programiranja GUI browsera dao sam
u dva PRG primera BROWSER1.PRG i BROWSER2.PRG.
Coba 25.09.2009
|
015.PRG eXPress++ GUI mod
TRANSPARENTNE BITMAPE
paket 015: Kako u aplikaciji koristiti
transparentne bitmape učitane iz EXE fajla, iz DLL fajla, ili
iz BMP, JPG, GIF, PNG fajla upotrebom eXPress++ komandi.
Coba 09.05.2011
|
016.PRG eXPress++ GUI mod
TREE MENI APLIKACIJE
paket 016: Tree menu verzija 1. Kako
napraviti aplikacioni Tree meni koristeći komande eXPress++
09.05.2011
|
017.PRG eXPress++ GUI mod
TREE MENI SA IKONAMA
paket 017: Tree menu verzija 2. Kako
napraviti aplikacioni Tree meni koristeći komande eXPress++.
Tree Menu sa ikonama sa MemoEdit kontrolom sa DCMULTILINE
kontrolom, sa DIRS i FILES kontrolama, odnosno sa tree folder
dialogom i sa tree file dialogom. 09.06.2011
|
018.PRG eXPress++ GUI mod
TREE MENI APLIKACIJA - DEO1
018_source.PRG
-
GRATIS
paket 018:
PRIRUČNIK ZA PROGRAMERE sa gotovim i
testiranim programima i Source kodom programa od kojih se
sastoji ova aplikacija. Kako u Alaska Xbase++ programu uz
pomoć dodatnih eXpress++ DLL biblioteka brzo napraviti Windows
GUI 32 bitnu poslovnu aplikaciju sa Tree interfejsom za glavni
meni aplikacije.
Sva uputstva i objašnjenja za izradu
ove aplikacije nalaze se u source kodu u PRG fajlovima kao
tekst i komentari određenih tehnika i komandi. Kupovinom
source koda i njegovom doradom i izmenom prema vašim
zahtevima, dobijate tehnologiju za razvoj bilo koje vaše
aplikacije, (stare clipper aplikaciju ili nove Xbase++
aplikacije, bez gubljenja vremena na učenje svih tehnika i
znanja za izradu takve aplikacije. Ovde je sve urađeno,
testirano i dato na tanjiru.
Tree interfejs se
postavlja u glavnom prozoru aplikacije (AppWindow) i pruža
mogućnost rada sa više istovremeno otvorenih i aktivnih
sekundarnih prozora aplikacije, odnosno GUI Dialoga
aplikacije, od kojih svaki GUI dialog predstavlja poseban
program. Nadgradnja ovog sistema je putem uvođenja Thread
tehnika tako da svaki od pojedinih GUI dialoga (programa) radi
u svojoj posebnoj niti. GUI dialozi su urađeni posebno u
Alaska Xbase++ funkcijama i posebno u eXpress++ funkcijama
radi prikaza razlike u programiranju u jednoj i u drugoj
tehnologiji rada. U aplikaciji su primenjene tehnike za
sprečavanje starta druge instance prozora, za restart
aplikacije u toku rada, za postavljanje Windows XP manifesta u
toku rada, za postavljanje pozadinske bitmape i boje i za
izgradnju GUI Dialoga sa svim njegovim osobinama i sa drugim
objektima na njemu, tehnika pisanja Helpa u MsgBox dialogu,
tehnika izrade panela u GUI dialogu i mnoge druge.
U
principu, kod izrade aplikacija u Alaska Xbase++ može se
paralelno koristiti Xbase++ kod i eXpress++ kod, osim kod
Xbase Parts (XbpDialog, XbpPushButton, Xbpbrowse...) gde ne
treba u istom programu koristiti Xbase Parts i eXpress
predefinisane Xbase Parts (DCREAD GUI, DCPUSHBUTTON,
DCBROWSE...). U ovoj aplikaciji prva tri GUI dialoga su Xbase
Parts a ostali GUI dialozi su predefinisani eXpress Parts.
Međutim treba to izbegavati, i ne treba mešati ove dve tehnike
rada, osim ako niste majstor za Xbase++ i eXpress++ tehnike
rada. Coba 26.05.2011
|
RESOURCE.PRG
Complete project: with accompanying source code and
instructions for working
Testing the operation of Alaska Xbase++ 1.9.355 and
eXpress++ 1.9 to load resources: ICO, BMP, PNG, GIF, JPG and
view those pictures on the command button.
ICO,BMP,PNG,GIF,JPG resources are taken from
ICO,BMP,PNG,GIF,JPG files on the disk, or EXE file, or DLL
file
COBA Systems Software 2014 Slobodan Stanojevic Coba
30.05.2014
|
MAIL.PRG Paket MAIL.zip Slanje eMaila iz Alaska Xbase++ na jednu ili više adresa sa jednim ili više priloga eMail se šalje preko aktivnog (set default) mail klijenta. Program je testiran sa aktivnim besplatnim mail klijentom: Mozila Thunderbird i radio je ispravno i bez problema Ovde se nalazi kompletan projekat programa mail.exe sa bibliotekom ot4xb.dll/lib za Alaska Xbase++ 1.9.355
|
| | |