clipper.313dvesic,
-> #297, markoni>> naredbe :(( Na šta ti je postavljen COMSPEC? Probao sam još na
COMSPEC=c:\4dos\4dos.com
Ako te ne mrzi, iskonstruiši neki primer za koji si siguran da
ne radi, pa ga baci ovde ili u mail.
clipper.314djelovic,
-> #311, bceklic> Kad smo vec kod toga, kako se najlakse a sa najvecom sigurnoscu moze
> ustvrditi da je dos program startovan pod Win-om.
Najlakše je da proveriš da li je definisana sistemska promenljiva "windir".
clipper.315snemcev,
-> #207, bulaja>> ipak s obzirom da je FlopyTst pisana u ASM, pokušaj da ulinkuješ
>> verziju iz 2.1 (javi da li radi u PM:).
Izvukoh je ja i sve radi ok, al' još ne probah PM -- nekako me baš ne
privlači. :)
clipper.316bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
sx2011i zip 12851 SIx Driver Update: 2.01.00 -> 2.01.01 (Intl)
sx2012i zip 30795 SIx Driver Update: 2.01.01 -> 2.01.02 (Intl)
sx202i zip 22575 SIx Driver Update: 2.01.02 -> 2.02.00 (Intl)
sx202 zip 22145 SIx Driver Update: 2.01.02 -> 2.02.00 (US)
4 file(s) 86 kb
Zahvaljujemo dsisic-u na poslatim zakrpama za verziju 2.02, a usput sam
prebacio u v2.01.x patcheve (imam samo za International verziju SIx-a,
ali valjda svi koristimo baš nju:).
clipper.317nbatocanin,
-> #301, bulaja>│ 2) Napraviš poseban skipBlock za TBrowse koji za sledeći
>│ element bira onaj koji ima količinu <> 0.
>
> Ovo je praktično isto (po koncepciji, a i po "brzini") što
> i SET FILTER (koji nije lepo koristiti:),
Hm, mislio sam na _poseban_ kod blok koji bi bio inteligentniji od
ima/nema algoritma. Na primer, mogao bi da "kešira" ono što je
pregledao ili tako nešto.
clipper.318nbatocanin,
-> #307, milanv> - Da li postoji mogućnost (ma znam da postoji:)
> korišćenja dugižih polja nego što mogu da stanu u
> predviđeni prostor za Browse()? Mislim na nešto kao
> PICTURE "čS30".
Pretpostavljam da misliš na TBrowse. Odgovor je da, naravno. U kodnom
bloku u kome definišeš prikaz staviš Left(string,xx) i dobićeš suženi
prikaz.
> - Kako se najlakše aktivira MemoEdit() iz Browse()?
Pretpostavljam da opet misliš na TBrowse. Pa, prosto, kao i sve
drugo. Kad korisnik zatraži izmenu memo polja, jednostavno pozoveš
MemoEdit i to je to. Ipak ti objasni detaljnije šta ti treba, pa će i
odgovor biti precizniji.
clipper.319dpredovic,
-> #303, stosicSubject: Re: CAVO
> Zatvaranje dijalog prozora (u VO) pomocu ESC tastera se moze resiti na
> sledeci nacin (primer je za Standard MDI aplikaciju):
> method Dispatch(oEV) class HelpAbout
...
> strucEVENTMSG := memalloc (_sizeof (NB_EVENTMSG) )
> strucEVENTMSG := ptr (_cast, oEV:__pCat)
...
> return super:Dispatch(oEV)
Pa narafski, ne znam samo kako se ranije nisam setio ;))
Ovo je već za žuti karton, a PowerBuilder poslat na zagrevanje.
clipper.320mirche,
-> #311, bceklic> ustvrditi da je dos program startovan pod Win-om. Ja na svojoj
> masini i nemam Win...:(
Eh :( Blago tebi! Ti i ne znaš za naše muke :(
clipper.321mirche,
Evo jednog tužnog podatka:
Posle višednevnog probanja zaključio sam da je na clipperu neizvodljivo
napraviti dobar sistem audit-a i rollback-a a da to ne bude očajno sporo :(
A tek pod mrežom? Ne smem ni da pomislim. Stvar je ipak trebalo poveriti
DOS-u koji još uvek nema taj prokleti DMS. :((((
clipper.322jolicm,
-> #317, nbatocaninMMMMMMM>> , mogao bi da "kešira" ono što je pregledao ili tako nešto.
E pa to je jakooooo loše rešenje, em se gubi vreme u mahinacijama u browseu, em
se gubi vreme u samom radu programa u tom keširanju. Mislim da je u takvim
slučajevima najbolji indeks i . (tačka).
clipper.323jolicm,
-> #318, nbatocanin>> Left(string,xx)
Mislim da milanv pita kako moze to prikazati, a i editovati, a tu mu jedino
pomaze da zasuče rukave i skroz na skroz izmeni browse naredbu, doda Picture
svakog polja. A ako se u to već upusti onda neka doda sve što mu treba (zabrane
, kodne blokove, validaciju upisa svakog polja, when funkcije, provere dozvole
skip-a, dozvole izlaska i sl...
clipper.324soul,
Ovde jednom beše kraća načelna rasprava oko dizajna
korisničkog interfejsa, pa u vezi s tim:
Ima li neko iskustva sa velikim maskama (if you know
what I mean):
Da li je bolje problem rešiti nečim kao Scroll Get
(vidi dir) ili podeliti masku na više ekrana. Meni
se lično skrol više dopada, ali kako je sa prosečnim
korisnicima?
clipper.325bpekic,
CA-VO pitanja:
Probijam se kroz CAVO i postoje stvari koje mi nisu jasne, verovatno
pisu negde u helpu, ima i primera, ali mozda mi neko moze pomoci da
ne otkrivam rupe u saksijama.
1.) Kako se postize provera unosa u, recimo polje meke sifre, kada je
data-window u browse modu, pa na polju SIFRA, unesem nesto. Zelim
da se u drugoj bazi nadje naziv za tu sifru. U definiciji servera
za polje, nisam nasao nista poput "event-a", jedino sto dolazi u
obzir je deo servera opisa polja - VALIDACIJA. Tu sam se spetljao
jer ne znam sta da tu unesem. Ako unesem da validnost unosa u polje
SIFRA, proveri neka funkcija, kako toj funkciji zadati parametre i
koje parametre da prenesem (verovatno svakako najmanje oNazivServera)
Osim toga ako recimo NE nadjem naziv za zadatu sifru, na koji
nazin da obavestim korisnika (ko je OWNER za display teksta).
2.) Drugi problem mi je sledeci:
Ako imam recimo samo dva "geta"
Sifra: XXXXX
Naziv: XXXXXXXXXXXX
to je naravno definisano kroz server za tu bazu, ali kako u samim
prozorima getova da omogucim skok sa TABOM sa jednog na drugo
polje. Sada kako stvari stoje, kada pritisnem TAB, brise se tekuci
zapis, a kada na tako izbrisan zapis kliknem misem, pojavi se
prethodna vrednost.
Znaci ponovo dolazim do problema kako da postignem da se pocetak
aktivnosti unosa u neko polje "geta", prijavi sistemu kao da je to
neki "event" i da mu se za tu aktivnos zada akcija.
Kada sam se vec raspisao, da kazem da sam sa vise merenja ustanovio da
je CAVO skoro duplo sporiji kod recimo indeksiranja od standardnog
DOS-Clippera. Verovatno nisam napravio optimalni kod a deo i otpada na
pripreme servera za rad ali to usporenje mozda i nije tako veliko.
Inace, mozda i nije losa ideja o CAVO temi !??
Ako je neko raspolozen da mi pomogne - ne branim.
clipper.326milanv,
-> #318, nbatocanin║║ Pretpostavljam da misliš na TBrowse. Odgovor je da, naravno. U kodnom
║║ bloku u kome definišeš prikaz staviš Left(string,xx) i dobićeš suženi
║║ prikaz.
Naravno da mislim na TBrowse (ne znam ni sam zašto sam
izostavio "T") :)
Nije problem u prikazu početnog dela stringa, već u
mogućnosti da se celo polje, znači svih npr. 100 karaktera u
polju mogu editovati kroz TBrowse. Potrebno mi je da karakteri
dugog stringa mogu da skroluju kroz kratko polje. Nadam se da
sam uspeo da objasnim. Pokušao sam sa PICTURE "Sn", ali ne ide
mi u glavu gde da ga stavim ;).
║║> - Kako se najlakše aktivira MemoEdit() iz Browse()?
║║
║║ Pretpostavljam da opet misliš na TBrowse. Pa, prosto, kao i sve
║║ drugo. Kad korisnik zatraži izmenu memo polja, jednostavno pozoveš
║║ MemoEdit i to je to. Ipak ti objasni detaljnije šta ti treba, pa će i
║║ odgovor biti precizniji.
Pa, otprilike, da smo se ovde razumeli. Delimičan problem
je što mi standardna funkcija obavlja prikaz tabele koji se
poziva iz više mesta u programu za razne baze i namene, gde
većina nema memo polja, pa je potrebno da dotična funkcija sama
prepozna kada se radi o memo polju (bez komplikovanih pitalica
"ako me je pozvao baš taj i ako je baš ta kolona...") i da ga na,
recimo, ENTER pozove. (Uh, može li neko da napiše
komplikovaniju rečenicu:)
clipper.327milanv,
-> #323, jolicm║║ Mislim da milanv pita kako moze to prikazati, a i editovati, a tu mu
║║ jedino pomaze da zasuče rukave i skroz na skroz izmeni browse naredbu,
║║ doda Picture svakog polja. A ako se u to već upusti onda neka doda sve
║║ što mu treba (zabrane , kodne blokove, validaciju upisa svakog polja,
║║ when funkcije, provere dozvole skip-a, dozvole izlaska i sl...
I pored toga što sam većinu dole navedenog ostvario,
prilično mi složeno deluje ubacivanje PICTURE u svako polje. Da
li je takva operacija negde dokumentovana, ili si krenuo od nule?
clipper.328goxx,
-> #326, milanv■ polju mogu editovati kroz TBrowse. Potrebno mi je da karakteri
■ dugog stringa mogu da skroluju kroz kratko polje. Nadam se da
...
■ većina nema memo polja, pa je potrebno da dotična funkcija sama
■ prepozna kada se radi o memo polju (bez komplikovanih pitalica
■ "ako me je pozvao baš taj i ako je baš ta kolona...") i da ga na,
Ovo se baš oteglo! :) Kako sam te ja razumeo, imam utisak da pitaš
neku banalnu stvar (bar ću ti za nju dati odgovor :)
// prvo se definiše nova komanda da bi se lakše formirala tabela.
// koristi se cargo promenljiva iz objekta column. od nje se
// formira niz od dva elementa; get-set blok i picture
// (po potrebi može još gomila drugih varijabli).
// get-set blok se izvršava funkcijom EVAL (sasvim logično :) i
// to na dva načina: EVAL(blok) daje vrednost promenljive ili
// EVAL(blok, vrednost) postavlja promenljivu na novu vrednost.
// definisane su samo dve komande. ako se ne navede VAR klauzula
// tada se izraz iz klauzule BLOCK koristi za formiranje get-set bloka
// (ovo mora pažljivo da se koristi, tj. SAMO kada je BLOK "prosta"
// promenljiva ili polje iz baze.
#xcommand TABLE <t> ADD COLUMN <h> BLOCK <b> ŠPICTURE <p>Ć =>;
<t>:AddColumn(TBColumnNew(<h>, <šbć>));;
<t>:GetColumn(<t>:ColCount):Cargo :=;
š šđxđ IF(PCOUNT()==0, <b>, <b> := x)ć, <p> ć
#xcommand TABLE <t> ADD COLUMN <h> BLOCK <b> VAR <v> ŠPICTURE <p>Ć =>;
<t>:AddColumn(TBColumnNew(<h>, <šbć>));;
<t>:GetColumn(<t>:ColCount):Cargo :=;
š šđxđ IF(PCOUNT()==0, <v>, <v> := x)ć, <p> ć
// primer kako bi to sve moglo da izgleda u programu
// ...
tbl := TBrowseDB(y1, x1, y2, x2)
TABLE tbl ADD COLUMN "Naziv";
BLOCK LEFT(baza1->naziv,30);
VAR baza1->naziv
TABLE tbl ADD COLUMN "Sifra";
BLOCK baza1->sifra
TABLE tbl ADD COLUMN "Komentar";
BLOCK "<memo>";
VAR baza1->komentar
TABLE tbl ADD COLUMN "Iznos";
BLOCK TRANSFORM(baza1->iznos, "999,999.99");
VAR baza1->iznos;
PICTURE "999,999.99"
TBrowse_With_Edit(tbl)
// ...
// ---------------------------------------
FUNCTION TBrowse_With_Edit(tbl)
LOCAL nKey := 0, var
DO WHILE .T.
DO WHILE .NOT. tbl:stabilize() .AND. NEXTKEY() == 0 ; ENDDO
nKey := INKEY(0)
DO CASE
CASE nKey == K_ESC ; EXIT
CASE nKey == K_UP ; tbl:up()
// ...
// ******************************************************
CASE nKey == K_ENTER
// ovde OBAVEZNO treba stabilizacija objekta, ako imaš
// nameru da nešto pišeš preko tabele, a što se odnosi
// na tekući red (znači koristiš ROW() i COL())
tbl:ForceStable()
col := tbl:getcolumn(tbl:colpos)
nType := VALTYPE(var := EVAL(col:cargoŠ1Ć))
DO CASE
// long char "čSn"
CASE nType == "C"
č ROW(), COL() GET var PICTURE "čS"+ALLTRIM(STR(col:width))
READ
IF LASTKEY() <> K_ESC
EVAL(col:cargoŠ1Ć, var)
ENDIF
// memoedit
CASE nType == "M"
EVAL(col:cargoŠ1Ć, MEMOEDIT(y1,x1,y2,x2, var))
// numerik
CASE nType == "N"
č ROW(), COL() GET var PICTURE col:cargoŠ2Ć
READ
IF LASTKEY() <> K_ESC
EVAL(col:cargoŠ1Ć, var)
ENDIF
// ...
ENDCASE
ENDCASE
ENDDO
RETURN NIL
■ (Uh, može li neko da napiše komplikovaniju rečenicu:)
Mogu ja :))
Goran
PS. Ovo bi moglo u bajtove :)
clipper.329mdrazic,
-> #324, soul> Ima li neko iskustva sa velikim maskama (if you know
> what I mean):
>
> Da li je bolje problem rešiti nečim kao Scroll Get
> (vidi dir) ili podeliti masku na više ekrana.
Ja sam koristio i jedno i drugo. Evo nekih iskustava. Vget sistem sam
preradio (ugradio mu još po nešto i povezao sa drugim delovima mog
okruženja. Kod veće količine podataka za jedan logički 'zapis' koji se
nalazi u vget-u (ili vsay-u) oseća se usporenje zato što se ceo sistem
zasniva na korišćenju cargo-a u get objektu kroz koji se provlače sve
informacije i ažuriraju u svakom objektu pri svakom skrolovanju.
Za manji obim podataka je prihvatljivo, a za get listu od 30x5 = 150
getova je neprijatno sporo.
U normalnom (ne 'browse' nego 'edit') modu pregleda podataka iz tabela
mi se na ekranu vidi sadržaj (samo) jednog zapisa. Sa PgUp, PgDn se
tipično listaju zapisi i postoji standardan meni (kod mene u donjem
delu ekrana) koji reaguje na Left, Right. Za zapise gde sve stane na
ekran, sve se normalno radi iz menija. Kada treba više mesta, tada
oformim više maski (sa rednim brojem u uglu okvira:) koje se mogu
ciklično smenjivati (za isti zapis) na neki hotkey ili kao kod mene
opcijom iz menija. Kada listaš zapise (PgUp, PgDn) prikazuju se podaci
za poslednje izabranu masku. Tako namestiš masku, pa listaš, što je
po meni nekako logično. Kod korisnika ovaj način omogućava da određenu
informaciju uvek dobije na istom mestu na ekranu (u svojoj masci) a ne
da je juri po skrolujućem prozoru (čas gore, čas dole). Ovaj drugi
način i mnogo brže radi jer se ograničava samo na podatke sa jedne maske
i nema potrebe sa trikovima sa cargom. Pri promeni zapisa normalno
menjaš samo trenutnu masku, ali pri unosu novog zapisa mora da ga
provedeš redom kroz sve maske.
Milan
clipper.330d.petrovic,
-> #318, nbatocanin> Pretpostavljam da misliš na TBrowse. Odgovor je da, naravno. U
> kodnom bloku u kome definišeš prikaz staviš Left(string,xx) i
> dobićeš suženi prikaz.
TBColumn Class Provides the column objects TBrowse objects
width Column display width
width (Assignable)
Contains a numeric value that defines the display width for the
column. If TBColumn:width is not explicitly set, the width of the
column will be the greater of: 1) the length of the heading, 2) the
length of the footing, and 3) the length of the data at the first
evaluation of TBColumn:block. The width of the displayed data will be
the length at the first evaluation of TBColumn:block.
If this instance variable is explicitly set, the width of the column
will be TBColumn:width. Displayed headings, footings, and data will
all be truncated to this width when necessary. The width of the
displayed data will be the length at the first evaluation of
TBColumn:block for all data types other than character. Character
data will be extended to TBColumn:width for display purposes.
clipper.331d.petrovic,
Šta treba uraditi novell-u da dozvoljava clipper-u da otvori puuuno
fajlova ?
clipper.332nbatocanin,
-> #322, jolicm>>> , mogao bi da "kešira" ono što je pregledao ili tako nešto.
> E pa to je jakooooo loše rešenje, em se gubi
> vreme u mahinacijama u browseu, em se gubi vreme u samom
> radu programa u tom keširanju. Mislim da je u takvim
> slučajevima najbolji indeks i . (tačka).
štos je izbeći vreme potrebno za indeksiranje. Šta ćeš ako treba
izdvojiti 5 _prvih_ slogova u tabeli od 100.000? Bolje je prikazati
brzo šta se može, a onda po potrebi tražiti sledeće.
clipper.333zkrstic,
-> #331, d.petrovic>> Šta treba uraditi novell-u da dozvoljava clipper-u da otvori puuuno
>> fajlova ?
Poljubiti ga u čelence, pomaziti i staviti u SHELL.CFG
FILE HANDLES = XXX gde XXX + FILES iz Config.SYS ne prelaze 255
Zkr :)
clipper.334milanv,
-> #328, goxx║║ ■ (Uh, može li neko da napiše komplikovaniju rečenicu:)
║║ Mogu ja :))
Uh, uh;)), tek si me sada oznojio. Ovoliki tvoj trud je
zaslužio jednu ovakvu poruku u kojoj je poenta - hvala!.
Samo jedno podpitanje: kako ti izgleda ForceStable()?
(Ako je to ona Nenadova funkcija za poboljšano osvežavanje
ekrana, znam je).
clipper.335goxx,
-> #334, milanv■ Samo jedno podpitanje: kako ti izgleda ForceStable()?
Pravo da ti kažem, ni ja nemam pojma! :)))
Neka me ispravi neko, ko radi clipper 5.2, ako grešim.
To bi valjda trebalo da bude:
DO WHILE .NOT. tbl:Stabilize() ; ENDDO
Bilo mi kraće da napišem ForceStable, a toga nema u clipperu 5.01 već
u 5.2.
Goran
clipper.336jolicm,
-> #335, goxx>> ForceStable()?
To jeste to
U clipperu 5.01 toga nema i moralo se pisati Do while .not. tbl:stabilize();End
U clipperu 5.2 je tbl:ForceStable()
:)
clipper.337jolicm,
-> #332, nbatocanin>> Šta ćeš ako treba izdvojiti 5 _prvih_ slogova u tabeli od 100.000 ?
E šta ćeš ako treba izdvojiti oko _zadnjih_ 5 slogova od 100.000 ? ili
_srednjih_ ?
:
:)
RPůî(EŹžŁłŔ
clipper.338nbatocanin,
-> #326, milanv> Nije problem u prikazu početnog dela stringa, već u
> mogućnosti da se celo polje, znači svih npr. 100 karaktera
> u polju mogu editovati kroz TBrowse. Potrebno mi je da
> karakteri dugog stringa mogu da skroluju kroz kratko
> polje. Nadam se da sam uspeo da objasnim. Pokušao sam sa
> PICTURE "Sn", ali ne ide mi u glavu gde da ga stavim ;).
Treba da raščistimo jednu stvar: TBrowse objekat ima primarnu ulogu
za _prikaz_ tabele/datoteke na ekranu. _Editovanje_ i ostale stvari
se posebno dodaju. Znači, ne treba vezivati unos/izmenu podataka za
TBrowse objekat: on služi za prikaz, a edit se dodaje. Kako, to je
duža priča, bilo je ovde govora, a mogu ti koristiti i tekstovi u R.
> Pa, otprilike, da smo se ovde razumeli. Delimičan problem
> je što mi standardna funkcija obavlja prikaz tabele koji
> se poziva iz više mesta u programu za razne baze i namene,
> gde većina nema memo polja, pa je potrebno da dotična
> funkcija sama prepozna kada se radi o memo polju (bez
> komplikovanih pitalica "ako me je pozvao baš taj i ako je
> baš ta kolona...") i da ga na, recimo, ENTER pozove. (Uh,
> može li neko da napiše komplikovaniju rečenicu:)
Ne vidim poseban problem. Ako želiš da dobiješ efekat kao u DBU ili
DBX (kada se proba unos na polju na kome piše <Memo> dobiješ prozorče
u kome unosiš tekst, obrada je skoro ista kao i za sva druga polja -
zavisi od rešenja koje već primenjuješ. Kako rešavaš, na primer, unos
datuma?
clipper.339nbatocanin,
-> #330, d.petrovic> width (Assignable)
Da, može i ovo, naravno. Ja ipak radije koristim Left() :)
clipper.340nbatocanin,
-> #331, d.petrovic> Šta treba uraditi novell-u da dozvoljava clipper-u da
> otvori puuuno fajlova ?
Kreiraš NET.CFG na lokalnom disku sa dira u kome su mrežni drajveri i
u njega upišeš:
FILE HANDLES = 100
clipper.341nbatocanin,
-> #337, jolicm>>> Šta ćeš ako treba izdvojiti 5 _prvih_ slogova u tabeli
> od 100.000 ? E šta ćeš ako treba izdvojiti oko _zadnjih_ 5
> slogova od 100.000 ? ili _srednjih_ ?
Hm, nisam ovo probao, ali mi se čini da je prosto indeksiranje sasvim
sigurno po vremenu najgori slučaj mog rešenja i to kad su svi slogovi
na kraju. Ko koristi Six mogao bi da paralelno oformljava RYO indeks:
prikaže se prva strana i svi vidljivi slogovi se upišu u indeks. Ako
korisnik zatraži <PgDn>, upisuju se slogovi iz sledeće strane itd.
Prvi put bi kretanje unapred bilo usporeno, ali sledeći prolaz bi bio
trenutan.
Nego, evo šta mi pade na pamet:
// Artikli, indeksirani po ID-u i nazivu
USE Artikli INDEX Art_ID, Art_Naz NEW
// Kolicine, index:
// Str(k_mag) + IIF (k_kol<>0, " ", "Z") + Upper(Artikli->a_naziv)
USE MagKol INDEX MagKol NEW
SET RELATION TO k_art INTO Artikli
Sada će svi traženi slogovi (željeni magacin, količina <> 0) biti u
jednoj grupi i to unutar nje poređani po abecedi! Sad je trivijalno
raditi restriktivni prikaz po tabeli MagKol (jedan magacin, <>0).
Važno je da pri kreiranju/izmeni indeksa MagKol bude aktivirana SET RELATION
naredba. Jel' sam nešto prevideo?
clipper.342jolicm,
-> #341, nbatocanin// Str(k_mag) + IIF (k_kol<>0, " ", "Z")+Upper(Artikli->a_naziv)
Mislim da je upravo to ono pravo .
Nego da ti kažem da sam ja ono rešenje sa pravljenjem matrice pri prikazu
koristio u KOBOLU kada sam pravio verovao ili ne BROWSE u kobolu. To ti je kad
clipperaša primoraju da se sroza na cobol jer na vaxu i vms-u nema clippera.
STR(K_MAG)
Pitanje za tebe (samo pitanje jer ni ja nisam siguran):
Da li je bolje STR(K_MAG,sirina) , da li to usporava izvršenje STR funkcije,
ako ne usporava onda je to bolje zbog kraćih indeksa.
:)
clipper.343mileusna,
žesto mi se nešto blokirao program, ne pomaže ni <Alt C>. Gledam ja šta ću i
uzmeme RTLink, prelinkujem module, i sve radi. Opet probam na Blinkeru i opet
ne radi. Zatim uzmeme .lnk fajl za Blinker i počnem da gledam blinker komande
koje sam unutra ubacio. I šta primetim. Kada se stavi BLINKER INCREMENTAL OFF
program mi blokira, kad ne stavim INCREMENTAL OFF, program radi kako i treba da
radi. Jel ovo neki poznati BUG, nepoznati (redak) BUG, ja sam u nečemu pogrešio
ili nešto treće (tj. četvrto). A BLINKER INCREMENTAL OFF preporučuju za finalnu
verziju...
clipper.344.bdd.,
-> #343, mileusna>> žesto mi se nešto blokirao program, ne pomaže ni <Alt C>...
Ukoliko je inkerementalno linkovanje uključeno, overlejima
upravlja blinkerov overlej menadžer. BLI INC OFF dovodi do toga
da C i asm kod kontroliše blinkerov overlej menadžer, a clipper kod
menadžer ugrađen u sam clipper. Probaj sa BLINKER CLIPPER PAGE OFF
čime isključuješ clipperov menadžer, mada je bolje da proveriš šta sve
stavljaš u overleje (posebno obrati pažnju na module iz biblioteka,
MODULE .... FROM ... ), jer clipperov menadžer troši nešto manje memorije,
a i malo brže radi, pa je bolje da ga ne isključuješ.
Bogi
clipper.345nbatocanin,
-> #342, jolicm> STR(K_MAG)
> Pitanje za tebe (samo pitanje jer ni ja nisam siguran):
> Da li je bolje STR(K_MAG,sirina) , da li to usporava
> izvršenje STR funkcije, ako ne usporava onda je to bolje
> zbog kraćih indeksa. :)
Hm, pretpostavljam da na početku Str funkcije postoji jedno:
IF nDec == NIL
IzračunajDecDužinu()
END IF
a bez jednog argumenta br`e ide prenos parametara, tako da mi liči na
slično? Mada, možda je bolje staviti i broj decimala kako promena
strukture u bazi ne bi uticala na rad programa. Najbolje je da se za
šifru i ne koriste brojevi, što reče mdrazic (nema konverzije
broj-string-broj), ali ja sam tako odavno počeo, pa mi je sad mrsko
da to menjam.
clipper.346mileusna,
-> #344, .bdd.>> mada je bolje da proveriš šta sve stavljaš u overleje (posebno obrati pažnju
>> na module iz biblioteka, MODULE .... FROM ... ),
Da sam ovde negde zabrljao, ne bi bilo u redu uopšte, ni sa RTLinkom, ni sa
Blinkerom. Inače, kad sam onda tražio uzrok, u overlaje sam stavio samo
module moga programa i ništa više, i opet je bilo isto.
clipper.347milanv,
-> #338, nbatocanin║║ Ne vidim poseban problem.
Ne vidim ga ni ja, al' ne šljaka. :)
║║ Ako želiš da dobiješ efekat kao u DBU ili
║║ DBX (kada se proba unos na polju na kome piše <Memo> dobiješ prozorče
║║ u kome unosiš tekst,
TO!
║║ obrada je skoro ista kao i za sva druga polja -
║║ zavisi od rešenja koje već primenjuješ. Kako rešavaš, na primer, unos
║║ datuma?
Pa na vrlo klasičan (?) način. Mislim da je prilično sličan
onome kakvog si ti naveo u Računarima, svojevremeno:
...
AADD (cols, TBColumnNew ('Sifra', šđđ ar_sifrać))
AADD (cols, TBColumnNew ('Naziv artikla', šđđ ar_nazivć))
AADD (cols, TBColumnNew ('Datum', šđđ ar_jedinć))
Tabela (cols, aFields, 'A')
...
FUNCTION Tabela (cols, aFields, cPoziv, cUpis)
...
browser := TBrowseDB (5,1,22,78)
FOR i = 1 TO LEN (cols)
browser:addColumn (colsŠiĆ)
NEXT i
WHILE .T.
ch := 0
WHILE !browser:stable .AND. ch == 0
ch := Inkey ()
browser:stabilize ()
END DO
ch := Inkey (0)
DO CASE
...
CASE ch == K_ENTER .AND. cUpis == NIL
IF cPoziv == 'A' .OR. ...
Fresh (browser)
fname := aFieldsŠbrowser:colPosĆ
xPriv := &fname
č Row(), Col() GET xPriv VALID IIF (...)
save_curs := setcursor(INS_CURSOR)
save_ikey_cb := setkey(K_INS,;
šđđ readinsert(!readinsert()),;
setcursor(INS_CURSOR)ć)
READ
REPLACE &fname WITH xPriv
setcursor(save_curs)
setkey(K_INS, save_ikey_cb)
KEYBOARD CHR (K_RIGHT)
Fresh (browser)
ELSE
CLEAR TYPEAHEAD
END IF
...
ENDCASE
END DO
...
Otprilike, to je - to. I to radi za sve tipove varijabli,
osim za memo polje. Zapravo, verujem da radi i u tom slučaju, samo?
OK, sviđa mi se goxx-ov način, ali ne kapiram šta ovde nedostaje?
clipper.350aseovic,
Subject: SIX 2.02
Da li je neko primetio "čudno" ponašanje SIX-a prilikom brisanja
nekoliko uzastopnih zapisa? Situacija je sledeca:
OTP_DET.DBF - Stavke otpremnica
------------
BRFAK C 8 - broj otpremnice (aktivan je indeks po ovom polju
sa uslovom "FOR !Deleted()")
/******************/
dbSeek(BrOtp)
while otp_det->brfak == BrOtp
dbDelete() // brise zapis
dbSkip(1) // trebalo bi da predje na sledeci
enddo // ali skace na kraj datoteke - Eof()->.t.
Rezultat je da se stornira samo prva stavka otpremnice i napravi opsti
haos na lageru.
Slicnu stvar sam primetio i kad se radi dbSkip(-1) s tim sto se skace
na pocetak datoteke (Bof()->.t.)
Sa SixCDX 1.5 i ranije NTX-om sve je radilo OK.
Ima li komentara?
Pozdrav,
Sele
clipper.351mdrazic,
-> #345, nbatocanin> Najbolje je da se za
> šifru i ne koriste brojevi, što reče mdrazic (nema konverzije
> broj-string-broj), ali ja sam tako odavno počeo, pa mi je sad mrsko
> da to menjam.
'Će te ubedimo, milom ili silom :)))
Milan
clipper.352goxx,
-> #347, milanv■ ch := 0
■ WHILE !browser:stable .AND. ch == 0
■ ch := Inkey ()
■ browser:stabilize ()
■ END DO
■ ch := Inkey (0)
Ovo ti baš i nije najbolje iako ispravno radi !
Kad, recimo, uporno držiš "taster" K_DOWN i ideš kroz tabelu evo šta se
dešava. Program uđe u petlju za stabilizaciju i primeti da je pritisnut
taster, zatim izlazi odatle (taster više nije u baferu !!!) i dolazi
na Inkey(0) gde čeka na novi "taster".
Znači, ako pritisneš neki taster samo jednom dok se vrši stabilizacija
neće "reagovati" tabela.
Rešenje: 1) zameni Inkey() u do-while petlji sa NextKey() ili
2) DO WHILE .NOT. browser:Stabilize() .AND. NEXTKEY() == 0
ENDDO
Ovo pod 2 je brže jer sam metod ::stabilize() vraća ::stable.
■ xPriv := &fname
■ č Row(), Col() GET xPriv VALID IIF (...)
■ ...
■ READ
■ REPLACE &fname WITH xPriv
■ ...
■ Otprilike, to je - to. I to radi za sve tipove varijabli,
■ osim za memo polje. Zapravo, verujem da radi i u tom slučaju, samo?
Evo šta se dešava. On počne da edituje memoedit polje koje se sada
zbog dodeljivanja drugoj promenljivoj pretovrilo u karakter polje
(veoma velike dužine).
Kako nemaš PICTURE u GET-u onda on uzima dužinu podatka za PICTURE
tj. prikaže od pozicije pa do desne ivice ekrana, a u okviru njega možeš
daleko da odeš iz vidljivog dela ekrana (ovo isto se dešava i u DBU
ako je "C" polje veće od ekrana).
Rešenje bi bilo da u slučaju memo polja ( Valtype(&fname)=="M" )
edituješ podatke (memo) u nekom prozoru sa MEMOEDIT() ili na neki
drugi način.
Probaj da izbegneš makroe :)
Goran
clipper.353majtoski,
Da li neko zna kako u clipper uz gforce lib ubacim sliku u 640x480 u
program, ili preko neke druge lib. koja i kako
clipper.354dsisic,
-> #347, milanv
// Ukoliko bi ovde ...
> AADD (cols, TBColumnNew ('Sifra', sdd ar_sifrac))
// ... postavio set/get blok
AAdd( cols,;
TbColumnNew( 'Sifra', { |x| if( x == NIL, ar_sifrac, ar_sifrac := x ) } )
// ... Onda bi ovo
> CASE ch == K_ENTER .AND. cUpis == NIL
> ...
> fname := aFieldsSbrowser:colPosC
> xPriv := &fname
>
> Z Row(), Col() GET xPriv VALID IIF (...)
> ...
> READ
> ...
// ... izgledalo 'elegantnije'
CASE ch == K_ENTER
oGet := GetNew( Row(), Col(), browser:GetColumn( browser:ColPos ):Block )
ReadModal( { oGet } )
// ...
Jos bih da razjasnim:
Ukoliko u toku 'refresha' tj. stabilizacije, dodje do pritiska
na neki taster (ch != 0), trebalo bi preduzeti neku akciju saglasno
pritisnutom tasteru. Jasno je da ono 'ch := Inkey( 0 )' iza 'END DO' anulira
vrednost ch koji je prekinuo stabilizaciju. Dakle, ukoliko zelis da
'konstruktivno' prekidas stabilizaciju moras da zaobidjes to Inkey( 0 ).
U suprotnom ovih pet linija koda moze da se opise samo sa dve:
> WHILE !browser:stable .AND. ch == 0 browser:ForceStable()
> ch := Inkey () ---- ----
> browser:stabilize () ---- ----
> END DO ch := Inkey(0)
> ch := Inkey (0)
// Najbolje bi pak islo:
While !browser:Stable .and. ch == 0
browser:Stabilize()
ch := Inkey()
end
if browser:Stable
ch := Inkey( 0 )
end
do case
// ...
clipper.355dsisic,
-> #350, aseovic
> dbSeek(BrOtp)
> while otp_det->brfak == BrOtp
> dbDelete() // brise zapis
> dbSkip(1) // trebalo bi da predje na sledeci
> enddo // ali skace na kraj datoteke - Eof()->.t.
Mislim da je krajnje neprimereno brisati zapise iz tabele pod uslovom
koji je sastavni deo kljuca trenutnog indeksa.
Da ne pominjem da samo brisanje nije bas u 'fazonu'. Probaj sa reciklazom :)
clipper.356nbatocanin,
-> #347, milanv> TO!
Sve ti je dobro u programu, jedino što memo polja ne možeš učitavati
sa GET, već treba upotrebiti MemoEdit.
clipper.357d.petrovic,
-> #350, aseovic> Subject: SIX 2.02
>
> Da li je neko primetio "čudno" ponašanje SIX-a prilikom
> brisanja
Napravili sad nešto što sam ja pre par godina O;))
Već je poznata priča da obrisan zapis može ponovo da se koristi...
Krenem po stavkama otpremnice, pokupim podatke, napunim sva polja sa
Chr(0), obrišem pa dbSkip() i ... normalno da nije na sledećoj stavci,
sada je prvi u bazi. Posle sam za takve rabote napravio...
Do While <Uslov> .AND. ! Eof()
// Pokupi podatke
dbSkip()
aadd(aBris, RecNo())
EndDo
Utamani(aBris)
Func Utamani(a)
Local i := Len(a), n := 0
For n := 1 To i
dbGoto(aŠnĆ)
// Obrisi
// Napuni sa Chr(0)
Next
Možda sada drajver nešto interno pokušava da sortira (obrisane
fajlove na vrh ili kraj) da ne skakuće po njima. Radim samo sa .NTX pa
neznam koje te muke muče, samo filozofiram O:). Probaj da promeniš stanje
_SET_DELETED pa da vidiš šta se dešava ili probaj ovo gore.
A da se vratiš na .NTX ? ;)))
clipper.358d.petrovic,
-> #354, dsisic> Ukoliko u toku 'refresha' tj. stabilizacije, dodje do pritiska
> na neki taster (ch != 0), trebalo bi preduzeti neku akciju
> saglasno pritisnutom tasteru. Jasno je da ono 'ch := Inkey( 0
> )' iza 'END DO' anulira
Zar nije mnogo efikasnije da ( Ch := 0 ) ide na kraj glavne petlje ?
clipper.359mdrazic,
-> #355, dsisic>> dbSeek(BrOtp)
>> while otp_det->brfak == BrOtp
>> dbDelete() // brise zapis
>> dbSkip(1) // trebalo bi da predje na sledeci
>> enddo // ali skace na kraj datoteke - Eof()->.t.
>
> Mislim da je krajnje neprimereno brisati zapise iz tabele pod uslovom
> koji je sastavni deo kljuca trenutnog indeksa.
>
> Da ne pominjem da samo brisanje nije bas u 'fazonu'. Probaj sa reciklazom
> :)
Ne razumem. Ma kakav index da imaš, u brisanom zapisu mu se nalazi ključ.
A prvi metod sa 'čistim' delete ne pravi probleme osim ako možda imaš
uslovni index po .not.deleted(). Reciklaža (ukoliko menjaš ključ radi
toga) uvodi nove probleme. Jedan od problema je što se promenom ključa
odmah nađeš na drugom mestu u tabeli, a drugi što se prilikom rada oseća
usporenje kada pointer 'prelazi' preko brisanih zapisa. Primer: ako u
ključno polje radi reciklaže upišeš recimo chr(255) tada su po tom
ključu svi brisani zapisi na dnu tabele, i go bottom dugo radi dok ne
nađe poslednji neobrisani zapis.
U gornjem problemu sa skipovanjem objašnjenje je moguće i logično ako
je aktivni index uslovni po .not.deleted(). Inače bi to trebao biti bug.
I na kraju jedan kompromis za reciklažu: ako želite da reciklirate
zapise a i da ih čuvate u izvornom obliku možda pokušate ovako.
Za reciklažu koristite uslovni index po uslovu deleted() a koji će
sadržati datum i vreme zadnje promene zapisa (može se i spakovati
u 6 znakova ko ekonomiše sa prostorom).
Primer: index on Timestamp() to I_RECIKL for deleted() gde vaša
funkcija Timestamp() vraća recimo descend(dtos(date())+time()) ili slično.
Na vrhu su najsvežije brisani zapisi. Pri reciklaži nećemo koristiti
brisane zapise u recimo zadnjih 5 dana. Tada se traženje slobodnog
mesta svodi na dbseek( descend(dtos(date()-5), .t. ). Ovim rešenjem
se omogućava recall zapisa u nekom razumnom roku uz efikasnu reciklažu.
Milan
clipper.360bulaja,
CA-Visual Objects
Pitanje..: Može li se promeniti izgled statusne linije u VO programima
(po default-u u njoj su prikazani HyperLabel i sat)?
Odgovor..: Može. :)
Za to je zadužena StatusBar klasa čiji je vlasnik ShellWindow, odnosno
StandardShellWindow ukoliko korisite kostur (app framework) Standard MDI
apllikacije koji je generisao VO. Neki od metoda StatusBar klase su npr.
DisplayTime() (prikazuje sat u statusnoj liniji - ovo je default u Std
MDI App), DisplayKeyboard() (prikazuje status Insert, Num Lock, Caps
Lock i Scroll Lock tastera - mnogo lepo izgleda:), DisplayMemory()
(prikazuje količinu slobodne memorije - korisno prilikom razvoja
aplikacije),.. Redosled pozivanja StatusBar metoda određuje i redosled
prikazivanja tih informacija sa leva na desno. Opis StatusBar klase
imate u VO help-u, s tim što su neke stvati dosta šturo objašnjene -
hroničan nedostatak VO helpa je odsustvo dobrih primera. Izgled statusne
linije je najzgodnije podesititi u Init metdu ShellWindow-a, npr. ovako:
METHOD Init( oOwnerApp ) CLASS StandardShellWindow
local oSB as StatusBar
// ostale stvari koje idu u Init()
oSB := self:EnableStatusBar()
oSB:DisplayMemory()
oSB:DisplayKeyboard()
oSB:DisplayTime()
// znači u statusnoj liniji će biti prikazani redom
// sa leva na desno (uz right justification) količina
// slobodne memorije, keyboard indikatori i sat
// ...
return self
clipper.361soul,
Moderator bi zaista učinio uslugu svima kada bi otvorio temu VO.
Još jedan glas razuma: ZA
clipper.362rccomp,
-> #361, soulJos jedan glas za otvaranje VO konferencije !
clipper.363djelovic,
-> #362, rccomp> Jos jedan glas za otvaranje VO konferencije !
Konferencije? Ih, ma to nije ništa, daj da ceo Sezam preimenujemo u VO :).
Šalu na stranu, trnenutna realnost je da se o VO zapravo i ne diskutuje, pa bi
bilo kakva novootvorena tema zvrjala prazna. Zbog toga je ipak najbolje da se
priča o VO obavlja u temi clipper, a da se sa otvaranjem teme ipak malo
pričeka.
P.S. A šta je sa temom PowerBuilder? Ja hoću PowerBuilder! :)
clipper.364peacock,
-> #363, djelovic#### P.S. A šta je sa temom PowerBuilder? Ja hoću PowerBuilder! :)
To čudo izgleda mnogo interesantnije nego VO. Imaš li neka
konkretnija iskustva sa PB, bilo bi lepo da ih podeliš sa nama.
clipper.365mileusna,
-> #363, djelovic>> Šalu na stranu, trnenutna realnost je da se o VO zapravo i ne diskutuje,
BTW, napravi li neko nešto na tom VO, mislim na kompletnutnu aplikaciju, bilo
da je u pitanju neki veći projetak, ili kućni adresar.
clipper.366djelovic,
-> #364, peacock> To čudo izgleda mnogo interesantnije nego VO. Imaš li neka
> konkretnija iskustva sa PB, bilo bi lepo da ih podeliš sa nama.
Nisam se baš ubio od korišćenja - pošto sam ga dobio tek pre koji dan
kranji domet u radu sa njim mi je jedan telefonski imenik, no, svejedno, evo
kratkog iskustva:
1. PowerBuilder je trenutno *hot* aplikacija u Americi, i tamo su oglasi po
novinama rečenica tipa "traže se PB programeri".
2. Kao alatka za razvoj, PB ima dve krupne prednosti u odnosu na Fox4Win,
dBase 4 Win, Access i sl. Prvo, pravi EXE koji radi na mašinama sa 4MB,
i drugo, lepo se slaže sa velikim serverima.
3. Mana PowerBuildera je to što nije baš najkomforniji - iako se aplikacije
sa njim prave veoma brzo, ipak bi to moglo i bolje. Help nije "context
sensitive", neke opcije su komplikovane i nekomforne i sl.
Ukratko, PB je dobar program koji radi posao. Pravi EXE koji radi u 4MB što
mu je za nekoga ko danas prodaje Clipper programe a želeo bi da pređe na
Windows najveći adut, a usput je strašan u client/server okruženju kome je to
potrebno.
Zbog toga što je nekomforan i zbog onog basic-like jezika najverovatnije ću
preći na Delphi kada se pojavi. Do tada, PB is it.
clipper.367bulaja,
-> #366, djelovic│Zbog toga što je nekomforan i zbog onog basic-like jezika najverovatnije
│ću preći na Delphi kada se pojavi. Do tada, PB is it.
└───
A da li si uopšte probao VO? :)
clipper.368djelovic,
-> #367, bulaja> A da li si uopšte probao VO? :)
Nisam. Vidim da se o VO ovde još ne priča, pa se nisam ni mnogo raspitivao
kako radi. Elem, da li ispunjava:
1. Da programi napisani njime rade bez problema u 4MB.
2. Da nije bagovit.
Ako su ova dva uslova ispunjena, dobili ste novog manijaka u ovoj temi :).
clipper.369jolicm,
-> #362, rccomp>> Jos jedan glas za otvaranje VO konferencije !
E posle ovakvog glasa uvek glasač dobije odgovor: NE, ima još vremena, tema
nema dovoljno interesenata ...
E BAŠ ME BRIGA ...
JOŠ JEDAN GLAS ZA OTVARANJE VO TEME
Razlozi za:
VO i standardan clipper su kao dos i windows (za šta su baš i pravljeni)
Imaju samo dodirne tačke u radi dbf.datoteka i tačka.
Ja do sada nisam niš napisao u VO, osim nekog jednostavnog programa za pregled
dbf datoteka i ne mislim da ću moći skoro da bilo šta radim na VO pošto imam
samo 4MB memorije.
E sad MODERATORE Zamisli nekog ko ne radi u VO i mora da čita raspravu i
listinge koji će sve VIŠE biti u ovoj temi.
E ima još:
Zamislite jednu lepotu:
Odluči se neko za VO, mislim da radi na njemu (nekad, nekog dana) i tada pokupi
lepo SVE što je ikada napisano o VO na sezamu iz konferencije PC.PROG tema VO.
Ukoliko se ODMAH ne otvori ova tema (a bogami skoro je već KASNO), nema šanse
da se kasnije pokupi sve, pošto je pomešano sa običnim clipperom !!!
MODERATORE ukoliko planiraš otvaranje teme VO nekada u budućnosti, ODGOVORI
zašto onda ne SADA (upravo zbog budućnosti)
Zdravo !:)
clipper.370dr.grba,
-> #368, djelovic>>> A da li si uopšte probao VO? :)
>>
>> Nisam. Vidim da se o VO ovde još ne priča, pa se nisam ni mnogo raspitivao
>> kako radi. Elem, da li ispunjava:
Video sam i VO i PB. Ovaj prvi se čini glomazniji, daje (naizgled)
mnoooogo više kontrole, dok ovaj drugi (naizgled, takođe) daje
mnoooogo brže rezultate...
E, sad. Mogu ja da špekulišem i dangubim kad bih imao na raspolaganju
vreme koje nemam. Fakat, ovo su alati za Win programiranje baza za
leto gospodnje 1995. žućemo mi mnogo o ovome, sigurno.
Ali nema smisla sa piratskom kopijom... Da sedim i da bajam kao da
uradim ovo ili ono... Vreme je preskupo (da, tačno, šta ja tražim
ovde? (: )
Najzad, voleo bih da dam ličnu ocenu VO i PB, posebno i uporedno (neko
će se ovoga već setiti, pa napraviti članak u....), ali tu ocenu ne mogu
da dam posle dvadeset minuta čeprkanja po interfejsu. Moram videti ceo
paket, sve knjige u njemu. žak mi računar ni ne treba. Prosto, pokušao
bih da u najkraćem roku nađem odgovor na neka test pitanja.
clipper.371mkurtes,
Jeste da sam vec dao svoj glas za temu VO ali nije na odmet da se ponovo
pridruzim novopridoslim pristalicama VO-a. Treba otvoriti temu VO sto
pre. :)
clipper.372aseovic,
-> #355, dsisic> Mislim da je krajnje neprimereno brisati zapise iz tabele pod uslovom
> koji je sastavni deo kljuca trenutnog indeksa.
To brisanje je ostalo još iz vremena Clipper-a 5.01 kada _nije bilo_
uslovnih indexa. Sa SIX-om 1.5 i USLOVNIM indexom JE RADILO pa nisam ništa
menjao, a sa 2.0 NE RADI. Dakle, bez obzira na to da li je brisanje
'primereno' ili nije, sa jednom verzijom radi a sa drugom ne.
> Da ne pominjem da samo brisanje nije bas u 'fazonu'. Probaj sa reciklazom :)
Ako baš želiš da budes u 'fazonu' pogledaj ĐSIX20ĐSAMPLESĐRECYCLE.PRG :)
Pozdrav,
Sele
clipper.373aseovic,
-> #357, d.petrovic> Krenem po stavkama otpremnice, pokupim podatke, napunim sva polja sa
> Chr(0), obrišem pa dbSkip() i ... normalno da nije na sledećoj stavci,
> sada je prvi u bazi. Posle sam za takve rabote napravio...
Nisam hteo da radim takvu reciklažu. Hteo sam jednostavno da
obrišem zapis :)
> Do While <Uslov> .AND. ! Eof()
> // Pokupi podatke
> dbSkip()
> aadd(aBris, RecNo())
> EndDo
> Utamani(aBris)
Moze i tako. Meni je problem rešilo sledeće:
do while Found()
dbDelete()
dbSeek(brOtp)
enddo
> Možda sada drajver nešto interno pokušava da sortira (obrisane
> fajlove na vrh ili kraj) da ne skakuće po njima. Radim samo sa .NTX pa
> neznam koje te muke muče, samo filozofiram O:). Probaj da promeniš stanje
> _SET_DELETED pa da vidiš šta se dešava ili probaj ovo gore.
Mislim da jednostavno izbacuje zapis iz indexa (uslovni index: FOR !Deleted())
Problem je nastao zato što prethodna verzija SIX-a to nije odmah radila već se
ponašala (izgleda) kao NTX sa SET DELETED ON: osvežavala je index tek posle
pomeranja pokazivača na drugi zapis. (SET DELETED je sada OFF)
> A da se vratiš na .NTX ? ;)))
Neću! :)
Zar da se odreknem CDX-ova, transakcija, memo polja i mnogih drugih pogodnosti?
Taman sam sve sredio da ne puca, kad 'oćeš, teraju me da se vratim na NTX :))
Pozdrav,
Sele
clipper.374mileusna,
-> #368, djelovic>> 1. Da programi napisani njime rade bez problema u 4MB.
Bilo je čini mi se reči o tome. Za normalan rad samog VO-a je potrebno bar
8 MB, dok aplikacije mogu da rade i sa manje memorije tj. 4 MB. žini mi se da
je o tome pisao nbatocanin u baze.podataka.
Nego, hoće li Borlandov Delfi da ima ugrađenu podršku za rad sa bazama, kao
što je to u VBasicu for Win (ja sam još uvek 99% u DOS-u, a Win, normalno, za
Hearts;) Jel' bilo nešto u NOVOSTI-ma o tome. Ako jeste, jel zna neko gde i
kada. Odgovor može i u PC.PROG/jezici ili razno, da ne bi gušili Clipper.
clipper.375saks,
Da li negde na Sezamu postoji opis TTF fontova (struktura fajla).
Bio bih vam jako zahvalan na odgovoru.
Sasa
clipper.376bpekic,
Ne znam zasto bi bio problem otvoriti temu CAVO, stvarno cemo poceti
da se "guramo" u jednoj temi, generalno posveceno Clipperu, ali kod
CAVO, bice i drugacijih poruka od cisto "programerskih mozgalica".
RAdi se o tome da imamo nazalost mnogo posla oko utvrdjivanja raznih
"rupa u saksijama" jer smo naravno veoma dobro opremljeni literaturom
i parama za nju.
U takvoj temi, nece biti problema sa korisnicima koji ne zele da za sada
krenu u rad na CAVO, a ni njima nece smetati poruke koje i ne zele da
citaju.
Posto ja na primer, nemam novca za lepo "kako bog nalaze" kupim original
CAVO, naravno da sam ga nabavio kod dilera i naravno da zelim da se
dokopam literature zaobilazno.Sta mi drugo preostaje?
Osim toga, koliko nas ima koji radimo i zaradjujemo, radeci na
REGISTROVANIM verzijama programa (bilo da je to Clipper, C, ili se samo
igramo...) Siguran sam da velika vecina od nas tako ne radi zbog "cefa"
vec jednostavno, ne mozemo se meriti sa valutnim iznosima koji se krecu
od 1000DM pa navise.
Iz tog razloga u temi CAVO, bice mnogo poruka u vezi "provaljivanjem"
kako sve to radi, a manje za pocetak o samoj tehnici programiranja.Nema
druge nego da sami sebi pomognemo, zasebna tema je jedno od resenja.
Dakle CAVO, CAVO tema!
clipper.377d.petrovic,
-> #374, mileusna> Bilo je čini mi se reči o tome. Za normalan rad samog VO-a je
> potrebno bar 8 MB, dok aplikacije mogu da rade i sa manje
Sa 4 MB oupšte neće da prevede onaj program koji se dobija uz njega. Puca
po svim šavovima posle jedno pola sata maltretiranja diska.
> memorije tj. 4 MB. žini mi se da
Nova aplikacija (prazna, samo klikneš na new i napraviš "prazan program")
se učitava OKO 30 sec, a prvi poziv neke opcije (otvaranje dbf-a) traje
OKO 20 sec. Drugi poziv je već brz.
clipper.378d.petrovic,
Jesete, treba nam tema. 'oćemo VO.
= tačka ;)
clipper.379dejanr,
-> #378, d.petrovic>> Jesete, treba nam tema. 'oćemo VO.
JEDINI način da se tema otvori jeste da, kroz duži vremenski period,
bude veći broj poruka u kojima se diskutuje o VO (diskusija != prosto
traženje teme). Samo tako nastaju teme na Sezamu.
clipper.380nbatocanin,
-> #365, mileusna> BTW, napravi li neko nešto na tom VO, mislim na
> kompletnutnu aplikaciju, bilo da je u pitanju neki veći
> projetak, ili kućni adresar.
Dve su tu stvari: prva, nije nimalo lako bez papirnog uputstva.
Koliko sam primetio, ni u finalnoj verziji se help i dokumentacija ne
poklapaju. Druga stvar je što je VO u startu koncipiran kao alat za
profesionalce i zaista nije tako lak za upotrebu kao Visual Basic.
clipper.381mkurtes,
CAVO
Posto se dosta vec prica o tome dali moze ili ne moze da se radi
ispod 8 MB RAM-a sa VO paketom evo uporednih testova:
486DX/66MHz/4MBKKKKKKKKKKKKKKK ->/50MHz/8MB ->/66MHz/16MB
02 min 56 sec 01 min 35 sec 01 min 11 sec = pravljenje exe file-a
00 35 00 10 00 06 = pokretanje exe file-a
00 17 00 03 00 02 = otvaranje Data Window-a
sa 47 polja u vezi sa
serverom.
Kao sto vidite RAM je presudan ali se moze raditi i sa 4 MB
(ako imate dovoljno zivaca da docekate rezultate bild-ovanja
i ostalih operacija zavisnih od RAM-a).
Iako moram reci da je ovo sve radjeno bez RAM diska koji bi
jos ubrzao rad ako bi se napravio kao TEMP (ko ima visak RAM-a
neka izvoli)
Pozdrav. :) -CAVO TEMA - CAVO TEMA - CAVO TEMA - CAVO TEMA - CAVO TEMA.
clipper.382mkurtes,
-> #381, mkurtes
cavo
NASTAVAK
Posto je ubrljalo K red u predhodnoj poruci objasnjenjež
prva kolona se odnosi na 486/66MHz/4MB RAM-a
druga kolona se odnosi na 486/50MHz/8MB RAM-a i
treca kolona se odnosi na 486/66MHz/16MB RAM-a.
Server koji pominjem je DataServer.
:) CAVO TEMA -> ...
clipper.383mdrazic,
-> #373, aseovic> do while Found()
> dbDelete()
> dbSeek(brOtp)
> enddo
Kraće i bolje (ne traži početni seen pre petlje):
do while dbSeek(brOtp)
dbDelete()
enddo
clipper.384goxx,
Povodom CA-VO teme. I ja sam za, be obzira što još uvek ne radim na njemu
Ako se otvori posebna tema počinjem i ja da radim (ovo je ucena :)
clipper.385bulaja,
-> #368, djelovic│Nisam. Vidim da se o VO ovde još ne priča, pa se nisam ni mnogo raspitivao
│kako radi. Elem, da li ispunjava:
│ 1. Da programi napisani njime rade bez problema u 4MB.
│ 2. Da nije bagovit.
│Ako su ova dva uslova ispunjena, dobili ste novog manijaka u ovoj temi :).
└───
1. Rade.
2. Nije.
:)
Naravno Visual Objects je još uvek suviše nova i neispitana stvar da bi
bio 100% siguran u ove dve stvari, ali za sada se dobro pokazuje :).
Doduše sama razvojna okolina izgleda još uvek nije potpuno očišćena od
bubica (dešavaju mi se po neki GPF otprilike svaki drugi-treći dan, a u
VO u poslednje vreme provodim po nekoliko sati dnevno:), ali gotove
aplikacije izgleda da ne pate od toga. Konačni EXE radi lepo i na
slabijim mašinama, jedino mi se čini da se nekako sporo učitava :).
Pretpostavljam da je to zbog dosta velike količine DLL-ova koja je
potrebna za rad (prosečno nekih 20-ak datoteka, ukupne dužine nešto
iznad 2Mb), dok je sam EXE relativno mali (150Kb pa naviše). Ako
stignem, napraviću neku konkretnu manju aplikaciju do sledeće nedelje
(taman dok otvoriš CAVO temu:), pa ću poslati ovde (tj. u PC.PROG:cavo
na uvid :).
clipper.386nbatocanin,
-> #368, djelovic> Ako su ova dva uslova ispunjena, dobili ste novog manijaka
> u ovoj temi :).
Hm, mislim da ti nisu dobri uslovi :) Što bi rekao tipičan komentator
RTS, svedoci smo velikih promena u softverskim alatima. Nema više
editor+kompajler i vozi! Sada se radi u integrisanim okolinama od po
50MB na disku (uzgred, šta sada preporučujete čoveku-neprofesionalcu
da uzme za kućnu upotrebu?). Ako malo razmislite, videćete da je to
za sada jedini način da se izborimo sa složenim sistemima kao što je
Win i ostalima koji, svakako, tek dolaze. Htedoh da kažem: svi ti
proizvodi će u budućnosti postati toliko slični, sa sličnim
mogućnostima, da će u izvesnom smislu izbor između njih biti skoro
nevažan. Kladim se da će svi tražiti skoro iste resurse, imati
približno isto bagova i sl. - kao i sada, uostalom.
clipper.387nbatocanin,
-> #374, mileusna> Nego, hoće li Borlandov Delfi da ima ugrađenu podršku za
> rad sa bazama, kao što je to u VBasicu for Win
Koliko sam ja obavešten, hoće, i to vrlo jaku. Moj drugar je bio u
test-timu i nešto priča o isključivoj distribuciji na CD-u. Doduše,
ovo nije provereno.
clipper.388tvucko,
I ja sam za temu VO. Ko voli nek izvoli !!!
Sve sto sam uradio u VO je instalacija, izrada programa
za obradu žiro računa, testiranje i brisanje VO.
Ako je u pitanju Windows i XBASE onda ipak ostajen
na FiveWin koji je mnogo praktičniji za izradu aplikacija i
kasnije održavanje.
clipper.389d.petrovic,
-> #379, dejanr> JEDINI način da se tema otvori jeste da, kroz duži vremenski
> period, bude veći broj poruka u kojima se diskutuje o VO
> (diskusija != prosto traženje teme). Samo tako nastaju teme na
> Sezamu.
Ubedio si me. ;((((
Javljajte se ko 'oće u grupu.
clipper.390dr.grba,
-> #385, bulaja>> Ako
>> stignem, napraviću neku konkretnu manju aplikaciju do sledeće nedelje
>> (taman dok otvoriš CAVO temu:), pa ću poslati ovde (tj. u PC.PROG:cavo
Telefonski imenik? (((:
clipper.391mkurtes,
CAVO
Prijavljujem se za grupu. :)
clipper.392mdrazic,
Molim ko zna da javi:
Šta sve utiče na LOAD SIZE (veličina koju javlja linker na kraju)
Clipper programa. Koristim RTLink sa jednim ili dva PLL-a i sa
Nanfor plus sopstvenom bibliotekom. Load size aplikacije je 426K
u razvojnoj verziji (sa debugerom) i 387K u finalnoj. Razvojna
verzija kada radi sa 605K RAM na jednom mestu zaglavi zbog
nedostatka osnovne memorije. Za sada nije ništa kritično jer
postoji i vidram :)) ali pitanje ostaje.
Još jedno zapažanje: kada aplikacija koristi EMS tada u osnovnoj
memoriji odvaja izvesni prostor za neku administraciju dotičnog.
Što je veći EMS, to više odvaja RAM-a. Iako je isti load size,
sa set clipper=Fxx;E0 opcijom ostane dole više memorije. Gornje
opisano zaglavljivanje je otklonjeno baš isključivanjem EMS, čime
je dobijeno ekstra 9KB.
Da li neko zna neku literaturu o organizaciji memorije, koliko na
load size itd. utiču private, local, static i slično. Ako se takav
nadje, neka se javi, neću mu ništa :)
Milan
clipper.393bulaja,
-> #381, mkurtes│Kao sto vidite RAM je presudan ali se moze raditi i sa 4 MB
│(ako imate dovoljno zivaca da docekate rezultate bild-ovanja
│i ostalih operacija zavisnih od RAM-a).
└───
Sa 4 Mb se sigurno ne može ozbiljno raditi :). Može se eventualno
pogledati help, generisati i kompajlirati Standardna MDI aplikacija,
promeniti HelpAbout :) i to je sve. Već je prebacivanje iz VO u Help
vremenski intenzivna operacija, a aktiviranje nekog od alata traje po
pola minuta što se sigurno ne odražava pozitivno na produktivnost :).
Sticajem okolnosti, i ja sam VO prvi put probao na 486/40 sa svega 4 Mb
memorije, i baš je bilo naporno raditi :). Trenutno u VO radim na
dve konfiguracije - jedna 486/40/8Mb (kućna mašina) i jedna 486/66/16Mb
(na poslu). žak i na ovoj drugoj (dakle sa 16 Mb RAM) se često oseti da
bi doborodošao i koji Mb više, ali se i sa 8 Mb može raditi (mada je
potrebno malo strpljenja:). Gledao sam VO i na 386 mašini sa 8 Mb
memorije, i to je radilo bolje nego 486 sa svega 4 Mb.
Ipak ko ima svega 4 Mb nek se ne ustručava da proba CA-Visual Objects -
može bar okvirno videti o čemu se radi i isplati li se investicija u
koji Mb RAM memorije više, koji je za ozbiljniji rad ipak neophodan.
│Iako moram reci da je ovo sve radjeno bez RAM diska koji bi jos ubrzao
│rad ako bi se napravio kao TEMP (ko ima visak RAM-a neka izvoli)
└───
:) RAM disk ne bi ubrzao rad, čak naprotiv.
clipper.394bulaja,
-> #389, d.petrovic│Javljajte se ko 'oće u grupu.
└───
Daj oladi sa grupom :). Ako hoćeš da nešto doprineseš otvaranju CAVO
teme, bolje ako imaš pošalji ovde neki prilog vezan za VO :).
clipper.395jolicm,
-> #379, dejanr>> JEDINI način da se tema otvori ...
Ako je to jedini način :) Zahtevam :) da se zatvore teme:
comment 0 poruka do sada,
dos 8 poruka do sada
algoritmi 21 poruka
cpp 22 poruke
CAVO je taj broj prešao.
Nije u redu da se ne dozvoljava iz teme clipper koja ima 391 poruku do sada da
se izdvoji još jedna tema.
Dejane ne poznajem te lično, ali čitajući tvoje tekstove ranije u računarima,
kada su počeli izlaziti nebih verovao da ćeš preći u birokrate
clipper.396d.petrovic,
-> #394, bulaja> Daj oladi sa grupom :). Ako hoćeš da nešto doprineseš otvaranju
> CAVO teme, bolje ako imaš pošalji ovde neki prilog vezan za VO
> :).
Trebalo je da dobiješ pivo večeras za EH, ali, ako mi ovako odgovaraš na
mail ima da igram bilijar ;)))
clipper.398mileusna,
-> #391, mkurtes>> CAVO
>> Prijavljujem se za grupu. :)
E, moram i ja malo da zašumim. ;)
.To moderator "Daj čoveče, otvori im tu temu, bar da mi se ne puni PAD sa
nečim što nema veze ni sa Clipper-om ni sa CA.VO-om, kao što su recimo ove
žalopojke tipa "Hoćemo temu, hoćemo temu". U temi Ca.Vo bi moglo bar nešto
pametno da se pročita. Ako i ne bude previše rasprave, neće to biti ni prva ni
poslednja tema na Sezamu koja će zvrjati prazna ( bar neko vreme ;)."
REPLY dr.grba
>> Telefonski imenik? (((:
Why not. Hint : "Bulaja Organizer" ;) Nek' bude šta bude, ja bih samo
voleo da vidim neko čedo iz tog Ca.Vo-a, pa makar i prozor sa "Hello World"
Title-om :))))
clipper.399dvesic,
-> #392, mdrazic>> Šta sve utiče na LOAD SIZE (veličina koju javlja linker na
>> kraju) Clipper programa. Koristim RTLink sa jednim ili dva
>> PLL-a i sa Nanfor plus sopstvenom bibliotekom. Load size
>> aplikacije je 426K u razvojnoj verziji (sa debugerom) i 387K u
>> finalnoj. Razvojna verzija kada radi sa 605K RAM na jednom
>> mestu zaglavi zbog nedostatka osnovne memorije. Za sada nije
>> ništa kritično jer postoji i vidram :)) ali pitanje ostaje.
E sada ide priča ... (Ne čitaš članke u Računarima :)
Celokupna memorija zatečena na startu (Realna + Ems) se zauzima
od strane Clipperovog VMM-a (Virtual Memory Manager). Pri tom se za
upravljanje ovom memorijom odvaja tabela (u realnoj mem.) i to po
14 bajtova na svaki Kb Realne/Ems memorije. (izuzetak : korišćenje PLL
lib-ova; vidi dole).
Zatim se prostor deli na Fixed i Swap space. U Fixed space idu
sistemske tabele, C i ASM rutine (kod RTLINK-a; Blinker i ove
rutine gura u dinamičke overleje -> više memorije). Što je veći Fixed Space
to je manji Swap space. LOAD SIZE koju javlja linker je upravo min. veličina
Swap Space-a (od realne treba odbiti Fixed deo i Eval stack kao i deo
za Private/Public varijable).
Za svaku Priv/Pub varijablu je potrebno 20 bajtova. Potrebna memorija
za ovo se odvaja od Swap Space-a tokom rada u koracima od 1Kb. To je ono
što može izazvati nedostatak memorije kroz duži rad programa.
Kod korišćenja PLL biblioteka RtLink sam odvaja deo Realne mem. za tabele
simbola : za svaku PLL biblioteku spisak svih simbola koje je moguće
referisati iz programa sa njihovim adresama i još nekim servisnim
informacijama. To se radi PRE nego što se prepusti kontrola VMM-u.
Tu je i Eval Stack, na kojem se kreiraju Local i Static varijable.
Local pri vrhu Eval Stacka, Static pri dnu (jer se ne uništavaju za
vreme rada programa). Veličina ES-a je < 64 Kb.
Swap space ostaje za rad VMM-a. On alocira VM Segmente <= 64 Kb i
u njih raspoređuje dinamičke overleje. Nepotrebni overleji se sele
u EMS, tako da isključivanje EMS-a *jako* degradira performanse
većih aplikacija (zahtev za dinamičkom stranicom se uvek čita
sa diska).
>> load size itd. utiču private, local, static i slično. Ako se
>> takav nadje, neka se javi, neću mu ništa :)
Evo me :)))
Generalni savet(i) :
- Smanji Private/Public na račun statičkih
- Izbaci iz PLL-ova podršku za NTX ako ih ne koristiš
- ako ostaješ pri RTLinku, razmisli o ručnom razbijanju
aplikacije na overleje
- Upotrebi Blinker sa min/mid/max LNK fajlovima
- mail me, ako ti treba pomoć :)))
clipper.400djelovic,
-> #395, jolicm> Nije u redu da se ne dozvoljava iz teme clipper koja ima 391 poruku do sada
> da se izdvoji još jedna tema.
Nije pitanje moguceg ili nemoguceg, vec pitanje interesovanja. Evo koliko
je vremena proslo od kada se prica o otvaranju teme VO, i osim silnih poruka u
kojima se trazi tema, nije bila *nijedna* poruka koja bi se VO-ima konkretno
bavila!
Evo da napravimo :) deal: Vi napisite 20 poruka koje se bave VO-om (pravih
poruka, ne kukanja i simuliranja poruka?), i eto teme. Fer?
clipper.401stosic,
-> #400, djelovic> Nije pitanje moguceg ili nemoguceg, vec pitanje interesovanja. Evo koliko
> je vremena proslo od kada se prica o otvaranju teme VO, i osim silnih
> poruka u kojima se trazi tema, nije bila *nijedna* poruka koja bi se VO-ima
> konkretno bavila!
Ovo je greska, a kako se svaka placa mogao bi malo da pomognes:
Potreeban mi je DLL (za CA-VO) sa samo DVE funkcije: _inp() i _outp()
(pricali smo o tome u temi windows). Pozeljan je i source edukativnog
karaktera. Imam MSVC++ v1.0 i Watcom C++ v10.0, pa biraj.
Pozdrav, Boban
clipper.402stosic,
-> #398, mileusna>>> CAVO
>
> E, moram i ja malo da zasumim. ;)
Samo napred! Sumelo je i kada je dr.grba trazio LALE.
clipper.403toma,
Konačno je došao trenutak da štampam dokumente na laseru. E sad,
pošto ja to do sada nisam radio, voleo bih da mi neko malo pripomogne.
žitah ovde da je neko to radio preko Crystal Reports-a (ili sam se
prevario). Mašina je 486 na 100Mhz, disk 540, 8MB RAM, so moguće su i
takve egzibicije.
Koji je po vašem mišljenju najbezbolniji prelazak iz EPSON
sekvenci na PCL (tako se zvaše) jezik.
Ni sam ne znam šta još da pitam, dakle, napišite što više. Ja sad
čekam vas, čovek čeka moj program i tako...
Namerno nisam napisao da je hitno (a jeste) jer nedavno na nekom
zidu pročitah poruku "Ništa nije hitno, samo ste vi zakasnili" :)
clipper.404dejanr,
-> #395, jolicm>> Dejane ne poznajem te lično, ali čitajući tvoje tekstove ranije u
>> računarima, kada su počeli izlaziti nebih verovao da ćeš preći u
>> birokrate
Ne bih to nazvao birokratijom, to su pravila koja vladaju na Sezamu.
Teme se *nikada* ne otvaraju "napamet", nego samo na osnovu kontinuiranog
interesovanja korisnika izraženog kroz mnoštvo poruka, u dužem vremenskom
intervalu. A to mnoštvo poruka *nije* "hoću temu". Diskutujte o VO, ako
bude dovoljno poruka, biće i teme. Tako je, uostalom, nastala tema fox
pre mesec ili dva.
clipper.405dr.grba,
-> #393, bulaja>> :) RAM disk ne bi ubrzao rad, čak naprotiv.
Jedino preostaje da se nađe onaj program za keširanje RAM diska
koji ndragan nikako da mi da, a obećao mi je.
Ima li ga neko od vas?
clipper.406dr.grba,
-> #402, stosic>> Samo napred! Sumelo je i kada je dr.grba trazio LALE.
Ali sam barem pisao viceve zajedno sa zahtevima. (:
clipper.407d.petrovic,
-> #403, toma> Koji je po vašem mišljenju najbezbolniji prelazak iz EPSON
> sekvenci na PCL (tako se zvaše) jezik.
Ako si koristio #define za setovanja štampača nebi trebalo da bude muke.
Ja sam davno probao i nije mi baš išlo podešavanje kodne strane štampača
iz programa pa je crtao nebuloze umesto linija (to podesiš unapred, na
štampaču), ali sve ostalo je radilo kako treba.
clipper.408rccomp,
-> #391, mkurtes
Evo, malo da smetam: i ja se prijavljujem za grupu !!! :)
clipper.409ndragan,
-> #359, mdrazic/ ključu svi brisani zapisi na dnu tabele, i go bottom dugo radi dok ne
/ nađe poslednji neobrisani zapis.
Zato umesto go bottom može da ide
seek chr(255)
skip -1
Trebalo bi da je brže u ovakvom slučaju.
/ sadržati datum i vreme zadnje promene zapisa (može se i spakovati
/ u 6 znakova ko ekonomiše sa prostorom).
Datum se pakuje u dva bajta ovakvom funkcijom:
param datum
priv y
y=year(datum)-1980
y=max(0,y)
y=min(y,128)
numdatum=512*y+32*month(datum)+day(datum)
low=mod(numdatum,256)
hi=(numdatum-low)/256
gemd=chr(hi)+chr(low)
retu gemd
U tom formatu se, inače, upisuje i u direktorije. Ono GEM u nazivu
promenljive potiče od toga što sam taj format, na svoje veliko
iznenađenje, pronašao na Atariju (bio sam ubeđen da sam ga prvi
izmislio, a eto nisam), a tek potom i u DOSu.
Slično bi moglo i za vreme, recimo minuti 6 bitova, plus sati 5 bitova,
hm, mora se otkinuti od drugog bajta. Skoro da se isplati da se radi BCD
pakovanje, lakše se posle čita, a može i iz kobola (isprobao pod CP/M MS
kobolom, radilo).
clipper.410stosic,
CA-VO:DRAG-AND-DROP
U Init metodi za StandardShellWindow nalazi se i poziv metode
EnableDragDropClient(). Time je omoguceno otvaranje dbf fajlova pomocu
drag-and-drop servera: u File Manager-u pokupite dbf fajl i prevucite
ga u StandardShellWindow!
HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO!
HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO!
HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO!
Finalnu verziju (:
Neko je vec ima ?
clipper.411nbatocanin,
-> #388, tvucko> Ako je u pitanju Windows i XBASE onda ipak ostajen
> na FiveWin koji je mnogo praktičniji za izradu aplikacija
> i kasnije održavanje.
Može li malo detalja?
clipper.412ndragan,
-> #405, dr.grba/ koji ndragan nikako da mi da, a obećao mi je.
Hmmm, na kom to beše disku... ako to nije onaj što mi je riknaja
onomadne...
clipper.413toma,
-> #407, d.petrovic■> Ako si koristio #define za setovanja štampača nebi trebalo da bude
■> muke. Ja sam davno probao i nije mi baš išlo podešavanje kodne
■> strane štampača
To, to, al meni treba nešto kao :
Epson Laser (IIp kompatibilan)
EscP --> ?
EscM --> ?
Condensed --> ?
Probao sam malo i sam i počeo sam da kapiram, ali nije na odmet
i malo tuđeg iskustva
clipper.414bulaja,
-> #400, djelovic│Evo da napravimo :) deal: Vi napisite 20 poruka koje se bave VO-om
│(pravih poruka, ne kukanja i simuliranja poruka?), i eto teme. Fer?
└───
Fer :). S tim što nisi baš u pravu da nije bila *nijedna* konkretna
poruka o VO :) - bilo je do sada diskusija o zvaničnim i nezvaničnim
patch-evima za VO 1.0, zatvaranju prozora pritiskom na ESC, problemima
sa inicijalizacijom VO, StatusBar-u, memorijskim zahtevima... Sve u
svemu nekih bar deset-petnaest korisnih poruka :).
clipper.415bulaja,
-> #398, mileusnaCA-Visual Objects
│Nek' bude šta bude, ja bih samo voleo da vidim neko čedo iz tog Ca.Vo-a,
│pa makar i prozor sa "Hello World" Title-om :))))
└───
Ok, you asked fot it: :)
METHOD Start() CLASS App
local oBox as TextBox
oBox := TextBox { , "Hello", "Hello, world!" }
oBox:Type := BOXICONEXCLAMATION + BUTTONOKAY
oBox:Show()
DJelovicu, jel brojiš? :)