PCPROG.2

06 Nov 1992 - 26 Jul 1993

Topics

  1. algoritmi (223)
  2. ms.dos (250)
  3. asembler (141)
  4. jezici (278)
  5. pascal (1307)
  6. cccc (752)
  7. cpp (91)
  8. clipper (1027)
  9. baze.podataka (229)
  10. razno (379)
  11. van.teme (189)
  12. basic (56)

Messages - clipper

clipper.416 dusanp, -> #414, ppekovic
=> driver-e za Paradox i FoxPro koji omogućuju CA-Clipper-u => da čita i Doslo im u glavu...
clipper.417 nbatocanin, -> #412, snemcev
> Pa i ne mora (ili mora?). Možda bi rešenje bilo u > zadavanju problematičnog GET-a kao > > oGet := GetNew() Naravno, ali koliko sam shvatio Dejana, njemu treba nešto da ne menja postojeće programe. Inače, ja koristim sledeću definiciju: #command @ <row>, <col> GETD <var> ; OPTIONS <arr> ; [VALID <valid>] ; [WHEN <when>] ; ; => SetPos( <row>, <col> ) ; ; AAdd( ; GetList, ; _GET_( <var>, <(var)>, , <{valid}>, <{when}> ) ; ) ; ; ATail(GetList):cargo := <arr> ; ; ATail(GetList):reader := { |o| xRead(o) } #command @ <row>, <col> SAY <sayxpr> ; [<sayClauses,...>] ; GETD <var> ; [<getClauses,...>] ; ; => @ <row>, <col> SAY <sayxpr> [<sayClauses>] ; ; @ Row(), Col()+1 GETD <var> [<getClauses>] i tako dobijam mogućnost za unos vrednosti koje uzimaju vrednost iz nekog skupa. Na primer, ovako: @ 0,0 SAY "DATUM..." GET m_dat @ 1,0 SAY "PREGLED." GETD m_preg OPTIONS {"Ekran","Stampac","Datoteka"} @ 3,0 SAY "DATUM..." GET m_dat READ Funkcija xRead učitava ovakvu vrednost.
clipper.418 bulaja, -> #414, ppekovic
│Cene: │CA-Clipper - za ograniceno vreme $149, posle $795. └─── ^^^ Nazalost :( nije bas tako (a taman sam resio da ga kupim :) - cena od 149 USD vazi samo za upgrade registrovanih korisnika. > List priced at $795, CA-Clipper 5.2 is available to registered > CA-Clipper developers for a limited time at $149.
clipper.419 toma, -> #365, petrovics
■■>> Ma znao sam ja sta je, problem je sto se ne brisu sve (neke se ■■>> brisu a neke ne). Ukoliko se program startuje iz jednog, a završava se u drugom direktorijumu na disku, i uz to sve nije rečeno clipper-u koji mu je SWAPPATH, mođe da dodje do pomenute situacie. ■■>> ... Najveci problem je sto se javljaju i LOST ■■>> klasteri koje moras da sredjujes sa NDD. Inace ovo se desava jos ■■>> jednom mom prijatelju, ovde u Nisu. U jednom delu programa je pisalo: use gl_knj index on DATUM to gl_knj reindex use u slucaju da .NTX ne postoji, indexiranje se radi dva puta, i ako je pri tome .DBF malo veći, clipper pravi neku svoju privremenu datoteku i posle toga se javljaju LOST klasteri. Nije pomoglo ni postavljanje environment promenljive TEMPPATH ali je zato pomoglo: ferase("gl_knj.ntx") use gl_knj index on DATUM to gl_knj use Probaj pa javi.
clipper.420 dejanr,
Imao sam jedan problemčić sa Clipper-om, pa reko' možda još nekoga muči... a možda i otkrivam toplu vodu :) Naime, ja nekako ne volim da se izlaskom iz poslednjeg GET-a sa Enter READ završi, imam utisak da se to prečesto dešava slučajno, i zato volim da READ stavim u petlju, a da se izlazi nekim funkcijskim tasterom ili sa Esc. U tom slučaju Enter u poslednjem polju naprosto "baca" u prvo polje i tako u krug. Problem je nastao kada se dogodilo da, zbog raznih READ ... WHEN uslova, program dođe u situaciju da ne treba da izvrši ni jedan GET (recimo, slog je "storniran" i nisu moguće izmene). Po mojoj logici, trebalo bi da tada ispiše masku i da čeka, da korisnik lupi svoje F10 ili Esc ili ne znam šta. Zaista program ispiše masku, ali nema izlaska (osim sa Alt C ;) nego sve ostaje u mrtvoj petlji. Pitah na BIX-u i evo (efektnog!) rešenja koje nudi moderator konferencije Clipper: ========== clipper/tech.questions #2708, from irae, 198 chars, Wed Mar 3 01:23:07 1993 Comment to 2707. ---------- I'd make the do while loop dependent on the when conditions or possiblt exit on lastkey() = 0 do while .t. keyboard chr(0) inkey() read save if lastkey() = 0 exit endif enddo
clipper.422 ndragan, -> #411, oki.
/ Domaći urađen :) : Odličan, 5 za tromesečje, sedi :)
clipper.423 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- nflib21 arj 171327* Clipper NanForum Toolkit biblioteka ver 2.1 Nisam jos gledao :) sta je promenjeno u odnosu na verziju 2.0. Nazalost, jos nismo nabavili i source za ovu verziju, tako da se do daljeg ostati u dir-u kompletna verzija 2.0 (lib, source, ostalo).
clipper.424 mandrejevic,
Radim izvesno vreme sa Clipper 5.01a Update (Computer Associates) i danas me je iznenadila po prvi put poruka : MS Run-Time Library - Copyright (: ^^ i ovo je deo poruke ! uz zaglavljenje... Da li da brisem ovaj Update ??
clipper.425 zkrstic, -> #424, mandrejevic
>>Radim izvesno vreme sa Clipper 5.01a Update (Computer Associates) >>i danas me je iznenadila po prvi put poruka : >>MS Run-Time Library - Copyright (: >> žž i ovo je deo poruke ! >>uz zaglavljenje... >>Da li da brisem ovaj Update ?? čekaj, morao je još neki broj da ti da ili nešto slično ? U svakom slu- čaju, pokušaj da se setiš ili da ga nateraš ponovo na isto, da bar znamo šta piše tačno, a u pitanju je očito nešto interno do samog Clippera, pošto je on pisan u MSC-u (nisu imali 16-a posla;) ) Ne brini i ne briši ga, zakucavam ga ja svaki bogovetni dan, pa ga još uvek nisam kazniJo sa nedim del. /s/z ;) Zkr
clipper.426 mjevta,
Voleo bih da ovo prokomentarisu iskusniji Sezamovi Clipperasi: Nedavno sam napisao komandu koja je trebalo da predstavlja jednostavnu implementaciju Check - boxa a la FOX u Clipperu a izgledala je otprilike ovako: #command @ <row>, <col> CHECKGET <var> ; [TEXT <text>] ; [VALID <valid>] ; [WHEN <when>] ; [COLOR <color>] ; => AAdd( GetList, ; GetNew( <row>, <col>, ; {|| IF( <var> ,"[X] ", "[ ] " ) + #<text> }, , , ; IIF( #<color> == "", "W/N,N/W", <(color)> ) ) ) ; ; ATail(GetList):reader := { |o| chkRead( o, @<var> ) } ; ; ATail(GetList):preBlock := <{when}> ; ; ATail(GetList):PostBlock := <{valid}> Medjutim, kompajler mi je uporno prijavljivao gresku "Incomplete statement or ... " iako je bilo ocigledno da u kodu nema niceg sintaksno neispravnog. Na kraju se, posle DOSTA peripetija, ispostavilo da je problem u direktnom "dodeljivanju" markera pretvaranja u blok (naknadno sam utvrdio da je isti slucaj i sa ostalim result markerima IZUZEV glupog - #<...> ) Naime, kada sam, probajuci razne varijante, zadnje dve linije naredbe zamenio sa: ; ATail(GetList):preBlock := IF(LEN(#<when>) != 0,<{when}>,) ; ; ATail(GetList):PostBlock:= IF(LEN(#<valid>)!= 0,<{valid}>,) sve je radilo kako treba. Dugo resenje bilo je: ; ATail(GetList):preBlock := TransMark( <{when}> ) ; ; ATail(GetList):PostBlock := TransMark( <{valid}> ) gde je: FUNC TransMark( block ) RETURN block Pa, posto u NG - u nisam primetio nikakvo upozorenje oko dodeljivanja r. markera odn. rezultujuceg teksta koji mu odgovara a od literature za Clipper imam samo Strejlijevu "bibliju" za S87 voleo bih da mi neko pojasni da li su za ovako neobicno ponasanje Clipperovog pretprocesora krivi gremlini ili sam ja nesto zabrljao u postavci komande. Pozdrav, Jevta.
clipper.427 d.petrovic,
Može li nekako da se izbriše, poništi, MENU TO naredba ? Ako imam negde set key pa i pritisnem inkriminisani key treba da se poništi ta menu to naredba. Evo osakaćenog primera, valjda će biti jasno ... č 24,30 say "Press Esc to exit..." do while .t. do while .t. setcursor(0) mm:=2 bek() č red,21 prompt " In " č red,29 prompt " Out " menu to mm && Šta ako ovde pritisne F-10 ??? do case case mm==0 close databases return case mm==1 vrsta_t:=.t. case mm==2 vrsta_t:=.f. endcase setcursor(1) if vrsta_t č red,42 clear to red,48 č red,21 get qty_t picture "9999999" valid ravno(qty_t) č red,38 get dest_t picture "!XX" valid uscrec(6,dest_t) else č red,29 get qty_t picture "9999999" valid ravno(qty_t) č red,38 get dest_t picture "!XX" valid uscrec(6,dest_t) č red,42 get uc_t picture "!XX" valid uscrec(1,uc_t) č red,46 get rc_t picture "!XX" valid uscrec(2,rc_t) endif č red,54 get wc_t picture "!XX" valid uscrec(4,wc_t) read if lastkey()==27 close databases return endif č 24,27 say "Press F-10 to save / Esc to exit..." setcursor(0) tt:=inkey(0) do case case tt==27 close databases return case tt==-9 do magunossn exit otherwise set key -9 to MagunosSn endcase enddo enddo close databases return ******************* proc magunossn set key -9 to clear gets * ovde dodati nešto što će sa menu to da uradi isto što i clear gets * sa naređanim get-ovima ??? ima li nešto takvo ? append blank replace... replace... return
clipper.428 mandrejevic, -> #425, zkrstic
>│ cekaj, morao je jos neki broj da ti da ili nesto slicno ? U >│ svakom slu- caju, pokusaj da se setis ili da ga nateras ponovo >│ na isto, da bar znamo sta pise tacno, a u pitanju je ocito >│ nesto interno do samog Clippera, posto je Pise tacno kako sam prepisao... ; odnosno, Prepisao sam tacno kako je pisalo... ; a i obrisao sam ga ...
clipper.429 mjevta, -> #426, mjevta
>ĆĆ Medjutim, kompajler mi je uporno prijavljivao gresku >ĆĆ "Incomplete statement or ... " iako je bilo ocigledno da u Uh, zatrcao sam se sa pitanjem. U stvari nema tu niceg spornog. U NG-u lepo pise da ukoliko nema ulaznog teksta result markeri nece sadrzati nista ( izuzimajuci dumb r.m. koji ce u tom slucaju biti zamenjen praznim stringom - ""). Tako da ako u gorepomenutoj naredbi klauzule WHEN i/ili VALID nisu upotrebljene rezultat njenog pretprocesiranja bice: Varijabla:= //(nista!=(NIL==sto_sam_ja_ko_zna_zasto_ocekivao)) Nije ni cudo sto se prevodilac bunio. Pardonirajte na neopravdanom opterecivanju PAD - a. Jevta.
clipper.430 mbulat,
Ako neko moze ,bio bi mu veoma zahvalan, da mi napishe kako bi otprilike trebalo da izgleda koriscenje funkcije MEMOEDIT i naravno mogucnost da se podaci osim da se gledaju mogu i da unesu u memo polja ja sam pokusavao ali nesupevam da ih unesem Ě... Unapred hvala .. mb :)
clipper.431 ppekovic, -> #427, d.petrovic
>> menu to mm && Šta ako ovde pritisne F-10 ??? Ništa. Ako hoćeš da F10 ima nekog efekta onda definiši set key K_F10 to proc_f10 a u proceduri postavi neko fleg kako bi kasnije mogao da ispitaš da li si izašao sa f10 i udari jedno keyboard(27). Paya
clipper.432 pjankovic, -> #430, mbulat
> otprilike trebalo da izgleda koriscenje funkcije MEMOEDIT > i naravno Za pocetak probaj jednostavno: replace memofield with memoedit(memofield) Memofield je naziv memo polja u bazi. Unos zavrsavas sa <Ctrl>+<W>.
clipper.433 nbatocanin, -> #415, ndragan
> Ne znam na šta misliš, možda na sintaksu baza.polje umesto > baza->polje; ili na SQL kursor, koji je nekakva virtuelna > baza (ne postoji, ali radi) Ako te ne mrzi, kaži po nekoliko reči o svemo nabrojanom. > ili... može da ispadne da si mislio na nešto što je uvedeno još u mfox+? Ne preteruj ;)
clipper.434 nbatocanin,
Beše neko pitao šta znači poruka "Rules not found in EXE"? E, to se dobije kada se CLIPPER.EXE obradi sa SCAN /AV.
clipper.435 d.petrovic, -> #430, mbulat
Ă> Ako neko moze ,bio bi mu veoma zahvalan, da mi napishe kako bi Ă> otprilike trebalo da izgleda koriscenje funkcije MEMOEDIT i Ă> naravno memoedit(ime_baze,2,2,23,77,.t.) ========= = prozor .t. <= čitanje i pisanje .f. <= samo čitanje
clipper.436 d.petrovic, -> #431, ppekovic
Ă> Ništa. Ako hoćeš da F10 ima nekog efekta onda definiši Ă> Ă> set key K_F10 to proc_f10 Khm, sad će me teraš da pogledam šta sam poslao ;). Pa to treba da radi tek kad prođe jednom kroz petlju i onda se vrti ponovo, tj. neko vrši ispravku onog što je uneo greškom. Ă> a u proceduri postavi neko fleg kako bi kasnije mogao da Ă> ispitaš da li si izašao sa f10 i udari jedno keyboard(27). E, to mi je trebalo, samo mi nije palo na pamet, mada..., već ispitujem: if lastkey==27 && Odustaje od unosa close databases return endif Hvala za ideju, iskombinovaću nešto takvo samo... kako da znam dali sam u proceduru koja snima otišao iz te linije gde je MENU TO ili gde je bio inkey(0) ? Nije mi baš praktično da prenosim broj linije, ne smem da menjam ništa ispred te linije.
clipper.437 dejanr,
"Zanimljiv" problem koji mi večeras uze dva sata vremena :((( Imam program koji radi u mreži, pri čemu su u principu sve datoteke otvorene sa USE ... SHARED, po potrebi se posle zaključavaju slogovi kad se koji menja. Međutim, u jednoj grani programa mora da se obezbedi da korisnik bude sam na mreži, kako bi se izvršilo reindeksiranje i neko regenerisanje podataka (operacija "daBogda_nikad_ne_zatrebala"). žinilo mi se najjednostavnijim da to obezbedim ovako: SELECT(aUsers) USE users EXCLUSIVE IF NetErr() tralala, ne moz to tako RETURN(.f.) END IF indeksiraj šta treba itd SELECT(aUsers) USE users SHARED RETURN(.t.) USERS je fajl koji inače sve kopije programa neprekidno drže otvoren jer im stalno treba. Ideja je bila da, ako ima bar jedan korisnik, neće uspeti USE users EXCLUSIVE i rešena stvar. Dok je bilo na jednom računaru, lepo je radilo ali kad ga stavih na Novell, pustim jednog korisnika, pustim drugog, uđem u ovu opciju kad ono TRAS, kaže Open Error na onoj USE liniji, do IF NetErr() ni ne dođe. MajkuMu. Probam samo program od opisanih 10 linija, radi lepo. U mom "velikom" programu, ne radi. Šetao sam to po raznim modulima, i ispadne da radi samo ako je pri početku, a nigde u radnom delu neće :( Posle silnog lupanja glave, setim se da sam u program instalirao svoj error handler, kao da sve izgleda ozbiljnije i da posle greške ispiše poruku i ostane u programu, a ne da izleti u DOS. Isključim error handler, kad ono radi :) Tu mi već sine da malo pročešljam uputstvo za Clipper, kad ono baš negde na strani 6-3 a oni opisuju moj slučaj, kaže error handler treba da izgleda otprilike ovako: FUNCTION MyError(e) IF e:genCode== EG_OPEN .AND. e:canDefault .AND. NetErr() RETURN(.f.) END IF ... ostalo tretiranje greške RETURN NIL Sreći nigde kraja, stavim ja ovo u program kad ono... ista meta, isto odstojanje :(((( Pogledam debagerom, kad dođe u MyError a ono jeste e:genCode == EG_OPEN i jeste čak i e:canDefault ali NetErr je .F. MajkuMu^2 :( Ništa, 'ajmo da probamo da ga vratimo iz error procedure ako je greška nastupila na liniji broj XXXX a na toj liniji je rečeno USE users EXCLUSIVE (ovo bi bilo mnogo ružno rešenje jer bih posle svake dodate linije morao da menjam i ovu proceduru, ali programirao sam ja na TI-59 sa apsolutnim adresiranjem pa sam i to preživeo ;)) Đavola, zaista se vrati u red iza USE ali je i tamo NetErr()=.f. pa se ne može uočiti greška. Tu sam već u totalnoj komi počeo da pregledam one primere koji idu uz Clipper, reko' možda odnekud nešto iskoči. I voila, u nekakvom direktorijumu .SYS (koji je, naravno, na samom dnu stabla e da bi ga čovek poslednjeg pregledao ;) nađem nešto što se zove ERRORSYS.PRG a ono tamo... kako se tretiraju greške ;) Magija je u tome da se na početak error procedure stavi: if e:genCode == EG_OPEN .and. e:osCode == 32 .and. e:canDefault NetErr(.t.) return (.f.) end if Kad već stavljate to, ćušnite i sledeće, tamo takođe stoji pa je valjda potrebno za sličan fenomen kod append blank: if e:genCode == EG_APPENDLOCK .and. e:canDefault NetErr(.t.) return (.f.) // NOTE end if Posle te "sitne" izmene, program radi baš kao što sam želeo. Sreća što je onaj što je pisao uputstvo negde u Americi, inače bi mu... da ne kažem šta ;>
clipper.438 dr.grba, -> #426, mjevta
>> [WHEN <when>] ; >> [COLOR <color>] ; >> => AAdd( GetList, ; >> GetNew( <row>, <col>, ; >> {|| IF( <var> ,"[X] ", "[ ] " ) + #<text> }, , , ; >> IIF( #<color> == "", "W/N,N/W", <(color)> ) ) ) ; Namerno sam ovako isekao quote. U knjizi Rick-a Spence-a (topla preporuka!) se puno govori o ovakvim i slicnim konstrukcijama. Nisam posebno verziran, ali mi se cini da ti u desnoj strani opisa komande nedostaje promenljiva <when>. Mislim da postojanje promenljivih komande mora biti tacno upareno na obe strane, a da redosled nije bitan (mozda se jave bolji poznavaoci oblasti, izvinjavam se ako gresim). Cinjenica je da opis komande prestaje onim IIF za boju... Nadam se da ces namirisati pravi trag. Pozdrav, dr ÔpŰa
clipper.439 ppekovic, -> #436, d.petrovic
>> Hvala za ideju, iskombinovaću nešto takvo samo... kako da znam dali >> sam u proceduru koja snima otišao iz te linije gde je MENU TO ili gde >> je bio inkey(0) ? Nije mi baš praktično da prenosim broj linije, ne >> smem da menjam ništa ispred te linije. Uvedi neki flag kojem ćeš da postavljaš različite vrednosti ispred MENU TO i ispred inkey(0). Paya
clipper.440 mbulat,
probacu on-line mrzi me da pishem reply na one poruke u Ęvezi memoedit aliÝ hvala u svakom slucaju :) Problem je u sledecem Kad ocu da zapishem znaci nesto u taj memo koristim se sa CRTL-W ali problem je u tome sto bar meni to nepolazi sa rukom bilo da je oblik Ć-î memoedita memoedit(polje,x1,y1,x2,y2) ili memoedit(polje,x1,y1,x2,y2,.t.) Plasim se da sve to ima veze sa ĐWeonim objektima za tbrowse jerbo mi se i ti unosi nalaze u takvoj jendoj proceduri jerbo kad je u nekom posebnom programu bez toga pokrenem radi a ovako nece :(( Nadam se da sam bio bar malko jasÂAšan mb.
clipper.441 petrovics, -> #419, toma
>> u slucaju da .NTX ne postoji, indexiranje se radi dva puta, i ako >> je pri tome .DBF malo veci, clipper pravi neku svoju privremenu >> datoteku i posle toga se javljaju LOST klasteri. Nije pomoglo ni >> postavljanje environment promenljive TEMPPATH ali je zato >> pomoglo: >> >> ferase("gl_knj.ntx") >> use gl_knj >> index on DATUM to gl_knj >> use >> >> Probaj pa javi. Mora da je to. Do duse nisam stigao da probam ali mislim da se i meni problem javlja u istoj situaciji. Hvala na objasnjenju.
clipper.442 d.petrovic, -> #439, ppekovic
Ă> Uvedi neki flag kojem ćeš da postavljaš različite vrednosti Ă> ispred MENU TO i ispred inkey(0). Dogovoreno! :)
clipper.443 bulaja,
Evo jedne biblioteke za malo lepse menije u Clipper-u. Pravljena je da bude funkcionalni ekvivalent PROMPT...MENU TO sistemu, ali uz poboljsanje da se moze definisati proizvoljan hot-key unutar prompta (a ne samo da to moze biti prvo slovo) i da se on lepse (istaknuto) prikazuje. Btw ima u NanForLIB slicnih funkcija, ali ove moje su bolje :) (pise u dokumentaciji i zasto). Ovo je tek prva verzija, treba da dodam jos neke stvari, ali ko hoce nek uzme i pogleda. Probajte, besplatno je :), a prilozen je i izvorni kod (source). bumenu10.arj
clipper.444 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- num2str zip 3290 Konverzija brojeva u slovni oblik (Clipper 5 & FoxPro) Num2Str - Numeric To String U arhivi se nalaze dve funkcije za konverziju brojeva u slovni oblik. Funkcije su namenjene programskim jezicima Clipper 5 i FoxPro. Za eventualne komentare se obratite autorima ili u odgovarajucu temu Sezamove konferencije PC.PROG. Evo nekih informacija o funkcijama: Datoteka Jezik Autor Sezam ──────────── ───────── ─────────────── ────────── NTOC.PRG Clipper 5 Nenad Batocanin nbatocanin SLOVIMA.PRG FoxPro MPA Zrenjanin ndragan SEZAM, 03/93
clipper.445 bulaja, -> #444, bulaja
│num2str zip 3290 Konverzija brojeva u slovni oblik (Clipper 5 & FoxPro) └─── Zaboravih da kazem da su u arhivi i NTOC i SLOVIMA najnovije verzije (novije od onih koje su bile okacen ovde) sa ispravljenim bugovima.
clipper.446 nbatocanin, -> #427, d.petrovic
SET KEY K_F10 TO Break() BEGIN SEQUENCE ... MENU TO ... END SEQUENCE
clipper.447 nbatocanin,
Uočio sam neke loše strane Blinkera: Prvo, desilo mi se na jednom 286 računaru da program linkovan Blinkerom jednostavno zaglavljuje računar. Stvar je sigurno u linkeru, jer isti program linkovan RTLinkom radi bez komplikacija. Drugo, inkrementalno linkovanje rezultuje kodom koji nemilosrdno troši memoriju: znači >>obavezno<< finalnu verziju prevodite sa INCREMENTAL OFF.
clipper.448 dusanp, -> #443, bulaja
=> Probajte, besplatno je :), a prilozen je i izvorni kod => (source). Lepo. Nego... jel si namerno na 2 mesta napisao "kopjuteri"??? Doradi jos onih par stvari pa salji.
clipper.449 dusanp, -> #447, nbatocanin
=> Drugo, inkrementalno linkovanje rezultuje kodom koji => nemilosrdno troši memoriju: znači >>obavezno<< finalnu => verziju prevodite sa INCREMENTAL OFF. Ili sto je jos bolje, finalnu verziju prevodite RTLinkom.
clipper.450 zkrstic, -> #449, dusanp
> => Drugo, inkrementalno linkovanje rezultuje kodom koji > => nemilosrdno troši memoriju: znači >>obavezno<< finalnu > => verziju prevodite sa INCREMENTAL OFF. > > Ili sto je jos bolje, finalnu verziju prevodite RTLinkom. Ni slučajno! Pa glavna dobit kod Blinkera je u Swapovanjima i upra- vljanju OVL-ova. Nego, daj *.lnk fajl tog programa koji ti pravi haos, tačnije, re- ci mi šta koristiš od "tuđih" .OBJ i .LIB ? Ima nekih libova i čuda koji su u dokumentaciji obeleženi kao ne-overlejabilni (jebote*_koja_reč) ;) Zkr
clipper.451 ndragan, -> #433, nbatocanin
/ Ako te ne mrzi, kaži po nekoliko reči o svemo nabrojanom. Hm. Duga priča. Svodi se na to da mi se sad bilo kakav izveštaj (tj. prg koji ga pravi) skrati na dva ekrana: pootvaraj - desetak redi pitaj korisnika odakle dokle, kojim redosledom, u kom formatu hoće - još desetak redi Select to_i_to (polja, izrazi tipa sum(), iif(), avg(), max(), cnt() itd) from... baza1, baza2... where uslov1 and uslov2 itd... ... order by polje1, polje2... (ili) ... group by baza1.polje1, baza1.polje2... (grupisanje za sum() itd) into cursor / table (dbf) / šta_ono_beše (Ako postoje strukturni indeksi za (neka) polja koja se spominju u Where opciji, radi stravično brzo. Imao sam 15MHz 286 server u RPTI mreži (486 je bio u kvaru ;( ), i izvadio je bruto bilans iz 80000 stavki za minut ipo, a za to vreme je sa sprata niže knjižilo još dvoje.) Repo form taj_i_taj Pozatvaraj, pozdravi se i javi da si gotov. Programi koji su ranije bili duuugački (čak do 5-8K) sad su se sveli na 1-3K, a i to zato što više volim jedan program koji radi tri srodna izveštaja (uz par parametara radi ovako ili onako), nego tri programa sa po jednim - kad treba nešto čačkati, čačka se samo jednom. Evo jednog primera za Select: select Prom.VD, Prom.KUPAC, Prom.KONTO,; Prom.DATDOK, Prom.DUG, Prom.veza,; sum(IZNOS*IIF(DUG,1,0)) as izndug, sum(IIF(DUG,0,IZNOS)) as iznpot; FROM Prom; WHERE Prom.KONTO = _konto; AND Prom.datdok <= _dn2 ; and Prom.kupac betw _k1 and _k2 ; GROUP BY Prom.KUPAC, Prom.KONTO, Prom.datdok ; into curs pku Ovo je priprema za izveštaj o prometu kupaca i/ili dobavljača od šifre do šifre (_k1 do _k2), na dan _dn2 (posle se razdvaja na pre _dn1 i od _dn1 do _dn2 i to u samom riportu - ima lokalne promenljive), za zadati konto (može i prazan - trimuje se, pa se dobija više konta). Ako je neko raspoložen da pogleda na šta je isti program ličio ranije, pa da se zajedno zgražavamo. Radilo je i ono, ali ovo RADI. /> ili... može da ispadne da si mislio na nešto što je uvedeno još u /> mfox+? / Ne preteruj ;) Svaki Ciga svoga konja... a ove priče o kobolu i foksu (vidi neku od prethodnih tema) me podsećaju na mog drugara iz firme, kad je prešao sa kobola na foks. Kaže 'osećam se kao klinac u poslastičarnici, lepo ne znam šta prvo da probam. I onda ne znam sintaksu, znam neke moguće varijante, probam intuitivno, kako bi bilo kad bih ja pisao sebi interpreter, ... kad ono radi baš to što sam ja smislio'.
clipper.452 dusanp, -> #450, zkrstic
=> Ni slučajno! Pa glavna dobit kod Blinkera je u => Swapovanjima i upravljanju OVL-ova. Da li si 100% siguran da je tako? Koliko sam ja nacuo, blinker dosta trapavo pravi overleje, a RTL to radi kako treba. Mislio sam da je glavna prednost blinkera brzina, a kad ono...
clipper.453 zokidr,
Juce sam podigao Nanforum 2.1 i malo ga testirao. Ispostavilo se da neke funkcije ne rade! FT_XBOX(), na primer, nisam mogao da nateram da napravi ram i sl. Dok je u prethodnoj verziji sve bilo o.k. Da li jos neko ima slicna iskustva? Zoran
clipper.454 bulaja, -> #448, dusanp
│Nego... jel si namerno na 2 mesta napisao "kopjuteri"??? └─── Jok :), imam obicaj da pri veoma brzom kucanju (a uputstva kucam vrlo brzo jer me mrzi da ih mnogo smisljam i trosim vreme :) ispustam ili permutujem slova :). Doradicu BuMenu ovih dana (nije neki vremenski zahtevan posao), poslacu kad zavrsim.
clipper.455 nbatocanin, -> #440, mbulat
> Plasim se da sve to ima veze sa ĐWeonim objektima za > tbrowse Nije 100%. Mora da je stvar u nečem drugom.
clipper.456 nbatocanin, -> #450, zkrstic
> Nego, daj *.lnk fajl tog programa koji ti pravi haos, > tačnije, re- ci mi šta koristiš od "tuđih" .OBJ i .LIB ? > Ima nekih libova i čuda koji su u dokumentaciji obeleženi > kao ne-overlejabilni (jebote*_koja_reč) ;) Nema ništa tuđe sve sam go Clipper ;) i moj ASM koji radi u svim programima. Zašto bi isti program linkovan RTLinkom radio besprekorno već 2 godine?
clipper.457 zkrstic, -> #452, dusanp
> => Ni slučajno! Pa glavna dobit kod Blinkera je u > => Swapovanjima i upravljanju OVL-ova. > > Da li si 100% siguran da je tako? Koliko sam ja > nacuo, blinker dosta trapavo pravi overleje, a RTL > to radi kako treba. Veruj mi na reč :) žak je najveći deo prateće knjige posvećen OVLovima i radu sa njima. Ja sam prezadovoljan kako mi to sve radi. Uzgred, ni one opci- je tima "DEMO CALLS" ili "DEMO DATE" ili čak "DEMO MINUTES" nisu na bacanje. Zkr
clipper.458 zkrstic, -> #456, nbatocanin
> Nema ništa tuđe sve sam go Clipper ;) i moj ASM koji radi u svim > programima. Zašto bi isti program linkovan RTLinkom radio > besprekorno već 2 godine? Kratko i jasno: Inat & maler & baksuzluk (čitaj:Marfi) :) Ne, zaista neznam u čemu je onda štos? Na žalost, nisam imao pri- like da probam na 286-ici. Mogu ti reći da si me sada malko poplašio. Zkr
clipper.459 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- pkv4 zip 14841 Clipper source za pregled i raspakivanje ZIP 2.0 arhiva This utility is for: ~~~~~~~~~~~~~~~~~~~~ 1. Searching a ".ZIP" file to see whats inside of it. 2. Viewing files within a PKzip file 3. Extracting files from a PKzip file The utility has been only tested with PKZIP version 2.nn and should work on prior version.
clipper.460 dejanr, -> #459, bulaja
>> The utility has been only tested with PKZIP version 2.nn and should >> work on prior version Ala to brzo ide... još da nabavimo PKZIP za Clipper i rešen problem backup-a. Ja sam sad za jedan program eksperimentalno napravio BACKUP kao SwpRunCmd("PKZIP -Pr&f A:BACKUP "+AllTrim(cdir)+"\*.DBF", 300, "", "") i za sada lepo radi, jedino moram da pozatvaram sve fajlove u cdir-u jer ih ZIP izgleda otvara ekskluzivno (nemam ideju šta mu to treba) pa pod Novellom puca ako neku i Clipper drži.
clipper.461 dejanr,
========== clipper/tech.questions #2709, from akarna, 371 chars, Sat Mar 13 11:31:48 1993 ---------- I'm thinking about picking up a copy of Clipper 5.2, esp. with the good "competetive upgrade" price. I was just wondering, however: I know that I can call a C fcn from within Clipper, but can I go in the other direction? For example, if I write a Clipper fcn, can I call it from within a C fcn? Also, does the C linking capability support Borland's compilers? Thanks! ========== clipper/tech.questions #2710, from irae, 165 chars, Sat Mar 13 23:52:23 1993 Comment to 2709. ---------- C from Clipper is easy, Clipper from C is possible. The Borland compilers will work within some limits, one of which is no floating point stuff can be used. ========== clipper/tech.questions #2711, from scousins, 622 chars, Wed Mar 17 17:49:20 1993 Comment(s). ---------- TITLE: clipper52 problms I just got the 5.2 upgrade and am having problems with some functions (like indexord() and dbskip() when using an alias in fromt of it. for instance filename->(indexord()) alos when macro evaluating in thi s same way: nTenp := &cFilename->(indexord()) Do you have any clues? Also, in general is there a way to get out of using macros in this way, using code blocks for instance? We use a datadictionary to allow us to make new databases within the program so this is useful but slow (and now with 5.2 it is giving us problems). Any help would be greatly appreaciated. ========== clipper/tech.questions #2712, from irae, 232 chars, Wed Mar 17 23:55:29 1993 Comment to 2711. ---------- Since you don't tell us what the problems I can't help. I will point out that you don't need the macro in one of those spots. nTemp := (cFilename)->(indexord()) ought to work just as well if I remember correctly. ========== clipper/tech.questions #2713, from scousins, 658 chars, Fri Mar 19 18:13:52 1993 Comment(s). ---------- TITLE: Params and locals Thanks for answering my last question , the parenthises worked. Now I am haveing a problem with parameters. When I define the params fo a function as in: FUNCTION MYFUNC(var1, var2) instead of using a PARAMETERS call, var1, and var2 should be LOCAL variables. If I then declare LOCAL var3, sometimes var3 will have the value that var1 should have, and var1 will be NIL Does this make any sense? If I use the PARAMETERS clall, (making var1 and var2 private) this does not happen. I don't recall this happening with 5.01a. Do you think it is a 5.2 bug or am I doing something wrong? Thanks for your help. ========== clipper/tech.questions #2714, from irae, 80 chars, Sat Mar 20 02:30:51 1993 Comment to 2713. ---------- I'm clueless. Can you put up a short example demonstrating the problem?
clipper.462 dr.grba,
Prvi put srecem problem potrebe ispitivanja postojanja poddirektorijuma. Mislio sam da se moze resiti preko file handle funkcija, ali kraci eksperiment je urodio neuspehom. Dakle, treba mi funkcija koja ispituje postojanje direktorijuma ispod tekuceg, pa ako ga nema - da ga kreira. Da sam verziran u asembleru, (kao sto nisam ): ) valjda bih umeo da resim... Mozete li mi pomoci? Pozdrav, dr ÔpŰa
clipper.463 mandrejevic,
Hocu da ugradim sat u jednu aplikaciju, pa mi trebe neka dobra dusa da mi izkompajlira prilozeni .asm kod, koga sam iskopao kod Tangram BBS-a. Nebi bilo na odmet da se izvuku ofseti za red, kolonu i boju sata. sat_asm.arj
clipper.464 d.petrovic, -> #462, dr.grba
Ă> Prvi put srecem problem potrebe ispitivanja postojanja Ă> poddirektorijuma. Pogledaj funkciju ft_tree() iz nanfor biblioteke. Vraća u niz SVE direktorijume i subdirektorijume.
clipper.465 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- objectcl arj 175383 Objektno orijentisana biblioteka za Clipper 5.01 (#1/4) objectcl a01 175175 Objektno orijentisana biblioteka za Clipper 5.01 (#2/4) objectcl a02 175321 Objektno orijentisana biblioteka za Clipper 5.01 (#3/4) objectcl a03 173080 Objektno orijentisana biblioteka za Clipper 5.01 (#4/4) OBJECT.LIB high level object oriented library for Clipper v5.01 Basic features: ~~~~~~~~~~~~~~~ - object oriented (classes,heredity,...) - user task swapping - "Windows - like" user interface - multithreading is enabled - event driven programming support through the philosophy of the library - data driven programming capability and design - generated code is true network capable - user defined reports - user defined filters - user defined indexes - unlimited paswords, user privileges individual to every menu item, every database field - automatic generated help system with context help - user defined help system - all graphical cards text mode support (CGA,EGA,VGA,HGC,laptops,monochromVGA,...) - clipper language enhancements - dramatical shortening of a aplication developement time, aplication length in 200 to 2000 (for very large apps.) source code lines - basic functions of a program can be presented to the user in the very first time consulting his problem - simple program maintenance - documentation in a form of "norton guide" in a file OBJECT.NG The library is 420kB of source code with 330kB of documentation, consists of 450 functions, methods or procedures and many new commands.
clipper.466 dr.grba, -> #464, d.petrovic
Hvala ti na odgovoru. Pomogao je posredno. Naime, dok sam (najzad pazljivo!) prelistao NANFOR.NG, trazeci FT_TREE(), ugledah na istom ekranu i FT_EXIST(), koji radi upravo ono sto trazim. Marfi : Ako ne uspe drugacije, procitaj uputstvo... (: Pozdrav, dr ÔpŰa
clipper.467 dr.grba, -> #463, mandrejevic
ASM programom CLOCK sam uspeo da resim sat na interfejsu, koji vrlo uspesno resava sva pitanja koja si postavio. PAZNJA : program je malo agresivan, jer zahteva da otkacis interapt pre napustanja glavnog programa. U protivnom - sistem se zakucava... Pozdrav, dr ÔpŰa P.S. E, jos da uspem da zakacim fajl uz poruku, nemam neko iskustvo... clock.arj
clipper.468 dr.grba,
Meni za vezbu attach, a svima koje interesuje, kacim profiler za ugradnju u programe koje prepustate na milost i nemilost korisnicima. Shareware koji sam davno skinuo sa RHINOCEROS BBS-a... HINT : Ako vec budete ugradjivali izlaz u neku datoteku PROFIL.DAT ili slicno, setite se, pa ispitujte duzinu datoteke. Ako prelazi neku unapred odredjenu velicinu, rename u PROFIL.OLD, pa kreirajte novu. Ovo je samo prenosenje iskustva programera koga je Marfi dosada prebio na mrtvo ime ): Nije mi bilo svejedno kad sam obisao prvu aplikaciju kod korisnika koji je imao profiler - PROFIL.DAT 2543098 .... ili tu negde, debelo preko 2 MB ): (((: Press <CTRL>-<ALT>-<DEL> to continue ... profiler.arj
clipper.469 mandrejevic, -> #467, dr.grba
>│ ASM programom CLOCK sam uspeo da resim sat na interfejsu, koji >│ vrlo uspesno resava sva pitanja koja si postavio. Resio sve probleme. Mnogo ti hvala !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
clipper.470 dr.grba, -> #469, mandrejevic
Molim, i drugi put. Pozdrav, dr ÔpŰa
clipper.471 ndragan, -> #462, dr.grba
/ direktorijuma ispod tekuceg, pa ako ga nema - da ga kreira. Da znaš. Snalazio sam se tako što sam pokušavao da napravim .tmp fajl u njemu, pa ako ne ide, to je zato što nema ni direktorija.
clipper.472 enter,
Imam´ko problema sa APPEND FROM komandom. Program je koristi za spajanje ┼vise datoteka ist╗┼čvUeí$6Ţ>Ń strukture u jednu zajednicku. ║BeÚĆz ikakvog pravila nekad ih spoji nekad ne. Postoji mogucnost da clipper kada pravi swţbapQ'Ż╔╦1ďžmp╣╔I7Ä.H"š#fajloćŇ>Ç>/m$ĽDNďÝíĆX╗XĐůC ôčŠ4úGÚ ¤ve izgubi informacije o strukturi datoteka i ne prebacuje sva polja ???Đ
clipper.473 nbatocanin, -> #467, dr.grba
> PAZNJA : program je malo agresivan, jer zahteva da otkacis > interapt pre napustanja glavnog programa. U protivnom - > sistem se zakucava... Nisam baš siguran da je ovo pravo rešenje - sam si rekao zašto. Ja već dugo koristim čist Clipper sistem koji sam opisao u jednom broju "Računara": jednostavno se napravi nova procedura za skaniranje tastature i eto sata, gašenja ekrana posle N sekundi i sl. Sve u Clipper-u i potpuno bezbedno!
clipper.474 dejanr, -> #472, enter
Poruka je dosta uništena đubretom, pa nisam najbolje razumeo pitanje. Za početak, da nije datoteka iz koje radiš APPEND FROM otvorena? Obavezno je zatvori sa CLOSE
clipper.475 snemcev,
>> Ovo je dušu dalo za rutine koje treba da skoknu u drugu bazu da nešto >> urade, pa da se vrate u prvu - rutina uopšte ne mora da zna koja baza >> je bila selektovana na početku. A šta bi sa onim drugi_alias->(radi())?
clipper.476 mbulat,
Zanima me al bilo ovde reci o indexiranju baze kada su u upotrebi i nasa slova tacnije YASCII set i zamena za komande isalpha() valjda │:) i slicne cake kada su u pitanju i nasa slova i + da li su slati ovde neke datoteke sa konkretnim primerima online mb
clipper.477 dejanr,
Danas sam imao problema sa Blinker-om, otprilike problema onog tipa koje pominje nbatocanin. Imam neko čudo od programa koje nisam ja pisao, i koje radi pod Clipper S'87. Imalo je nekih .OBJ fajlova kojih nisam imao source, a pošto danas i to pitanje reših (da ne pričam kako ;) reko' da probam da to sve prebacim na 5.x. Napravim .LNK, make itd, prevedem, malo problema ovde-onde, i najzad sredim da radi. Lepo sve, ali čim uđe u dbedit pukne, ponekad QEMM javi da je izvršena nepostojeća instrukcija pa se zaglupi, a ponekad se zaglupi i bez pomoći QEMM-a. Kada se linkuje sa BLINKER INCREMENTAL OFF, sve u redu. Probao sam da smanjujem ono INCREMENTAL PAD sa 128 na 60, 40, 10, i pojavljuju se izvesne razlike - dbedit ispiše deo ekrana (što manje broj stavim u INCREMENTAL PAD, to više ispiše) ali nikako ne može da stigne do dna ekrana, i uvek se zaglupi :( Ne znam može li tu išta da se pokuša osim da se uvek linkuje sa incremental off?
clipper.478 nbatocanin, -> #476, mbulat
Ja mislim da sam poslao sve što treba za to. Ako nisam, kažite da šaljem :)
clipper.479 nbatocanin, -> #477, dejanr
> Ne znam može li tu išta da se pokuša osim da se uvek > linkuje sa incremental off? Problem je u korišćenju memorije: treba probati da mu se isključi EMS i XMS memorija. Imaju direktive za to.
clipper.480 dejanr, -> #479, nbatocanin
>> Problem je u korišćenju memorije: treba probati da mu se isključi EMS >> i XMS memorija. Imaju direktive za to. Kome, BLINKER-u ili prevedenom programu?
clipper.481 ndragan, -> #463, mandrejevic
/ Hocu da ugradim sat u jednu aplikaciju, pa mi trebe neka dobra Za foksovce koji to još nisu probali: SET CLOCK ON SET HOURS TO 24 SET CLOCK TO 24,69 (ili neke druge koordinate)
clipper.482 ndragan, -> #474, dejanr
/ Za početak, da nije datoteka iz koje radiš APPEND FROM otvorena? / Obavezno je zatvori sa CLOSE U FoksPro 2.0 ovo više nije obavezno.
clipper.483 ndragan, -> #475, snemcev
/ A šta bi sa onim drugi_alias->(radi())? Nije mi jasno šta u stvari pitaš. Konstrukcija kakvu navodiš nije baš ona na koju sam navikao; štos je da FP2 obožava imenske izraze (name expression) tako da možeš uvek da strpaš naziv bilo čega (polja, baze, aliasa, prozora, rutine, proceduralnog fajla) u promenljivu, i onda ga navedeš u zagradi. Recimo, za indeks za jednokratnu upotrebu koristim obično ovaj postupak: tmp=sys(3)+'.idx' && ovo .idx je bitno samo za kraj index on &dex to (tmp) for &uslov * indeksni pojam i filter nemaju imena, ide čista makro zamena; da je * indeksni pojam jedno polje, mogao bih da stavim * index on (dex) to (tmp) for &uslov ..... * pozatvaram i brišem indeks if file(tmp) erase (tmp) endif Na sličan način mogu da negde iskonstruišem ovako nešto polje='baza.polje1' .... č red,kolona get (polje) Za konstrukciju tipa baza.(izraz) nisam siguran da će da radi, treba probati.
clipper.484 mbulat, -> #478, nbatocanin
č> Ja mislim da sam poslao sve što treba za to. Ako nisam, č> kažite da šaljem :) Ma dobro to je ok :) Nego posto nepratim bas redovno ovu temu interesuje me gde si to slao i koje su to otprilike poruke ili datoteke :)
clipper.485 dejanr, -> #476, mbulat
>> Zanima me al bilo ovde reci o indexiranju baze kada su u upotrebi i nasa >> slova tacnije YASCII set i zamena za komande isalpha() valjda :) i >> slicne cake kada su u pitanju i nasa slova Pogledaj "Računare 74", strana 59 - tekst se zove Clipper sa kvačicama i rešava (bar meni ;) sve probleme tog tipa. Autor je NBatocanin.
clipper.486 dejanr, -> #463, mandrejevic
>> Hocu da ugradim sat u jednu aplikaciju, pa mi trebe neka dobra Ubedljivo najlakši način (nisam znao za njega, ali ga juče nađoh u nekom programu koji prepravljam) je linkovati FUNCKY.LIB (postoji i FUNCKY87 i FUNCKY 50) i onda samo koristiti CLOCK24(y_koordinata, x_koordinata). Jedini problem je što ga ispisuje crno-belo (možda ima i neki način da se setuju boje?) Uzgred, taj FUNCKY.LIB ima lepih stvari, što više na njih nailazim u tom programu to mi se više sviđaju. Šteta jedino što uz taj source i sam FUNCKY.LIB nisam "nasledio" i dokumentaciju, a navodno je kupljena :(( FoxPro to ima "u samom sebi", samo kažeš set clock to y,x (sorry ako sam pogrešio sintaksu, ali u svakom slučaju nešto jako slično tome)
clipper.487 draganf, -> #476, mbulat
> Zanima me al bilo ovde reci o indexiranju baze kada su u > upotrebi i nasa slova tacnije YASCII set i zamena za > komande isalpha() valjda │:) i slicne cake kada su u > pitanju i nasa slova i + da li su slati ovde neke datoteke > sa konkretnim primerima Bilo je toga, a ako ne nađeš , javi se pa ću nešto od toga da ti spakujem. Samo treba da znaš da funkcije koje to rade su dosta spore ako su rađene u clipperu. Dragan
clipper.488 rboskovic,
Da li je neko imao ovakav problem: na tri mesta imam instaliranu mrezicu NovellLite 1.1. Svi programi uglavnom lepo rade, osim programa pisanih u Clipperu i to prilikom stampanja. Unos podataka tece normalno, a kada se predje na stampu obavezno dolazi do brljanja podataka u datoteci koja se stampa. Preko slogova se upisuje neki budibogsnama kakav sadrzaj. Pri tome sam radio probe: kada je stampac ukljucen pojava je slucajna, ali kada je iskljucen (a print job treba da ode u buffer) onda je to pravilo. Nije mi jasno da stampa iz Winworda, Corela i slicnih grafickih programa ide normalno, da isto tako ide normalno i DOS, a da pukne na programima za knjigovodstvo ili bibliotecku evidenciju. Svaka pomoc koja bi mi omogucila da ovo resim je dobrodosla. Pozdrav, Rade
clipper.489 zkrstic, -> #488, rboskovic
> Svaka pomoc koja bi mi omogucila da ovo resim je dobrodosla. Novell ne preporučUje upotrebu naredbi PRINT (DOS) ili nekih sličnih za ovo: (u to spada i SET DEVICE TO PRINTER / č SAY ... ) Rešenje: - sva štampa treba prvo da ide u fajl - u prg (Clipper) se samo štampanje izvoditi sa "NET PRINT <ime_fajla> <ime_mrežnog_printera>" To mora da radi :) Zkr
clipper.490 bulaja, -> #485, dejanr
│Pogledaj "Racunare 74", strana 59 - tekst se zove Clipper sa kvacicama │i resava (bar meni ;) sve probleme tog tipa. Autor je NBatocanin. └─── Pogledah i nema toga u RSOFT dir-u. Nenade, moze li upload? :)
clipper.491 dusanp,
Posto snap gresi kada se radi sa vise modula, a i nije mi bila potrebna ona gomila informacija, napisao sam svoju verziju doc programa, koja samo lepo odvoji funkcije i procedure - vecini korisnika je i to dovoljno. Isprobajte programce koje ide uz poruku - extra sto dajem i sors pa kome se ne svidja moze da se igra dalje. doc.arj
clipper.492 rboskovic, -> #489, zkrstic
>>NWLITE... Hvala na proptnoj informaciji. Probacu danas-sutra da to napravim, pa ako prodje imas pice. (piche). More i jos ponesto, jer ce to da me spase reinstalacije nekih 550 Mb podataka i programa! Pozdrav, Rade
clipper.493 mpeti,
E narode !!!!! Evo još jednog BUG-a u Clipperu 5.01. Radi se o sledećem: Imam .FRM datoteku u kojoj je opcija PAGE EJECT AFTER GROUP postavljena na yes. U starom (Summer '87) Clipperu i Dbase III+ ovo jako lepo radi. Odštampa subtotal za grupu, predje na novu stranu, odštampa zaglavlje strane, i tabele, pa štampa sledeću grupu. ALI - i tu počinju moji problemi - novi Clipper radi sve samo što ovaj flag ignoriše pa mi štampa ceo izveštaj tako, da ne počinje novu grupu na novoj strani nego jednostavno nastavlja na tekućoj. Da li je neko već primetio ovo, ili još bolje da pitam, da li je neko već ISPRAVIO ovo. Pretpostavljam da je greška u FRMRUN.PRG, i da bi on trebao malo da se pročačka, ali još nisam stigao da ga pogledam. Pa narode ako neko ima neku ideju, javite se.
clipper.494 zkrstic, -> #493, mpeti
>>Imam .FRM datoteku u kojoj je opcija PAGE EJECT AFTER GROUP postavljena >>na yes. U starom (Summer '87) Clipperu i Dbase III+ ovo jako lepo radi. >>Pa narode ako neko ima neku ideju, javite se. Ideja & savet: Batali bre FRM fajlove, koji će ti to andrak' u životu. To je pra- vljeno za tupe Amere koji ne umeju sami da naprave izveštaj za štampu. Pra- vi lepo svoju rutinicu koja će ti raditi štampu i nema greške. Da su oni u Nantucketu normalni, davno bi to izbacili kao što su NDX izbacili, premda, videh sinoć da ga ima na nekom stranjskom BBS-u. Zkr
clipper.495 nbatocanin, -> #490, bulaja
YUpper, YLower, YtoABC i YtoAZB za indeksiranje po azbuci i abecedi. yucl.zip
clipper.496 nbatocanin, -> #480, dejanr
>>> Problem je u korišćenju memorije: treba probati da mu se >>> isključi EMS i XMS memorija. Imaju direktive za to. > > Kome, BLINKER-u ili prevedenom programu? Prevedenom programu (BLINKER CACHE). Mislim da je tu problem, ali nije sigurno. U svakom slučaju, mislim da stvar nije za uzbunu pošto se pri korišćenju EMS-a redovno pojavljuje problem kompatibilnosti. Na primer, ni WP ne radi OK na svim pločama.
clipper.497 d.petrovic,
Odgovor na 10.96 valeksa ------------------------ Ă># Pitanje: Kako bez: Ă># if file("pkzip.exe") ... Ă> evo ti jedan moj batch file, mada je za DR.DOS 6. Sada radim: If .not. file("pkzip.exe") .and. .not. file("ĐutilĐpkzip.exe") DevOut("nece moci, blabla") else *pozovem ga odande gde se nalazi sa parametrima... endif Mene interesuje može li da se jednostavno pozove iz clipper programa pa, ako je završio posao sve je u redu, ako nije bio na stazi (svejedno gde se nalazio, šta me pa to briga ko će gde da drži pomoćne programe i šta će mu biti na stazi) da znam da nije završio posao i da ispišem na ekranu šta_mi_se_ćefne. Za proveru flopija imaš u nanfor.lib funkciju ft_floptst (valjda se tako zove) pomoću koje možeš da napraviš lepe svoje funkcije. Obrati pažnju, povezi računa, za tu funkciju postoji ispravka, funkcija koja se nalazi u biblioteci se uvek obraća flopiju "A", kad je zameniš može da ispituje i "B".
clipper.498 ndragan, -> #494, zkrstic
/ Batali bre FRM fajlove, koji će ti to andrak' u životu. FRM su ogavno loši izveštaji. Tek je FRX ono pravo.
clipper.499 tarva, -> #460, dejanr
Í───────────────── ║> SwpRunCmd("PKZIP -Pr&f A:BACKUP "+AllTrim(cdir)+"Đ*.DBF", 300, "", ║> "") ║> ║> i za sada lepo radi, jedino moram da pozatvaram sve fajlove u ║> cdir-u jer ih ZIP izgleda otvara ekskluzivno (nemam ideju šta mu ║> to treba) pa pod Novellom puca ako neku i Clipper drži. Ë───────────────────────────────────── Probao sam ovo sa SwpRunCmd(...etc...) i ne radi. Mogući uzrok. 1. Nabavljen na probu samo BLINKER.EXE 2. Možda treba setovati neku opciju dodatno? U vezi s tim tri pitanja: 1. Gde sa može kupiti orginal "BLINKER". 2. Da li treba dodati još neki parametar 3. Ili nešto treće? Pozdrav, Tibor.
clipper.500 gari,
Odgovor na 5.223 i 5.226 iz conf. PC.PROG Problem je u tome sto mi ColorRect oboji samo deo linije na kome su ispisana polja, a ostanu crne rupe izmedju dva polja. Sto ne probas sa sledecim MARK-om: SetColor (Invert) @ Row(), Col() SAY Polje1 + " " + Polje1 + ... ili nesto slicno. Evo, ja sam relativno nov na Sezamu, pa dok nisam procitao sve diskusije sada sam tek stigao da malo prilagodim svoju funckiju T_Edit. :) Inace ova funkcija ima tridesetak parametara, ovo je kraci izvod, ;) pa ako ima zainteresovanih, ja cu je poslati celu (oko 1200 linija). ... tbMark(TB,.T.,Polja) && Polja == Niz sa poljima iz datoteka ili f-cijama nKey := INKEY(0) tbMark(TB,.F.,Polja) ... FUNCTION tbMark( TB , Osvetli , KojaPolja ) LOCAL broj_kolona:=0, brojac:=0, efektivna_sirina:=0, sadrzaj:="" LOCAL uk_prazno:=0, levo_prazno:=0, temp2:={} PRIVATE temp, bojica:=setColor() if Osvetli set color to i broj_kolona := TB:rightVisible - TB:leftVisible + 1 efektivna_sirina := broj_kolona - 1 && Broj separatora for brojac := 1 to TB:freeze efektivna_sirina += TB:ColWidth(brojac) temp := KojaPolja[brojac] aadd(temp2,{len(sadrzaj),&temp}) sadrzaj += space( TB:ColWidth(brojac) ) + TB:colSep next for brojac := TB:leftVisible to TB:rightVisible efektivna_sirina += TB:ColWidth(brojac) temp := KojaPolja[brojac] aadd(temp2,{len(sadrzaj),&temp}) sadrzaj += space( TB:ColWidth(brojac) ) + TB:colSep next sadrzaj := left( sadrzaj , len(sadrzaj) - 1 ) uk_prazno := TB:nRight - TB:nLeft + 1 - efektivna_sirina levo_prazno := int( uk_prazno / 2 ) @ TB:nBottom - TB:rowCount + TB:rowPos - 1, TB:nLeft ; say space(levo_prazno) + ; sadrzaj + ; space(uk_prazno-levo_prazno) for brojac := 1 to len(temp2) @ TB:nBottom - TB:rowCount + TB:rowPos - 1, ; TB:nLeft + levo_prazno + temp2[brojac,1] say ; temp2[brojac,2] next set color to &bojica else TB:RefreshCurrent() endif RETURN NIL ********************************************************************** ***** Imam sledeci problem kod iste, a to je kako da sledece redove ubacim u bilo kakvu petlju (sve sam pokusavao, ali nista). Usput dajem i parametre za tu moju funkciju pa ocenite... :) ********************************************************************** ***** * FUNKCIJA T_EDIT * * KojaDatoteka ............. Naz. datoteke (C) difolt=trenutno aktivna * KojaPolja ................ Nazivi Polja (A) difolt=Sva polja * Zaglavlja ................ Naz. zagl. za svako polje (A) dif=Prazno * Koordinate ............... (A) G.red (3), L.kol(10), D.red(18), D.kol(70) * Friziranje ............... Koliko se kolona 'zamrzne' na ekranu (N) dif=0 * Okvir .................... Kakav je okvir (1-single , 2-double) (N) dif=2 * Senka .................... Da li ima senke ( .T. / .F. ) difolt=.T. * Zagl ..................... Sadrzaj zaglavlja T_Edita (C) difolt="" * Futer .................... Niz naz. za sadrz. futera T_Edita (A) dif={""} * MojeFunkcije ............. Niz Funk. koje sam definisao (A) difolt={""} * MojiTasteri .............. Niz defin. tast. za moje funkcije (A) dif={""} * Uslov .................... Uslov prema kome se vrsi preg (C) dif="!EOF()" * Trazi .................... Pozicionir. po ind na slog u bazi (C) dif="" * Dobar .................... Koristi SET FILTER (SPORO !!!) (C) difolt="" * Odakle ................... Skok po ind na prvi zeljeni slog (C) difolt="" * Dokle .................... Skok po ind na zadnji zelj. slog (C) dif="" * Pikture .................. Vrednosti za PICTURE (A) difolt=@X * Validi ................... Vrednosti za VALID (A) difolt=.T. * Venovi ................... Vrednosti za WHEN (A) difolt=.T. * Riplejs .................. 2D niz sa vred. za naknadni REPLACE (A) dif={} * NPR. Riplejs[1] := {"VRED","IZNOS*KOLICINA"} * Zastita .................. Dozvole za rad (C) * E - izmena podataka (K_ENTER), * kada ga nema onda izlazi i vraca rekord * A - dodavanje slogova (K_INS) * AA - automatsko dodavanje slogova (K_INS) * D - brisanje slogova (K_DEL) * N - vraca se na slog gde je i bio kada izlazi * MaleProc ................. Korisnicke funkcije (A=4) * 1 - Prilikom kretanja kroz datoteku * 2 - Posle unosa, menjanja i brisanja * 3 - Pre unosa, menjanja i brisanja * 4 - Na taster ESC * 5 - Posle unosa * 6 - Posle menjanja * 7 - Posle brisanja ********************************************************************** ***** ........ FUNCTION NapuniObjekte(Temp_Browse,KojaPolja,Zaglavlja) LOCAL BrojPolja:=len(KojaPolja) temp_browse:addColumn(TBColumnNew(Zaglavlja[1],{|| &(KojaPolja[1]) })) IF BrojPolja == 1 RETURN NIL ENDIF temp_browse:addColumn(TBColumnNew(Zaglavlja[2],{|| &(KojaPolja[2]) })) IF BrojPolja == 2 RETURN NIL ENDIF temp_browse:addColumn(TBColumnNew(Zaglavlja[3],{|| &(KojaPolja[3]) })) IF BrojPolja == 3 RETURN NIL ENDIF ........ temp_browse:addColumn(TBColumnNew(Zaglavlja[30],{|| &(KojaPolja[30]) })) IF BrojPolja == 30 RETURN NIL ENDIF RETURN NIL ***************************************** The_End() Sorry na zamaranju vaseg PAD-a (142 linije), ali valjda ce vredeti... Pozdrav, gari.
clipper.501 bstevan, -> #467, dr.grba
I' ja zahvaljujem na CLOCK.ASM - ali si me malo, namucio sa onim public casovnik. ---POZDRAV--- ---BSTEVAN---
clipper.502 bstevan, -> #473, nbatocanin
Pa' ako se pravilno upotrebi CLOCK.ASM, nevidim da nije bezbedan.I ja sam imao resenje iz CLP, ali sam se u ovom slucaju opredelio za CLOCK.ASM . I veruj mi u aplikaciji je to jedina procedura, koja nije u CLP.Rekoh aj da probam da je povezem jer do sad to nisam probao, kad ono radi i nije agresivno ako se pravilno postupi. Da se ispravi- pravilno UPOTREBI. ---POZDRAV--- ---BSTEVAN---
clipper.503 d.petrovic,
Ă>│ ako stampam na stampac, a stampac ne koristi beskonacni papir i Ă>│ ne promenim papir za 3-4 sekunde izbaci ono crveno na sred Ă>│ ekrana. Ja normalno strelicu na desno pa kazem da nastavi i Ă>│ nastavi normalno. Gde sam zabrljao ??? Ă> └─── Ă> IsPrinter() Ma to proveravam pre nego što počnem da štampam, neću valjda posle svake strane? To se nije dešavalo na TOM štampaču ranije. Ne znam šta se u međuvremenu promenilo, jedino što su sada baze otvorene shared, ali ne verujem da to može da ima neke veze.
clipper.504 bulaja, -> #503, d.petrovic
││IsPrinter() │└─── │Ma to proveravam pre nego sto pocnem da stampam, necu valjda posle │svake strane? └─── Posle svake strane? :) Pa treba da proveravas IsPrinter() skoro *posle svakog slova* :), tj. zavisno od toga koliki je bafer stampaca. Nikad se ne zna na kakvim ce krsh stampacima da radi program, meni se desilo da ni kontrola posle svakog reda nije pomogla kad je trebalo da se stampa na nekoj glupoj pisacoj masini sa Centronics interfejsom i baferom od pola reda.
clipper.505 dr.grba, -> #501, bstevan
>> I' ja zahvaljujem na CLOCK.ASM - ali si me malo, >> namucio sa onim public casovnik. UFFFFFFFFFFFF! IZVINI! Izvinjenje dugujem i tebi i svima ostalima koji su probali, pa morali da traze - nisam napomenuo ): Nadam se da vise necu ponoviti slicnu omasku. Najvaznije je da je modul zavrsio posao! Drago mi je ako je pomoglo. Pozdrav, dr ÔpŰa --> Let's leave my employer out of this, OK?
clipper.506 dr.grba, -> #502, bstevan
>> koja nije u CLP.Rekoh aj da probam da je povezem jer do sad to nisam >> probao, kad ono radi i nije agresivno ako se pravilno postupi. E, sad... Nenad ima cvrste argumente za ono sto tvrdi. Ne pada mi na pamet da mu protivurecim (:, a jedan od (po meni) kljucnih argumenata je konzistentnost, zapravo stabilnost aplikacije. Ukoliko postoji razradjena baterija alata uradjenih u Clipper-u i ukoliko ta baterija operise nad osnovnim operacijama u programu, tada postoji verovatnoca da ce program raditi stabilno. Da ne kazem ovako : dok se razvije paket veznih modula, testiranjem u hodu se mogu uciniti brojna poboljsanja i ubrzanja... Na primeru inkriminisanog ASM modula za implementaciju casovnika...I must confess...i ja sam ga izbacio. Najpre sam halapljivo ubacio sat na interfejs. Pa, dok sam razvijao nove module u aplikaciji, najpre sistematski resetovao masinu dvadeset puta dnevno... ja sam sampion promasivanja sintakse, u 90% slucajeva napisem pcount umesto pcount(), pa program zvizne (Nenade, secas li se one rasprave o "valid"?)... Program izleti, interapt i dalje vezan, ako ne uradim soft reset odmah, sledi hard reset posle... Pa sam, radi testa, na vrhu svakog modula u testiranju iskljucivao sat, pa na izlazu ga opet iskljucivao... ovo je bilo vec sumnjivo, da ne kazem da je polako prestalo da lici na strukturno programiranje... al ajd' i to, trpeo sam neko vreme tihi teror sopstvene megalomanije... Pa sam onda morao da iskljucim svaku teoretsku mogucnost bilo kakvog nekontrolisanog izlaska iz programa, tipa Alt-C, Ctrl-Break, da bih prisilio korisnika da prodje kroz regularni izlazni modul da bi se, je li, sat iskljucio. Tu je vec poceo jedan Grrrrrrr@#$##$%@#erinu, sa lakom tendencijom da se prekvalifikujem u postara ili odzacara. Pa sam tek onda dosao na to da mi u par navrata treba ceo cist ekran za tabelu. Sat je tamo stajao kao piletu sise. Uopste mi nije bila globalna ideja da sat iskljucujem u finalnoj varijanti. Tad je doslo do pucanja filma. Zasukao sam rukave, sistematski unistio svaki trag tom satu u razvojnoj semi, i napisao Clipper modul koji na Alt-T izbaci dan, datum i sat u prozoru, pa eto korisniku, i neka gleda koliko mu volja. (Kalkulator Alt-K, screen saver Alt-S i dosta im je.) U nastavku rada, sat nestaje i bonus penis pax in domus. Eto, kad je Nenad napao ovaj modul, upravo je mislio na to kako bi bilo lepo izbeci slicna s**nja. Namera mu je sigurno bila najbolja, posto je on dobro ispekao zanat i zna za ovakve zamke. Vidis, ja sam se naucio na sopstvenom iskustvu, i samo ja znam koliko mi je problema donelo bazanje po mraku... Ala se raspisah, eto to je u znak izvinjenja zbog clock <-> casovnik (; Pozdrav, dr ÔpŰa
clipper.507 dr.grba, -> #503, d.petrovic
>> Ma to proveravam pre nego sto pocnem da stampam, necu valjda posle >> svake strane? ... Boga mi, hoces! Brini se o integritetu programa, nemoj da se o tome brinu namazane lujke po preduzecima... Bilo je vec negde u "Racunarima", ali ajd'... Primeni stos duple petlje, dozvoli neko vreme oporavka stampacu : ... if !isprinter() inkey(10) // ovo je vreme koje dajes stampacu da se oporavi if !isprinter() // HINT - ponovna provera vristi() spasavaj_stampu() ostale_akcije() ... // i ostale akcije za plasenje guski endif endif ... Sad variraj ovu mustru kako te volja, ne moze da skodi... Pozdrav, dr ÔpŰa
clipper.508 dejanr, -> #504, bulaja
>> Pa treba da proveravas IsPrinter() skoro *posle >> svakog slova* :) Nešto sam zaboravio, jel beše IsPrinter() testira samo LPT1 štampač? Vidim da u programima koristim isključivo neku asemblersku proceduru koja zivka BIOS, mora da sam imao neki razlog za to.
clipper.509 dejanr, -> #506, dr.grba
>> ja sam sampion promasivanja sintakse, u 90% >> slucajeva napisem pcount umesto pcount(), pa program zvizne Predlog: prevodi programe sa CLIPPER /W. Jeste da "boli" što moraju da se deklarišu sve promenljive, a naročito "boli" deklarisanje polja iz baze, ali u suštini spase jako mnogo problema - još u fazi prevođenja ukaže na većinu pogrešno otkucanih promenljivih (ja, recimo, ne grešim sa pcount() ali imam običaj da napišem lastkey i recno bez zagrada). Na žalost, izgleda da ni CLIPPER /W ne primećuje sve probleme sa nizovima, recimo desi se da neki niz koristiš kao skalar i to primeti tek tokom izvršavanja programa :( A još kada bi mogla da se kontroliše ispravnost *dodeljivanja* pa da ne dolaze posle one type mismatch greške... eh... pusti snovi.
clipper.510 dusanp, -> #491, dusanp
=> Posto snap gresi kada se radi sa vise modula, a i nije => mi bila potrebna ona gomila informacija, napisao sam => svoju verziju doc programa, koja samo lepo odvoji => funkcije i procedure - vecini korisnika je i to dovoljno. Ovo je verzija 1.2 istog programa. Ubijena je jedna buba, dodat spisak funkcija pri dokumentovanju - isprobajte, mozda je ovaj program bas ono sto vam treba. Opet ide i sors... doc12.arj
clipper.511 d.petrovic, -> #508, dejanr
Ă> Nešto sam zaboravio, jel beše IsPrinter() testira samo LPT1 Ă> štampač? Zaboravio i ja, ali znam da je samo paraleni.
clipper.512 d.petrovic, -> #507, dr.grba
Ă> Boga mi, hoces! Brini se o integritetu programa, nemoj da se o Ă> tome brinu Hvala lepo svima, naročito bulaji za krševe od štampača ;)). Izgleda da sam do sada imao sreće sa ukupno 10ak program koji su radili na 15-ak štampača max. pa ni jedan nije bio krš. Ni ovaj mali nije krš, samo zajebava sa zamenom papira.
clipper.513 bulaja, -> #508, dejanr
│Nesto sam zaboravio, jel bese IsPrinter() testira samo LPT1 stampac? └─── Da. Ima u NFLIB funkcija ft_isprinter() (pisana u asembleru) evo sta pise NG za nju: Syntax FT_ISPRINT( [ <cDevice> ] ) -> lResult Arguments <cDevice> is optional and is the device to test (LPT2, COM1, etc.). If omitted, the function will default to the PRN device. The Clipper IsPrinter() function is somewhat limited because it only works with LPT1. Furthermore, it talks directly to the hardware, so if you have redirected LPT1 via the DOS MODE command, the IsPrinter() function will return erroneous results. This function offers a better alternative. Instead of talking to the hardware, it issues a DOS call that checks to see if the device is ready or not. That gives DOS an opportunity to deal with any redirections, and since you pass the device name as a parameter, you can test any device, not just LPT1 (note that the function defaults to PRN if you fail to pass a valid parameter).
clipper.514 bulaja,
**** new file **** R:ĐIBMPCĐCLIPPERĐ*.* ---------------------- bumenu11 arj 8009 BuMenu 1.1, poboljšani sistem menija za Clipper (bulaja) BuMenu je zamena standardni Clipper-ov PROMPT .. MENU TO sistem. Potpuno je kompatibilan sa njim, a sadrzi korisna poboljsanja: - moze se definisati proizvoljni hot-key za aktiviranje svake od opcija u meniju - Clipper prepoznaje samo prvo slovo opcije - moze se definisati i boja hot tastera, tako da on bude prikazan istaknuto - ovo izuzetno poboljsava preglednost menija i daje profesionalni look - nije neophodno "trositi" promenljivu za smestanje rezultata izbora - ovo je zgodno za neke kratke menije tipa Da-Ne Promene u odnosu na prethodnu verziju: - podrska MESSAGE opcije - uzima se u obzir trenutno stanje Clipper promenljivih SET WRAP i SET MESSAGE TO <x> ŠCENTERĆ - poziv funkcije bu_MenuColor() bez argumenata vraca trenutno aktivne boje - poboljsana kontrola ispravnosti parametara prenetih funkcijama
clipper.515 ppekovic,
[reply na baze.podataka/10.125 pjankovic] >> Evo, bas sam sad probao i naravno da sam uspio. Naime, >> zadnji put sam to probao prije godinu dana, ustanovio da radi, ali >> nikada nisam ugradio u svoje programe. Napisao sam C funkciju: Ovih dana sam po ko zna koji put probao clipper + C i evo do čega sam došao: Prvi deo priče, tj. kompajliranje, nikada nije bilo sporno, dakle C program se iskompajlira u large modelu, s tim što ja za svaki slučaj isključim i optimizacije. Drugi deo, linkovanje je uvek bilo problematično i to zbog čuvenih poruka "symbol defined more than once" ili tako nešto. Ovo su javljali i MS Linker i RTLink kad god bi se koristile neke funkcije iz graph.h, stdio.h i još neke. Dakle, najvažnije stvari. Juče sam probao da linkujem sa blinker-om i sve je prošlo bez ikakvih upozorenja, grešaka. Probao sam sve i svašta i sve je radilo osim funkcija iz pgchart lib-a iz msc-a 6.0. Da ne bih izbaksuzirao, neću reći živeo Blinker. Pravi test će biti kada napravim ono što sam počeo, a to je backup sistem. Naime, uzeo sam onaj zip source i pokušavam da ga prepravim da radi iz clipper-a. Treba mu dodati multi-volume opciju i eventualno još par sitnih i eto savršenog sistema za backup. Ako to proradi, ... Paya
clipper.516 nbatocanin, -> #506, dr.grba
Tako si lepo obrazložio argumente, da samo mogu da se složim :)) Inače, čisto subjektivno, ne volim strane predmete u programima - zato izbegavam sve biblioteke i sl. Mislim da je čista struktura programa veoma važna (a i lepa). Uvek me je posebno nerviralo kad u nekom jeziku nešto ne može da se izvede, pa onda moraš da ga povezuješ sa nekim drugim. Sećam se FORTRAN programa gde je glavni program u C-u, centralni deo FORTRAN, a koriste se C i ASM potprogrami ;( Kao kalabalak ;) E sad: kad već ponegde mora da se pribegne nečem drugom, neka to bude što čistije. Zato i ne koristim C za Clipper: te fali mu LLIBC, te dupli simboli, te neće Turbo nego MSC i šta ti ja znam. ASM uradiš i zaboraviš. Ali, sat, screen saver i sl. (po meni) nije potrebno raditi u asembleru: ja sve to imam urađeno vrlo jednostavno u Clipper-u. Štos je preusmeriti sva skaniranja tastature na jednu funkcije i onda imaš šta oćeš! U suštini, daleko više od sata! Koga interesuje, evo nove funkcije Inkey: FUNC nInkey (N) LOCAL Start := Seconds (), Ch := 0, lFTast REPEAT lFTast := .F. IF N == NIL Ch := Inkey() ELSEIF N > 0 WHILE Abs (Start - Seconds()) < N .AND. (Ch := Inkey()) == 0 IF TimeStr <> Time() TimeStr := Time() IF TimeVis SayScreen (TimeStr, 0, 0) END IF END IF END DO ELSE WHILE (Ch := Inkey()) == 0 IF TimeStr <> Time() TimeStr := Time() IF TimeVis SayScreen (TimeStr, 0, 0) END IF END IF END DO END IF // Ako je pritisnut F-taster, izvrsi ga IF (bKey := SetKey(Ch)) <> NIL Eval (bKey, "", 0, ReadVar()) Start := Seconds () lFTast := .T. END IF UNTIL !lFTast RETURN Ch Nije nešto, zar ne?