unknown.104kzoran,
-> #101, ndragan> Slaba vajda što će sam da ga obriše (a hoće, još od 2.0), kad opet
> moram da posežem za sys(3) ili da izmišljam imena za indekse za
> jednokratnu upotrebu.
Sve zavisi kako se stvari na mreži postave.
Ja za mrežne aplikacije redovno koristim posebne 'radne' direktorije za
svakog usera, bilo da ih kreiram na lokalnom disku, bilo na mrežnom (ako
nemaju lokalni disk), u kojima se čuvaju .cfg fajlovi za svakog usera i
kreiraju privremene datoteke za svakog od njih. Pored nekih drugih dobrih
prednosti ovakve organizacije, nepotrebno je izmišljati imena privremenih
datoteka i njihovih indeksa, koristiti SYS(3) i slične funkcije - svaki
user koristi istoimene privremene fajlove i indekse, ali u drugom dir-u,
pa se funkcija i ponašanje cursor datoteka i svih njihovih artefakata
savršeno uklapaju.
unknown.105max.headroom,
-> #104, kzoran> svakog usera, bilo da ih kreiram na lokalnom disku, bilo na mrežnom (ako
> nemaju lokalni disk), u kojima se čuvaju .cfg fajlovi za svakog usera i
Ja, pak, koristim sledeći sistem: u glavnom direktorijumu (dakle, onom
u kome se nalazi .APP fajl) držim bazu USERS.DBF u kome se nalaze podaci
o dir-ovima, username-ovima i ostalim -ovima svih usera, sa sve setovanjima
koja su im potrebna. Tako da kad, kao sistem-nadzornik, kreneš da im menjaš
parametre, možeš stvar malo da centralizuješ. To pomaže i ako ugradiš
neku vrstu nazovi-monitoring sistema, preko koga posmatraš šta ti ko
u momentu radi na mreži (pomaže i na sistemima gde se koristi mrežni
fax-modem, a sam praviš queue-ove, ili da zabraniš neki super-sensitive
report ako neko od korisnika vrši izmene u bazi).
Povodom :) ovog potonjeg - svojevremeno su Booth i Lief savetovali
da se zabrani izrada Raport-a ako neko vrši record editing. Narafski,
ovo nema veze s' mozgom i realnošću, jer bih voleo da vidim neku
CEO facu kako čeka na report pola sata jer je službenik otišao na
kafu, ili je prespor po pitanju unosa. Po skromnom mi mišljenju, bilo
bi najpoštenije da te računar upozori, pri pokretanju report-a, šta
se i ako se trenutno menja, pa ako ta izmena ne utiče pogubno na
izveštaj, onda - samo teraj. žitao sam još i ideje sumanutih autora
gde se pominje pravljenje tzv. RaportQueue-a, tj. okruženje u kome
unos/izmena podataka i raport imaju istu važnost, odn. onaj kome
treba izveštaj "stane u red" i čeka da završe sa unosom podataka oni
koji su sa aktivnošću započeli pre njega. Kada bi programer uzimao
sve ove potencijalne gadosti u obzir - napravio bi aplikaciju, al'
za malo... ;)
unknown.106mamba,
Da li moze da se ocita get polje pre pritiska na enter.
unknown.107gcurcic,
-> #106, mamba> Da li moze da se ocita get polje pre pritiska na enter.
Ja sam koristio dva načina:
Ako se polje _obavezno_ čitavo popunjava (neka šifra i sl.), pomaže
jedna SET CONF OFF u When klauzuli, pa vratiš na SET CONF ON u Valid-u.
U tom slučaju nema potrebe da lupaš Enter kad napuniš polje.
Drugi način je da umesto jednog, formiraš niz od onoliko polja koliko
originalni GET sadrži bajtova. Normalno, svako polje je dužine 1. Uz
malo žongliranja sa SET CONF mogu da se dobiju pristojni efekti.
unknown.108max.headroom,
-> #106, mamba> Da li moze da se ocita get polje pre pritiska na enter.
Pričam napamet, ali mislim da ne. A i zašto bi to bilo potrebno kada
na raspolaganju imaš VALID, odn. WHEN funkciju? Ako, međutim, pišeš
direktno u bazu, pa nećeš da upadne nešto što ne treba, pre izmene
stavi vrednost polja u mem. promenljivu. Ako, pak, imaš nešto drugo
na umu - reci :)
unknown.109mamba,
-> #108, max.headroom
REP 12.81 i 12.82
> Ako, pak, imas nesto drugo na umu - reci :)
Imam :) .
Uradio sam panel u kome se unosi sifra (korisnika).Pri definiciji
polja sam stavio COLOR X,X,X,X,X,X tako da je polje crno i ne vidi
se sta korisnik kuca.
To mi se nije svidelo pa sam hteo da korisnik unosi sifru, a da program
to konvertuje u ****.E pa ocigledno da nisam uspeo pa reko da pitam.
Pokusao sam sa ON KEY, ali nije islo tj. nepostoji niz m.xxx dok ja
ne lupim ENTER.
Da li ima leka ili neko elegantnije resenje?
Jos jedno pitanje.
Sta treba promeniti u listingu za ocitavanje bindery da bi dao samo
spisak korisnika.Mislim na tvoj listing iz racunara 106 i za koju
verziju novell-a je pisan.
Vlada
unknown.110stanic,
-> #109, mamba> To mi se nije svidelo pa sam hteo da korisnik unosi sifru, a da program
> to konvertuje u ****.E pa ocigledno da nisam uspeo pa reko da pitam.
Ako sam dobro razumeo pitanje to bi trebalo da bude ovo:
WHILE nKeys<=nMaxLength
IF Inkey(0)<>K_RETURN
@ nX_Pos,nY_Pos+nKeys SAY "*"
cPassword+=Chr(Lastkey())
nKeys++
ELSE
EXIT
ENDIF
ENDDO
Nije urađena obrada pritisnutog BackSpace-a, ali nije neki problem.
unknown.111stanic,
-> #110, stanicPromaših temu, ali valjda se to tako i u fox-u može
uraditi.
unknown.112max.headroom,
-> #110, stanic> IF Inkey(0)<>K_RETURN
Baš htedoh čoveku da kažem da se to, uglavnom, radi preko
INKEY funkcije. Dakle, šema je, uz sitne dorade, primenljiva
i na Fox-u.
unknown.113willow,
-> #71, znevenic
Posle 1 mesec odsustvovanja usled neplacene pretplate, eto mene opet.
Naleteo na ovu tvoju poruku, pa da odgovorim.
Pretpostavljam da ti je SilverFox potreban radi rada sa Modemom ?.
Ako jeste, onda evo.
Napravio sam jedan .PLB koji koristim u svojim aplikacijama za upravljanje
Modemom.
Prilazem sledece fajlove :
PORTLIB.H - Prototipovi funkcija, makroi, itd.
PORTLIB.C - Funkcije za rad sa portovima, serijskim i paralelnim.
Upravljanje Modemom ( i Stampacem ) je potpuno "in, out"
orjentisano, vrednosti se direktno poke-uju u portove,
znaci, izbegava se BIOS, pa je rad do nekle ubrzan, a i
zaobidjeno je da ti se neki TSR ili FOSSIL nakaci na
Int 14 ili Int 17.
Takodje ima i :
Funkcija za postavljanje Timer-a, Delay-eva i
par ekranskih funkcija.
MODEM.C - Ovde je izvorni kod programa od koga se pravi .PLB modul.
Koristi usluge PORTLIB.C i ubacene su osnovne f-je za rad
sa Modemom, a ima i jos koja.
MODEM.PLB - Gotova biblioteka funkcija za Modem.
MODEM.MAK - Make fajl ako koristis MicroSoft C kompajler.
TERMINAL.PRG - Primer upotrebe ove biblioteke u FoxPro-u.
PORTLIB.C i PORTLIB.H su potpuno SelfContained, znaci, ako pises
program u C/C++, naravno da ih mozes iskoristiti.Ne koristi se nijedna
funkcija iz biblioteka koje se isporucuju uz kompajler, sve je, sto bi
rekli Englezi napravljeno from Scrathes ( valjda se tako pise ).
Na kraju :
Zasto saljem sve ovo na Sezam.
1 - Da saradjujem sa Kolegama :).
2 - Da procitam utiske drugih o svom radu, i da, ako je to lose, batalim
sve ovo i dok je jos vreme, izucim neki drugi zanat.
Svi izvorni kodovi su slobodni za :
MENJANJE, DODAVANJE, BRISANJE, PODSMEVANJE.
I jos :
Kucao sam jos, pa ima jos nekih .PLB-ova.
VIDEO.PLB - Rad sa videom, grafika, postavljanje kolornih registara,
ucitavanje i prikaz standardnih .ICO ( ikone ) fajlova,
postavljanje ekranskog fonta, itd.
Zanimljivo izgleda aplikacija kada se od standardne palete
od 8 * 2 ( ne bas nekih ) boja, koristi paleta od 16 * 1 boje
raznih nijansi, ili 1 * 16 boja, podesenih po ukusu.
Jos zanimljivije izgleda PaintBrush za Dos vodjen iz FoxPro-a,
uz pomoc ove biblioteke.
MOUSE.PLB - Upravljanje misem.
DOSAPI.PLB - Ime sve govori.
Ako je nekom sve to potrebno, neka kaze.
Da napomenem : Ovo sve nema nikakve veze sa Windowsima, vec vazi samo za
FoxPro za Dos.
Primeceno :
FoxPro se potpuno izgubi ako se prebaci u neki od grafickih rezima,
( 640x480x16 ili 320x200x256 ).
Zakljucak : Ne koristi BIOS pri ispisivanju ekrana, vec direktno pristupa
video memoriji.
Steta, da su koriscene makar usluge BIOS-a ( ili ne daj boze DOS-a ), imali
bi i Tekst i Grafiku i 16 boja i 30 redova na ekranu, i sve to
na jednom mestu => postavljanjem moda 640x480x16.
Hello ( again ) from Willow Valley .
modem.arjunknown.114ndragan,
-> #102, misa.m/ 1250 i dalje, normalno ako je u winu i imas codepage=auto.
Gde u prozorima? Trošim '95 još od juna, i prečešljao sam sve *.ini
fajlove i registraturu, nigde se ne spominje "codepage", "1250", "1252"
a za config.fpw znam, nije u tome stvar. I nije dovoljna kodna stranica,
nego _jezička_.
Za probu, u bilo koji oblik (ako nastave komšije da ga zovu Form ja ću
ovako da ga prevodim) ubaci bilo kakav objekat koji prima tekst (u
zaglavlju ili sadržaju), pa u njega ubaci reč "ćevapčići" po 1250. Kad
to pustiš da radi, ako ne dobiješ "_ae_vapéi_ae_i" (_ae_ je ona
ligatura), nego baš ono, javi kako ti je uspelo.
unknown.115ndragan,
-> #103, kzoran/ edita, bilo da je !K ili ne. Ako je to polje na neki način još i
/ istaknuto,
Istaknuto je time što ti je ceo tekst selektovan (podesi boje). žim
počneš da ukucavaš nešto drugo umesto, preko, u, iza ili ispred njega,
ili makar pomeriš strelicu, kursor se pojavljuje. Tj, jedini trenutak
kada se ne vidi kursor je dok stoji na @K polju i još nisi ništa
pritisnuo.
/ svoj šarolikosti grafičkih karata i njihovoj različitoj interpretaciji
/ boja u sivim nijansama (na mono monitorima) dati dobre rezultate.
E, da, ovo je muka živa. Rešavao sam je tako što sam postepeno
zamenjivao nezgodne kombinacije vidljivim. Onda je neko okačio kolor
monitor i verovatno zaključio da ne može pouzdano da odredi iz koje sam
ludnice pobegao.
unknown.116ndragan,
-> #104, kzoran/ svakog usera, bilo da ih kreiram na lokalnom disku, bilo na mrežnom
U config.fp uvek imam
tmpfiles=c:\scratch
editwork=c:\scratch
sortwork=c:\scratch
progwork=c:\scratch
I svi radni fajlovi, a samim tim i kursori i njihovi indeksi su
automatski odlazili tamo, i zvali su se 23023487.tmp i slično, do novela
4.10. Otad se nalaze na Curdir() i zovu se kako bi se zvali da imam pravu
.dbf tabelu umesto kursora. I naravno, postoji ukupno jedan sa tim
imenom, što je divno za po mreži. Napravilo se sranje nizašta...
/ datoteka i njihovih indeksa, koristiti SYS(3) i slične funkcije -
...jer sys(3) nisam hteo da koristim, to sam trošio do pre dve godine, i
već mi ga je dosta. Zahteva da ga strpaš u promenljivu i to sa sve
nastavkom, navodiš tu promenljivu kao ime indeksnog fajla (umesto
prostog Index on ____ tag ___ i gotovo), pa onda zatvaraš, i umesto da
si tu gotov, još proveravaš da li taj fajl postoji (recimo da ponekad
natrči na prazan kursor pa izađe ili uopšte ne prođe kroz tu granu
programa), pa ako postoji obrišeš ga:
Tmp=ForceExt(sys(3),'cdx')
...
create cursor how_yes_no (...)
...
index on trt_mrt tag rke_koke of (tmp)
...
use
...
if file(tmp)
Erase (tmp)
EndIf)
U svim, ama baš svim ostalim situacijama, od foksa 2.0 pod dosom 5.0,
pa do foksa 2.6 pod dosom 5.0, 6.0, 6.2, 6.22, 7.0 (w95), lantastikom 5
i 6, novelom 3.11, 3.12, 4.0 i 4.01 - jednostavno napraviš kursor,
indeksiraš po čemu hoćeš, upotrebiš, zatvoriš, zaboraviš - sam sve svoje
fajlove pobriše sa sobom a imena su im svima redom pravljena automatski
sa sys(3), tj prethodni primer se svodi na:
create cursor how_yes_no (...)
...
index on trt_mrt tag rke_koke
...
use
I fajlovi koje je držao otvorene su bili na c:\scratch i zvali se
78879884.tmp i 47834234.tmp, i sami su se obrisali.
unknown.117ndragan,
-> #105, max.headroom/ CEO facu kako čeka na report pola sata jer je službenik otišao na
Gos'n Poglavica Izvršni žinovnik (tj. CEO=PIž) bi imao dobiti u
zaglavlju izveštaja nešto kao "prema podacima unetim do <datum><vreme>"
gde bi stajao neki TimeStamp poslednjeg unetog/osveženog sloga.
Uostalom, bilo koji podaci su netačni, jer
čak i ako je stiglo sve što je urađeno juče, pa još i ukucano,
nešto od današnjeg je već ukucano, tako da opet ima podatke malo
za juče, malo za danas
čak i da se sve unosi na licu mesta i šalje modemima
to obavezno kasni, zbog različitog radnog vremena, vremenskih
zona, kašnjenja u emajliranju (ili koji god da je način slanja) a
s druge strane neki podaci opet stižu odmah.
čak i da ima to sve
niko još nije ukucao ono što on drži u tašni :)
a i da to sam ukuca
ko mu jemči da mu je sve tačno, neko mora i da laže.
Tako da mislim da je bolje držati se podataka takvih kakvi su, ako nisu
sasvim tačni bar dobro odražavaju stvarnost, nego izmišljati sedmu rupu
na saksiji da bi oni bili malo takviji nego ranije.
unknown.118max.headroom,
-> #113, willow> Da napomenem : Ovo sve nema nikakve veze sa Windowsima, vec vazi samo za
> FoxPro za Dos.
Zdravo, kolega :) Isprobaću biblioteke i preneti ti iskustva. I sam
razvijam jedno zanimljivo okruženje za Windows preko koga će se
razvijati Fox aplikacija za DOS... hm, nešto poput ovog najnovijeg
Clipper-a (dakle, devel. shell for Win). Nailazim na par čuuudnih
dešavanja kada Fox poziva određene rutine iz svoje originalne
biblioteke (Windows ih ne vari kako treba, pa aplikacija pada).
Sam Fox se po potrebi pokreće uprozoren, dok se izrada .PRG-a
vrši preko standardnog sistema "otvori ih kol'ko staje na ekran".
Najzanimljiviji deo je jedan "function & procedure manager", tj.
nešto kao editor/viewer korisnikovih klasa. No, o tom potom.
unknown.119kzoran,
-> #115, ndragan> Istaknuto je time što ti je ceo tekst selektovan (podesi boje). žim
Ma, znam, ali ponovo tvrdim da je istaknutost bojom po meni sporedni
orijentir za funkciju editovanja sadržaja polja, a glavni bi trebalo
da bude kursor, i to kako _pre_ tako i za vreme edita.
Ili ovako: svakako bi trebalo da se vidi kursor i _pre_ i za vreme
edita, uz mogućnost da se takvo polje dodatno istakne i bojom (za šta
lično ne vidim baš nikakvu potrebu, i uvek bih mu davao atribute kao i
svim ostalim poljima u slogu - po čemu je čK polje tako specijalno?).
Ovo je, naravno, jedno sasvim lično shvatanje uloge elemenata korisničkog
interfejsa, so - nemoj mi zameriti.
> Tj, jedini trenutak kada se ne vidi kursor je dok stoji na čK polju
> i još nisi ništa pritisnuo.
Upravo o tom trenutku i govorim sve vreme.
> E, da, ovo je muka živa. Rešavao sam je tako što sam postepeno
> zamenjivao nezgodne kombinacije vidljivim. Onda je neko okačio kolor
> monitor i verovatno zaključio da ne može pouzdano da odredi iz koje
> sam ludnice pobegao.
Da, skoro sam i ja imao sličan slučaj. Do tada sam korisnicima omogućavao
rudimentarnu mogućnost podešavanja boja pod programskom kontrolom, a od
tada praktikujem da na mašinama sa tvrdoglavijim grafičkim karticama
instaliram Fox, podesim boje u cfg (dbf) datoteci na licu mesta i po želji
operatera, snimim rezervnu kopiju ove datoteke za ne daj bože (i, naravno,
skinem Fox sa mašine...:))
Pozdrav,
Zoran.
unknown.120kzoran,
-> #116, ndraganSUBJ: Fox u mreži
Nisam siguran da smo se međusobno baš najbolje razumeli...)
Nije ni važno, glavno je da se razumemo (iako ni u to nisam 100%
siguran :)) u pogledu funkcije cursor datoteka, njihovih indeksa itd.
Pozdrav,
Zoran.
unknown.121gcurcic,
-> #119, kzoran> Ma, znam, ali ponovo tvrdim da je istaknutost bojom po meni
> sporedni orijentir za funkciju editovanja sadržaja polja, a
> glavni bi trebalo da bude kursor, i to kako _pre_ tako i za
> vreme edita.
U whenu mu ubaciš
keyb "šRIGHTARROWć"
keyb "šLEFTARROWć"
kao i u validu, ako imaš granu sa return .f.
Džebiga, jes krpež, al radi.
unknown.122nbatocanin,
-> #117, ndragan> Gos'n Poglavica Izvršni žinovnik (tj. CEO=PIž) bi imao
> dobiti u zaglavlju izveštaja nešto kao "prema podacima
> unetim do <datum><vreme>" gde bi stajao neki TimeStamp
> poslednjeg unetog/osveženog sloga. Uostalom, bilo koji
> podaci su netačni,
Pazi primer: u banci radiš interni prenos para sa računa na račun. Na
jednom računu 100 dinara, na drugom 100. Prenosi se 20 dinara sa
prvog na drugi. Prvo se skine novac sa prvog a onda doda drugom
računu. Ako se za izveštaj o stanju na računima uzima stanje u
sredini transakcije, dobiće se da je stanje prvog računa 80, a drugog
100, kao i da je ukupan zbir 180, što je _veoma_ netačno.
unknown.123kzoran,
-> #121, gcurcic> U whenu mu ubaciš
> keyb "šRIGHTARROWć"
> keyb "šLEFTARROWć"
Ali ovim se gubi čK funkcija :)
Pozdrav,
Zoran.
unknown.124vradjen,
VR>
VR> Da li neko poseduje sledece programe:
VR> -------------------------------------
VR>
VR> - FPW.EXE za FOXPRO FOR WINDOWS version 2.6 (bez Distribution
VR> Kit-a);
VR> -------
VR> - FPW_DK.EXE za FOXPRO FOR WINDOWS 2.6 (Distribution Kit);
VR> ----------
VR> - FPD.EXE za FOXPRO FOR MS-DOS 2.6 (bez Distribution Kit-a);
VR> -------
VR> - FPD_DK.EXE za FOXPRO FOR MS-DOS 2.6 (Distribution Kit);
VR> ----------
VR> - CK.EXE za CONNECTIVITY KIT;
VR> ------
VR> - APPS.EXE za FOXSTART.APP ili MIGRATE.APP;
VR> --------
VR> - DBHLPD.EXE za DBF HELP (MS-DOS);
VR> ----------
VR> - DBHLPW.EXE za DBF HELP (Windows);
VR> ----------
VR> - FOXAPP.EXE za FOXAPP;
VR> ----------
VR> - FPWHLP.EXE za Windows Help (HLP);
VR> ----------
VR> - GENPD.EXE za DRIVER2.FLL, GEN_PD.PRG, GENPD.APP, GENPD.PJT,
VR> GENPD.PJX;
VR> ---------
VR> - GENS.EXE za GENGRAPH.APP, GENMENU.PRG, GENSCRN.PRG,
VR> GENXTAB.PRG, TRANSPRT.PRG;
VR> --------
VR> - WIZCAT.EXE za CATALOG MANAGER i WIZARDS;
VR> ----------
VR>
VR> Naime, ovi programi su potrebni za patch-ovanje FP26 na FP26a.
VR> Dobio sam patch-ove, ali ne posedujem ove programe. ;)
VR>
VR> vradjen
unknown.125max.headroom,
-> #122, nbatocanin> sredini transakcije, dobiće se da je stanje prvog računa 80, a drugog
> 100, kao i da je ukupan zbir 180, što je _veoma_ netačno.
Jesje. Možda bi jedini pouzdani putokaz bio taj da se podaci u
izveštaju isporuče sa naznakom kao nepozudani, ma koliko to kontradiktorno
zvučalo :) Tj. na početku transakcije u kontrolni fajl se strpa nešto
poput "transakcija u toku", što je u izveštaju predstavljeno sa:
"Transakcije su u toku, podaci se mogu ispostaviti kao netačni".
Narafski, druga metoda je ili zabraniti izveštaje u toku transakcije,
ili zabraniti ažuriranje tokom kreiranja izveštaja. Možda ovo treće
rešenje najmanje boli... (na kraju krajeva, lakše se nalazi nova
mušterija nego novi šef)
unknown.126znevenic,
-> #113, willow> Posle 1 mesec odsustvovanja usled neplacene pretplate, eto
> mene opet. Naleteo na ovu tvoju poruku, pa da odgovorim.
A evo i mene posle neopravdanog (ali kraceg) odsustva ;)
Odmah cu da pokupim .PLB i da probam stvar, a uskoro slede
komentari.
Hvala, Zoran.
unknown.127pixel,
Imam jedan problem. Naime, kada menjam paletu preko porta (u watcomu,
funkcijom outp(port,vrednost)) posle 23 puta promeni mi se okvir.
Samo ako neko može da mi odgovori zašto se ovo dogadja.
Pozdrav Pixel.