PCPROG.1

20 Sep 1991 - 03 Dec 1992

Topics

  1. ms.dos (235)
  2. cccc (0)
  3. asembler (321)
  4. pascal (896)
  5. clipper (1059)
  6. zastita (239)
  7. basic (178)
  8. baze.podataka (116)
  9. novi.fajlovi (66)
  10. algoritmi (52)
  11. razno (707)
  12. van.teme (126)
  13. unknown (986)

Messages - pascal

pascal.204 vojkan, -> #202, bearboy
-> Ako je mislio na to, ja sam napravio jedan... Jes' da je -> spor k'o bog, al' ima source i radi... Pa ok to je ono što sam i ja hteo da radim. Pošalji ga ako nije frka zbog kopitajta ;)
pascal.205 nesavic,
Hi, imam problema sa programom datim u racunarima ne zna se kojim ali nije ni vazno, vazno je da ne radi... Program je dat listingom i trebalo bi da presrece $5 interapt i skida sliku odakle hoces i posle je ucitava, e sad to mozda i radi za CGA tj adresa $B800:$0000 ali za Hercules ne da ne radi nego se nista ne pojavljuje, radio sam sa adresom $B000:$0000 ali nista, tj. kada stavim da mi snimi 16192 bytesa onda imam oko 1/4 - 1/2 slike, sve iznad ove cifre ne radi... Ajd sad vi meni recite sta je po sredi... zahvalan, NeSa!
pascal.206 bearboy, -> #203, ognjan
-+={ Jel' moze da skine sa VGA karte sliku u GEM (IMG) -+={ formatu ??? Ako moze, salji odma' ! PA ZAR TI CITAS STA REPLICIRAS ?!?!?! Pise lepo - GEM, PCX, a ja sam dodao jos i LBM (nekompresovan). Inace koliko ja znam (a bas ne znam :) GEM je VEKTORSKA grafika... A bogami skidanje grafike sa ekrana u vektorima... Xex, pa nisam ja DR. Prof. Mr. Dipl. Ing. Gr., Ziv., i S. O. Bear !
pascal.207 ppekovic, -> #206, bearboy
>> PA ZAR TI CITAS STA REPLICIRAS ?!?!?! Pise lepo - GEM, PCX, a ja sam dodao jos >>i LBM (nekompresovan). Inace koliko ja znam (a bas ne znam :) GEM je VEKTORSKA >>grafika... A bogami skidanje grafike sa ekrana u vektorima... Xex, pa nisam >>ja DR. Prof. Mr. Dipl. Ing. Gr., Ziv., i S. O. Bear ! Uh bearboy, kad čovek ovo pročita, pomisli da si mnogo neki gadan tip, a ono ti duša od čoveka. Niko nije bezgrešan. Paya
pascal.208 macak, -> #207, ppekovic
█ Niko nije bezgresan... ...sem mene! ;)))
pascal.209 bearboy, -> #205, nesavic
-+={ sam sa adresom $B000:$0000 ali nista, tj. kada stavim -+={ da mi snimi 16192 bytesa onda imam oko 1/4 - 1/2 slike, -+={ sve iznad ove cifre ne radi... Da ne treba 32K ? Adresa je sigurno dobra ? (Xe, blago nama, VGA-sima :)
pascal.210 bearboy, -> #207, ppekovic
-+={ Uh bearboy, kad covek ovo procita, pomisli da si mnogo -+={ neki gadan tip, a ono ti dusa od coveka. Niko nije -+={ bezgresan. Xe, samo sam se mao nervirao... :)
pascal.211 bearboy, -> #208, macak
-+={ █ Niko nije bezgresan... -+={ ...sem mene! ;))) Siguran ? ;)))))))))
pascal.212 macak, -> #211, bearboy
█ Siguran ? ;)) Apsolutno!
pascal.213 ilazarevic,
Evo pitanja od mog profana informatike: jel ima neko ovde drajvere za VGA i SVGA, za Turbo Pascal, koji će raditi? On kaže da njemu kod kuće drajveri koje je dobio uz TP 6.0 ne rade na višoj rezoluciji (ne znam da li je u pitanju 800x600 ili 1024x768, ne sećam se).
pascal.214 dejanr, -> #213, ilazarevic
>> Evo pitanja od mog profana informatike: jel ima neko ovde drajvere >> za VGA i SVGA, za Turbo Pascal, koji će raditi? Ima toga puno na Sezamu, najnovije uz poruku PC.HARD/video.kartice 4.486. Srećno!
pascal.215 dzakic, -> #205, nesavic
>> $B800:$0000 ali za Hercules ne da ne radi nego se nista ne >> pojavljuje, radio sam sa adresom $B000:$0000 ali nista Video memorija herkulesa je duga 32K i nalazi se na segmentu B000 ili B800 u zavisnosti od toga koja je stranica aktivna.
pascal.216 ilazarevic, -> #214, dejanr
█ Ima toga puno na Sezamu, najnovije uz poruku PC.HARD/video.kartice █ 4.486. Srećno! Hvala, čovek će da bude presrećan (xe, kako se šlihtam ;)))
pascal.218 macak,
Momci,imam jedan (mozda trivijalan) problem. Kad startujem neki program koji koristi GRAPH unit,on nece da radi nego izbaci poruku: BGI eError: Graphics not initialized (uses InitGraph) Posto je ovo prvi put da se bakcem sa nekom grafikom,u cemu je problem? Gledao sam u neku knjigu i sve bi trebalo da bude OK. (na pocetku se nalazi : GD:=Detect ; InitGraph (Gd,Gm,'') ) Mozda ne odgovara unit ili... u cemu bi mogla da bude sema?
pascal.219 nandi, -> #218, macak
> Momci,imam jedan (mozda trivijalan) problem. > Kad startujem neki program koji koristi GRAPH unit,on nece > da radi nego izbaci poruku: > BGI eError: Graphics not initialized (uses InitGraph) mora biti prisutan onaj *.bgi file u dir-u gde pokrećeš program. (herc.bgi, cga.bgi ... zavisi od video adaptera koji koristiš). nandi ps: pričam napamet, ali mislim da sam potrefio
pascal.220 nesavic, -> #218, macak
Pozdrav, problem je bas u tome... tj. treba graph.tpu da ti stoji u direktorijumu iz kog ga startujes ili da u InitGraph(Gd, Gm, 'c:ĐpascalĐbgi'); navedes svoj ROOT dira u kome se nalazi graph.tpu.... Ako i ti ne radi onda... reci da ti saljnem ovaj moj, mozda proradi? NeSa!
pascal.221 dgrbic, -> #218, macak
:: (na pocetku se nalazi : GD:=Detect ; InitGraph (Gd,Gm,'') ) ^ ovde treba da bude path do *.bgi drivera, a možeš i da iskopiraš onaj driver koji ti treba za karticu u tekući dir.
pascal.222 djnsnd, -> #213, ilazarevic
> Evo pitanja od mog profana informatike: jel ima neko ovde > drajvere za VGA i SVGA, za Turbo Pascal, koji će raditi? > On kaže da njemu kod kuće drajveri koje je dobio uz TP 6.0 > ne rade na višoj rezoluciji (ne znam da li je u pitanju > 800x600 ili 1024x768, ne sećam se). Imam ja. Javi se na mail. DjnSnd
pascal.223 ilazarevic, -> #218, macak
█ Mozda ne odgovara unit ili... u cemu bi mogla da bude sema? Trebalo bi da definišeš u Options/Directory sve one direktorijume, pa između ostalih i Unit Directory. Mislim da će ti tako naći graph.tpu. Ako si ovo već definisao, onda lepo vidi da li si podesio BGI dir na onaj u kome ti se nalaze BGI fajlovi.
pascal.224 ztuke,
Zdravo! Imam problema, ko ih nije imao ;(((, sa visokom rezolucijom! Naime radi se o već poznatom drajveru Jordana Henxd.... kako mu je već prezime za SuperVGA modove sve do 32k boja. Ono što me nervira jeste da uopšte ne mogu da inicijalizujem grafiku na mojoj SVGA kartici sa tim drajverom. Reč je o rezoluciji od 1024x768x256! To verovatno ima neke fore u tome da zeznem stvar sa InstallUserDriver ili tako nečim. Sve bi bilo jasnije kada bi neko od vas naterao ovaj programčić da radi u rezoluciji od 1024x768x256: š Ovo je program za crtanje kruga u samodetektovanoj sredini! ć uses Graph; var Gd, Gm: integer; Radius: Integer; begin Gd := Detect; InitGraph(Gd, Gm, ''); if GraphResult <> grOk then Halt(1); for Radius := 1 to 5 do Circle(320, 240, Radius*10); ReadLn; CloseGraph; end. Ovo radi u rezoluciji 640x480 sa EGAVGA.BGI. Kako da ga nateram da radi sa drajverom SVGA256.BGI !? Inače broj moda za rezoluciju 1024x768x256 jeste 4! Unapred hvala! Pozdrav, Zoran!
pascal.225 piter,
kako da napravim unit koji bi mi zastitio programe od izmena ? (virusi,drugovi) Pokusao sam sa crc-om kojeg posebni program upise na kraj fajla ali ne radi. Help. pitanje je od Powderman-a (skuplja pare za sezam) vir.arj
pascal.226 janko, -> #225, piter
> kako da napravim unit koji bi mi zastitio programe od > izmena ? (virusi,drugovi) Pokusao sam sa crc-om kojeg > posebni program upise na kraj fajla ali ne radi. Help. Slučajno ja imam nešto što RADI uvek za zaštitu od "drugova" (Od virusa treba da te štiti Mek Afi). Ugrađuje se u toku prevođenja i samo mojih je ruku delo. Naravno, nisam raspoložen da delim džabe. Pa ako je neko zainteresovan za 'ključ u ruke' rešenje tog problema, nek' me MAIL-ne. Janko J. Stamenović
pascal.227 nesavic, -> #225, piter
Pozdrav, pitas se kako da zastitis svoj program od... itd. Imam i ja unit koji ti moze pomoci, a radi na specifican nacin... Nemoj da dajes pare bezveze poslacu ti ga ja, uskoro... NeSa! vsafe.arj
pascal.228 nesavic, -> #227, nesavic
Pozdrav, nisam mogao da pronadjem fajl koji je PRIMER za koriscenje UNITa... Kad budem nasao spusticu ga... Ovaj UNIT je predvidjen za TP 6...
pascal.229 piter, -> #228, nesavic
Kako to radi ? Molim uputstvo i jedan sample program. jer imam nesto slicno ali neradi ....
pascal.230 predragd, -> #225, piter
> kako da napravim unit koji bi mi zastitio programe od > izmena ? (virusi,drugovi) Pokusao sam sa crc-om kojeg > posebni program upise na kraj fajla ali ne radi. Help. Zdravo Pa recimo mogao bi da proverava duzinu svaki put po startovanju program proveri duzinu programa (.EXE fajl). Na taj nacin bi, eventualno mogao utvrditi da ti se nije mozda nesto prilepilo za program. Mogao bi jos da proveris da li je promenjeno vreme i datum kreiranja fajla, mada cisto sumnjam da bi neki "virus" programer koji drzi do sebe probustio takvu banalnu stvar, da vrati nazad vreme i datum, no nikad se nezna. Ako taj CRC snimis na kraj fajla, da li ti rutina za CRC proveru uzima u obzir i sam kraj fajla (CRC deo), mozda je njega njega zaboravio da proveri. Pezdrav, Pedja.
pascal.231 piter, -> #230, predragd
pored one poruke je i arhiva sa suorce-om. Trebalo bi da proverava sve bajtove osim poslednja četiri. CRC za sada upisujem pomocu NU tako da prvo startujem program zapisem vrednosti,povecam duzinu za 4,upisem CRC u poslenja 4 bajta i onda ponovo start. Piter
pascal.232 marvin,
Jel' ima neko mozda neku (dobru) literaturu za TP6 u kojoj je objasnjen (lepo i kompletno) TV ?
pascal.233 djelovic, -> #224, ztuke
> Ovo radi u rezoluciji 640x480 sa EGAVGA.BGI. Kako da ga nateram > drajverom SVGA256.BGI !? Inače broj moda za rezoluciju 1024x768 Pre reda u kome pozivaš InitGraph pozovi InstallUserDriver. Više o tome imaš valjda u helpu.
pascal.234 vilic, -> #232, marvin
#> Jel' ima neko mozda neku (dobru) literaturu za TP6 #> u kojoj je objasnjen (lepo i kompletno) TV ? Imaš li originalni TP 6.0 Sa njim ide i uputstvo za TV bye
pascal.235 marvin, -> #234, vilic
Eeee, kamo lepe srece...
pascal.236 jbili, -> #43, predragd
predrag, nisam odavno na SEZAM-u, tako da ne znam za početak diskusije o radu sa mišem iz TP. Meni upravo tako nešto treba, pa sam skinuo TPMOUSE.zip i probao ga i naravno on radi samo sa color kartama, a meni treba za hercules. Mozes li mi pomoći? Tačnije meni treba program pisan u TP 5.5 ili 6.0 kojim je moguće da u grafici visoke rezolucije crtam kruznice, linije, kvadrate, itd. (ACAD u vrlo malom izdanju). POMAGAJ!
pascal.238 adezelin,
Help me if you can... Imam 1 mali(??) problem.Nikako mi ne polazi za rukom da povezem program u pascalu sa procedurom(funkcijom) pisanom u asembleru. Moze i neki listing uz objasnjenje! Please!!!!!!!
pascal.239 stomic, -> #238, adezelin
$ Imam 1 mali(??) problem.Nikako mi ne polazi za rukom da $ povezem program u pascalu sa procedurom(funkcijom) pisanom $ u asembleru. Moze i neki listing uz objasnjenje! 1. Program (procedura) u asembleru mora da izgleda ovako: ------------------------------------------------------------ ; Primer procedure pisane u asembleru. Ispisuje tekst na ekranu public asmpas ; Navodiš ime procedure code segment assume cs: code, ds: code begin: jmp asmpas message db ' (C) 1992 by Slobodan Tomic ',13,10,'$' asmpas proc near push bp ; Moraš da sačuvaš mov bp, sp ; TPov BP i ... push ds ; ... DS push cs ; data segment = code segment pop ds lea dx, message ; procedura za ispis mov ah, 9h int 21h pop ds ; povratiš sačuvan DS i ... pop bp ; ... BP ret 0 ; vratiš rezultat 0 jer je ; ovo procedura a ne funkcija ; i nevraća nikakvu vrednost asmpas endp code ends end begin ----------------------------------------------------------- 2. Prevedeš ovu proceduru u OBJ file sa nekim linkerom (najbolje TLINK) 3. Program u pascalu bi izgledao ovako: ----------------------------------------------------------- Program AsmPas_Demo(Input, Output); { Primer vezivanja procedure pisane u asembleru i pascal programa } {$L C:\TASM\ASMPAS.OBJ} Procedure AsmPas; External; Begin AsmPas; { ispiši poruku } End. ----------------------------------------------------------- 4. Prevedi program i startuj! Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ P.S: Pređi na TP 6.0, ima mogućnost direktnog kucanja asemblerskog programa u pascal programu (direktiva ASM).
pascal.240 smiloradovic, -> #239, stomic
Sorry, ali moram malo da te ispravim. Umesto |> code segment |> |> assume cs: code, ds: code |> begin: jmp asmpas prirodnije je da staviš CODE segment public assume cs:code, ds:data public imena_procedura ; ovde deklarišeš tvoje procedure, tako ... ; da se zna kom segmentu pripadaju ... ... CODE ends i time iskoristiš već postojeće segmente u programu. Pri tome ćeš ubaciti DATA segment public extrn lista_promenljivih ; ovde eventualno možeš da ubaciš nazive ... ; globalnih promenljivih koje koristiš message ... DATA ends tako da ti nisu potrebne nikakve dalje manipulacije sa segmentima, uključujući i ono push cs - pop ds. Dalje: |> ret 0 ; vratiš rezultat 0 jer je |> ; ovo procedura a ne funkcija |> ; i nevraća nikakvu vrednost Ovde imaš dve greške. Prvo, deklarisao si proceduru kao near, čime praviš zbrku sa stekom - tvoju proceduru paskal sigurno poziva sa CALL FAR, tako da ti ostaje reč viška na steku - znači, umesto ret treba da stoji retf (return far); mogao si i da deklarišeš proceduru kao far, i da koristiš samo ret - to bi sam asembler preveo kao retf. Zatim, broj iza ret instrukcije kaže koliko bajtova treba skinuti sa steka prilikom povratka - to ćeš koristiti ako tvoj potprogram ima *ulazne* argumente koje treba pri povratku poništiti. Recimo, ako tvoja procedura ima dva ulazna parametra tipa word, i ne vraća ništa, stavićeš retf 4. |> end begin Ovo ti ne treba, jer procedura ne stoji sama za sebe. Naziv labele iza end označava ulaznu tačku u programu, a to treba staviti ako nameravaš da praviš samostalan program (.com ili .exe). |> 2. Prevedeš ovu proceduru u OBJ file sa nekim linkerom (najbolje TLINK) Mali lapsus, treba ti asembler (recimo TASM). BTW, uz sam Turbo paskal se, koliko se sećam, dobija primer povezivanja paskal<->asembler - u pitanju su funkcije za rad sa prozorima. Pozdrav, Stojan
pascal.241 dzakic, -> #240, smiloradovic
>> praviš zbrku sa stekom - tvoju proceduru paskal sigurno poziva sa >> CALL FAR, tako da ti ostaje reč viška na steku - znači, umesto Delimično tačno. Paskal sve procedure poziva sa CALL NEAR dok se procedure *u unitu* pozivaju sa CALL FAR. Ne vidim, momci, zašto se patite sa {$l program.obj} kad novi paskal 6.0 ima lepu mogućnost da se procedura/funckija deklariše kao assembler i prenošenje parametara obavlja se automatski. Meni je ovo bio dovoljan razlog da pređem na šesticu. Recimo: Function ipluspet(i:integer); assembler; asm mov ax,i add ax,5 end; Ništa lakše. Vrednost koju vraća funkcija treba da ostane u ax. Dalje, ako se prenosi parametar sa var: Procedure LowCase(var cc:char); assembler; asm les di,cc mov al,es:[di] cmp al,'A' jb @low_over cmp al,'Z' ja @low_over or al,$20 mov es:[di],al @low_over: end; Dakle, cc je far pointer na promenljivu. U dokumentaciji kaže da je obavezno čuvanje DS i SS segmenta dok se ES sme menjati pa nije obavezan push/pop es. Eto, mislim da je dovoljo, treba li još?
pascal.242 stomic, -> #240, smiloradovic
$ Sorry, ali moram malo da te ispravim. Nema problema, i onako niko nije savršen a pogotovo ja i asembler. Ovo sam inače prepisao neki moj stari primer kada sam pokušavao da vežem TP i OBJ file, od tada nisam to više radio, do sinoć. Inače retko programiram u asembleru i znam osnovne stvari. $ tako da ti nisu potrebne nikakve dalje manipulacije sa $ segmentima, uključujući i ono push cs - pop ds. Dalje: Thanx za ovo, kada sam radio (pre) ovaj primer, sam se mučio zašto mi neće da ispiše string na ekran, na kraju sam porao da uradim ovaj PUSH CS i POP DS. $ Zatim, broj iza ret instrukcije kaže koliko bajtova treba $ skinuti sa steka prilikom povratka - to ćeš koristiti ako $ tvoj potprogram ima *ulazne* argumente koje treba pri $ povratku poništiti. Recimo, ako tvoja procedura ima dva $ ulazna parametra tipa word, i ne vraća ništa, stavićeš $ retf 4. Zeznuo sam se, PASCAL vraća vrednosti u AX, a ne, hvala bogu, preko RETa. $ |> 2. Prevedeš ovu proceduru u OBJ file sa nekim linkerom $ (najbolje TLINK) $ $ Mali lapsus, treba ti asembler (recimo TASM). To sam i mislio! $ BTW, uz sam Turbo paskal se, koliko se sećam, dobija $ primer povezivanja paskal<->asembler - u pitanju su $ funkcije za rad sa prozorima. Da. To je WIN.ASM (za verziju 6.0). Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ P.S: Thanx, pomogao si mi da mi neke stvari budu jasnije.
pascal.243 stomic, -> #241, dzakic
$ Delimično tačno. Paskal sve procedure poziva sa CALL NEAR $ dok se procedure *u unitu* pozivaju sa CALL FAR. Zašto ovo nisi objasnio dan ranije. Sinoć sam od 11h-03h (po novom vremenu), pokušavao da povežem moj program u pascalu sa onom bibliotekom funkcija, zzivotic-a, i RAžUNARA 54, za komunikaciju sa COM1-COM2. Hteo sam da napravim UNIT, sa još nekim dodatnim funkcijama koje se baziraju na ovima, i nije htelo da proradi dok nisam prebacio sve u glavni program! Interesantno još, da se stack pravilno ažurira pri izlasku iz procedure pisane u asembleru, ako je definisana kao funkcija u pascalu, odnosno nema problema sa viškom reči na stacku. Npr.: _Comm_Install mi je radio jer sam ga definisao kao funkciju, dok npr. _Comm_SetParam nije jer je bila procedura! Da li bi onda trebalo da sve definišemo kao funkcije i da uključimo oni {$X+} (ja mislim da se tako zove, pojavljuje se u verziju TP 6.0) direktivu koja može da tretira funkcije kao procedure (kao u C-u), i da sve eksterne procedure/funkcije definišemo kao funkcije. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.244 sale,
Da li neko zna kako da napravim .com program sa TP 6.0? Sale P.S. EXE2BIN neće nekako, i vrlo je škrt na objašnjenjima zašto i kako...
pascal.245 stomic, -> #244, sale
$ Da li neko zna kako da napravim .com program sa TP 6.0? Mislim da nema šanse. Neke starije verzije (ja mislim 3.0 pa nazad) su jedino i pravile .com fileove. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ P.S: Na Durlanu su se jedno vreme mučili, čak su mi i poslali par fileova prevedenih sa TP i njihov source kao dokaz, da može da se prave COM fileove, kada sam pogledao sa sadržaj tih COM fileova, na početku je pisalo nešto kao Copyright (C) 1985 (!?!) Borland Inc. Što otprilike znači da su prevedeni verzijom 3.0, ili nekom pre.
pascal.246 dgrbic, -> #244, sale
:: Da li neko zna kako da napravim .com program sa TP 6.0? Teško, rekao bih čak nikako. TP 6.0 pravi medium memorijski model, prema tome ima više segmenata, a takođe i kod ne počinje na $100, što je potrebno da bi se program pretvorio u .com jer se na to mesto .com programi učitavaju.
pascal.247 stomic,
Da li neko možda ima neku biblioteku funkcija za TP koja ima mogućnost ubacivanja slika (u nekom od poznatijih formata), u PASCAL program? Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.248 adezelin,
>|#*}- 1. Program (procedura) u asembleru mora da izgleda >|#*}- ovako: >|#*}- ------------------------------------------------------ >|#*}- ; Primer procedure pisane u asembleru. Ispisuje tekst >|#*}- na ekranu public asmpas ; Navodis >|#*}- ime procedure >|#*}- >|#*}- code segment >|#*}- >|#*}- assume cs: code, ds: code >|#*}- begin: jmp asmpas >|#*}- >|#*}- message db ' (C) 1992 by Slobodan Tomic >|#*}- ',13,10,'$' >|#*}- >|#*}- asmpas proc near >|#*}- >|#*}- push bp ; Moras da sacuvas >|#*}- mov bp, sp ; TPov BP i ... >|#*}- push ds ; ... DS >|#*}- push cs ; data segment = code segment >|#*}- >|#*}- pop ds >|#*}- lea dx, message ; procedura za ispis >|#*}- mov ah, 9h >|#*}- int 21h >|#*}- >|#*}- pop ds ; povratis sacuvan DS i ... >|#*}- pop bp ; ... BP >|#*}- ret 0 ; vratis rezultat 0 jer je >|#*}- ; ovo procedura a ne funkcija >|#*}- ; i nevraca nikakvu vrednost >|#*}- asmpas endp >|#*}- >|#*}- code ends >|#*}- >|#*}- end begin Thanx a lot! Ali kako sad sa funkciom?? ??????????????????????????
pascal.249 .bale., -> #248, adezelin
ŮŢ >|#*}- ret 0 ; vratis rezultat 0 jer je ŮŢ >|#*}- ; ovo procedura a ne funkcija ŮŢ >|#*}- ; i nevraca nikakvu vrednost Kah-kah... Jel ovo citat A.K.-a? Nemam mnogo vremena, al je red da razjasnim neke stvari ;) RET ne vraca nikakvu vrednost, vec je to masinska instrukcija koja sa steka skida rec i smesta je u IP (programski brojac) i, eventualno, ako je poziv procedure bio "izdaleka" (tzv. FAR PTR), jos jednu rec u CS (kodni segment), i nista vise! Procesor zatim ucitava instrukciju sa adrese koja se nalazi u CS:IP (ovo se prevodi kao 16*[CS]+IP), sto ce reci da se program nastavlja iza poziva potprograma (procedure), jer su prilikom tog poziva na stek stavljene vrednosti ova dva registra. Ono nula kao parametar RET nema nikakvog smisla, verovatno je neko hteo u stilu A.K.-a da objasni (?). Taj parametar znaci da se, posle ovoga sto sam napisao, vrednost SP (stek pointera) poveca za zadat broj, sto prakticno znaci da se preskoce neki parametri koji su prosledjeni proceduri stavljanjem na stek pre njenog poziva (CALL), a koje procedura ne vraca, pa da se ne bi trosio stek dzabe... Dakle, ponavljam da nemam vremena, a robert me zeza page-ovanjem u ovom trenutku ;), parametri se standardno prosledjuju stavljanjem na stek ispred CALL, a zatim se, u proceduri, na primer, stavi na stek BP, pa se iz SP prespe u BP i doda malo, da se preskoci BP stavljen na stek i adresa iza CALL (tu treba program da se nastavi), pa ce onda BP biti pointer na parametre... Jednostavno, zar ne? E, ovaj robert stvarno... Bale
pascal.250 .bale., -> #249, .bale.
Jos nesto: ŮŢ >|#*}- end begin ako stavis ovo, program ce uvek da ti startuje od tacke BEGIN, jer je ovo direktiva za startnu tacku. To znaci da, ako hoces tu proceduru da povezes sa nekim glavnim programom, on se nikada nece izvrsiti, vec ce biti haos... Ovo samo za glavni program... Bale
pascal.251 stomic, -> #249, .bale.
$ Kah-kah... Jel ovo citat A.K.-a? Nemam mnogo vremena, al $ je red da razjasnim neke stvari ;) Sorry! Ovo sam ja poslao. Napravio sam grešku slučajno!?! Inače TP vraća vrednosti u AX. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.252 stomic, -> #248, adezelin
$ Thanx a lot! $ Ali kako sad sa funkciom?? $ ?????????????????????????? Ako procedure vraća bajt, onda (nisam siguran, posle onog lapsusa sa RET 0 :-))) stavi izlaznu vrednost u AL, ako je izlaz word ili integer onda u AX. Za ostale tipove neznam. Nepravi neku funkciju u TP prevedi program, i pregledaj ga sa nekim debugom (najbolje TD, ukluči i source kod). Pokušaj da pređeš na TP 6.0, i asemblerske programe možeš glatko da pišeš u TPu. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.253 dzakic, -> #252, stomic
>> je izlaz word ili integer onda u AX. Za ostale tipove neznam. Longint je kombinacija DX:AX; boolean je al=0 za false, bilo šta drugo za true.
pascal.254 vvelisavljev, -> #247, stomic
Mislim da je bilo to u nekoj staroj konferenciji i to za GIF format. Ukoliko ne možeš da nađeš javi pa da šaljem. pozdrav, VV
pascal.255 stomic, -> #254, vvelisavljev
$ Mislim da je bilo to u nekoj staroj konferenciji i to za $ GIF format. Ukoliko ne možeš da nađeš javi pa da šaljem. Molio bih te ako možeš da mi pošalješ. Po mogućstvu za PCX, ako ne, onda za bilo koji drugi format. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.256 vvelisavljev, -> #255, stomic
Nema za PCX, ali zato imam za GIF. pozdrav, VV gif-pas.zip
pascal.257 hercog,
Kako da spojim moj program u pascalu za drajverom herc.bgi? Hercog
pascal.258 stomic, -> #257, hercog
$ Kako da spojim moj program u pascalu za drajverom $ herc.bgi? Jel' misliš da driver direktno povežeš sa EXE fileom, da ne bude van programa, nego u njemu? Ako je tako pogledaj demo programe (koji se dobijaju uz TP), mislim da se zovu BGILINK.PAS, BGIFONT.PAS i BGIDRIV.PAS. Pored njih treba ti i MAKE.EXE i BINOBJ.EXE da prevediš *.BGI i *.CHR u *.OBJ fileove. Ovako možeš i slova, odnosno *.CHR fileove da uključiš u svoj program. Kod mene je ovako radi OK. Ako nemaš ove programe javi pa ih šaljem. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.259 ssokorac,
Hteo sam da napravim program koji će da uporedjuje datume dva fajla i ispiše 'isti' ili 'različiti' na koordinate koje navedem u komandnoj liniji. Konkretno, ako ga pozovem sa: C:Đ> uporedi mika.doc mika2.doc 13 7 da ispiše 'isti' ili 'rzličiti' u 7. redu, 13. koloni. Nažalost, program mi ne ardi. Šta ne valja? Napominjem da sam početnik u vezi TP <-> komandna linija i fajlovi, pa nemojte da se smejete ako ima neka glupa greška...;) Ili je sve greška...;)) program poredi_datume; uses dos,crt; var flh,fld:file; tm1,tm2:longint; tmr1,tmr2:datetime; x,y:integer; function poredjenje(file1,file2:datetime):boolean; begin poredjenje:=(file1.year=file2.year) and (file1.month=file2.month) and (file1.day=file2.day) and (file1.hour=file2.hour) and (file1.min=file2.min) and (file1.sec=file2.sec) end; procedure parametri(koorx,koory:string; var x,y:integer); var code:integer; begin val (koorx, x, code); val (koory, y, code) end; procedure jednaki(x,y:integer); begin gotoxy (y,x); writeln ('isti') end; procedure razliciti(x,y:integer); begin gotoxy (y,x); writeln ('različiti') end; begin if paramcount<>4 then halt; parametri(paramstr(3),paramstr(4),x,y); assign (flh, paramstr(1)); reset (flh); if ioresult<>0 then halt; getftime (flh,tm1); close (flh); unpacktime (tm1,tmr1); assign (fld, paramstr(2)); reset (fld); if ioresult<>0 then halt; getftime (fld,tm2); close (fld); unpacktime (tm2,tmr2); if poredjenje(tmr1,tmr2) then jednaki(x,y) else razliciti (x,y) end.
pascal.260 andrejl, -> #259, ssokorac
Ako te interesuju samo file-ovi različitog datuma što onda proveravaš vrednosti za sat, minut i sekundu kreiranja file-a ? Program radi ! Samo što su retke datoteke koje su nastale istog dana, iste godine, meseca, sata, minuta i sekunde. Ako ti je potrebno provera vremena izbaci proveru sekundi i program će imati nekog smisla Ako sam omašio temu (missunderstandig etc.) :) kaži bye, andrejl
pascal.261 ssokorac, -> #260, andrejl
-=)> Ako te interesuju samo file-ovi različitog datuma što -=)> onda proveravaš vrednosti za sat, minut i sekundu -=)> kreiranja file-a ? Pa, to je u stvari trebalo da proverava da li su na disketi i na HD-u iste verzije tog fajla. Ako jesu - vreme će biti isto. -=)> Samo što su retke datoteke koje su nastale istog dana, -=)> iste godine, meseca, sata, minuta i sekunde. -=)> Ako ti je potrebno provera vremena izbaci proveru -=)> sekundi i program će imati nekog smisla Ovo sam već objasnio gore :) -=)> Program radi ! Pa, to sam i ja mislio, ali - neće. Javlja run-time error...:( Probaću ponovo. Hvala, Stasha. P.S. Evo, sad sam probao - radi :). Samo je izgleda greška u pozivanju iz batch fajla...O;) P.P.S. Sad sam otkrio šta ne radi! Ako pozovem uporedi.exe za celim path-om ta dva fajla javlja runtime error!!! Zašto??? :(((
pascal.262 ilazarevic, -> #259, ssokorac
█ da ispiše 'isti' ili 'rzličiti' u 7. redu, 13. koloni. Nažalost, █ program mi ne ardi. Šta ne valja? Napominjem da sam početnik u vezi Meni sve izgleda OK (i ja sam početnik ;) Probaj internim dibagerom u Turbo Pascalu da otkriješ gde ti brljavi, pa kad nađeš reci...
pascal.263 vbole, -> #261, ssokorac
> P.P.S. Sad sam otkrio šta ne radi! Ako pozovem uporedi.exe za celim > path-om ta dva fajla javlja runtime error!!! Zašto??? :((( Program je sintaksno ispravan, ako ti javlja runtime-error, onda si pogrešio u navodjenju path-a, imena programa i sl. Pošto nisi isključio prijavljivanje grešaka, funkcija ioresult ** ne može ** da ti vrati kod greške. Ubaci š$I-ć direktivu u program, pa probaj ponovo. bye... vbole P.S. Umesto šć stavi vitičaste zagrade, ofkors.
pascal.264 ssokorac, -> #262, ilazarevic
-=)> Probaj internim dibagerom u Turbo Pascalu da otkriješ -=)> gde ti brljavi, pa kad nađeš reci... Kao što već rekoh, program radi samo neće ako ga pozovem sa punim path-om fajlova. Ako navedem samo drajv:ime.ext onda radi...:) Hm, zadovoljan sam sobom za početak...;)) Stasha
pascal.265 ssokorac, -> #263, vbole
-=)> Ubaci š$I-ć direktivu u program, pa probaj ponovo. žemu to služi? Možda je glupo - ali nemam pojam šta je to...:)
pascal.266 ssokorac,
Kako da dobijem highlited tekst? Tj. kako da sa writeln ('Stasha'); ;) dobijem highlited ispisano Stasha? Pokušavao sam sa textcolor(lightgray), textcolor(white), highvideo, ali očigledno ni jedan nije 'onaj' koji treba... Inače, imam herkules ako to nešto znači. Hvala, Stasha.
pascal.267 dejanr, -> #265, ssokorac
>> > Ubaci {$I-} direktivu u program, pa probaj ponovo. >> >> žemu to služi? Možda je glupo - ali nemam pojam šta je to...:) Pristup fajlu se radi ovako: {$I-} assign (ft, 'ime'); reset (ft); if ioresult<>0 then begin writeln ('Greška itd'); halt; { ili nešto drugo } end; read (ft, fv); if ioresult<>0 then begin writeln ('Greška itd'); halt; { ili nešto drugo } end; ... {$I+}
pascal.268 predragd, -> #255, stomic
> Molio bih te ako mozes da mi posaljes. Po mogucstvu > za PCX, ako ne, onda za bilo koji drugi format. U prilogu ti saljem biblioteku za rad sa PCX fajlovima. Radi samo na TP 6.0. Pedja. tppcx.arj
pascal.269 ssokorac, -> #267, dejanr
ž¸Ć writeln ('Greška itd'); Hvala!
pascal.270 ssokorac,
Hm, otkrio sam kako da dobijem highlighted text...:) Moram da stavim textmode(mono); ;)) E, sad imam jedno pitanje u vezi toga: Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje koji textmode treba da se eključi, pa da njega i uključi...? Hvala, Stasha.
pascal.271 djnsnd,
Osniva se grupa koja ce se baviti Turbo Vision-om Turbo Pascala 6.0 Pozivam sve zainteresovana da mi se jave. DjnSnd
pascal.272 ssokorac,
Recimo imam neki text fajl, recimo 'ss.txt' i u njemu tekst:'Bio jednom car' i hoću da ubacim izmedju 'jednom' i 'car' - 'jedan'. Kako to da izvedem u pascal programu. Takodje, recimo da upisujem u neki ss fajl: write(ss,'d'), zatim hoću da obrišem taj karakter 'd'. Kako? Ovo je verovatno (u stvari sigurno;) elementarna stvar, ali kako već rekoh - početnik sam, pa se nadam da ćete imati strpljenja...;)) Stasha
pascal.273 dejanr, -> #272, ssokorac
Da ubaciš u sred tekst fajla... teško. Praktično, morao bi prepisati čitav fajl u drugi, dakle (napamet kucano): assign (ulaz, 'a.txt'); assign (izlaz, 'b.txt'); reset (ulaz); rewrite (izlaz); while not eof (ulaz) do begin readln (ulaz, red); { ovde izmeniš šta treba u redu } writeln (izlaz, red); end; close (ulaz); close (izlaz);
pascal.274 stomic, -> #268, predragd
$ U prilogu ti saljem biblioteku za rad sa PCX fajlovima. $ Radi samo na TP 6.0. $ $ Pedja. Thanx! Nadam se da će biti OK. stomic.
pascal.275 stomic, -> #272, ssokorac
$ Recimo imam neki text fajl, recimo 'ss.txt' i u njemu $ tekst:'Bio jednom car' i hoću da ubacim izmedju 'jednom' i $ 'car' - 'jedan'. Kako to da izvedem u pascal programu. Jedino da kreiraš još jedan file u koji ćeš prepisati 'Bio jednom', pa zatim ubactiti 'jedan' pa 'car', izbrisati stari file i novi preimenovati u stari file. $ Takodje, recimo da upisujem u neki ss fajl: write(ss,'d'), $ zatim hoću da obrišem taj karakter 'd'. Kako? Isto prepisivanjem iz starog u novi file. Deluju idiotski primeri, ali ne verujem (bar ja neznam) da oveke operacije (umetanja/brisanja) mogu da se obavljaju nad datotekama. stomic
pascal.276 ilazarevic, -> #270, ssokorac
█ Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, █ CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje █ koji textmode treba da se eključi, pa da njega i uključi...? Pa ja mislim da hajlajtid text može da se dobije pomoću HighVideo procedure.
pascal.277 radunovic, -> #266, ssokorac
Probaj sa textbackground(white) ali posto obrises ekran. Tada ce samo slova koja pises biti inverzna.
pascal.278 ssokorac, -> #276, ilazarevic
¸¸ Pa ja mislim da hajlajtid text može da se dobije pomoću ¸¸ HighVideo procedure. Ja, ja, ali mora prvo textmode(mono); I još mi niko nije rekao kako program sam da nadje koji textmode radi na kompjuteru!!!
pascal.279 ssokorac, -> #277, radunovic
4¸¸ Iz readline ocita funkcijski taster i pozove neku ¸¸ proceduru , npr HELP ????????? Hm, može sa readkey, ali sa readline - ne verujem (?). Evo za readkey: program ss; uses crt; var ch:char; begin ch:=readkey; if ch=#0 then begin ch:=readkey; if ord(ch)=59 then helpproc š* konkretno za F1 *ć end end. Za F2, F3...menjaš 59 u 60,61...itd. Stasha
pascal.280 skoprivica, -> #264, ssokorac
>-> Hm, zadovoljan sam sobom za pocetak...;)) A sad pogledaj i kuhinju i predsoblje...
pascal.281 skoprivica, -> #271, djnsnd
>-> Osniva se grupa koja ce se baviti >-> Turbo Vision-om Turbo Pascala 6.0 Molim vas sve da ne idete u grupu, pricajte ovde, ja tek pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne treba i grupa. Molim vas sve jos jednom, steta bi bilo... Aje... CTEBO.
pascal.282 stomic, -> #281, skoprivica
$ Molim vas sve da ne idete u grupu, pricajte ovde, ja tek $ pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne $ treba i grupa. Molim vas sve jos jednom, steta bi bilo... Slažem se, mada sam prvo bio za grupu, a i onako TV potpuno spada u pascal, pa barem da osvežimo ovu konferenciju (nadam se :-))). Evo za početak hijerarhija objekata iz TV, kompletno je skinuta iz HELPa TPa 6.0 (verovatno će retko kome poslužiti, ali barem da imamo osnovu). TObject─┬─TCollection───TSortedCollection──TStringCollection ├─TResourceFile └─TResourceCollection ├─TStream─────┬─TDosStream─────────TBufStream ├─TStringList └─TEmsStream ├─TStrListMaker └─TView───────┬─TCluster─────────┬─TCheckBoxes ├─TFrame └─TRadioButtons ├─TGroup───────────┬─TDeskTop ├─TBackGround ├─TProgram─────TApplication ├─TButton └─TWindow────┬─TDialog ├─TStaticText──────┬─TLabel └─THistoryWindow ├─THistory └─TParamText ├─TListViewer──────┬─THistoryViewer ├─TInputLine └─TLi ├─TMenuView────────┬─TMenuBar ├─TScrollBar └─TMenuBox ├─TScroller──────────TTextDevice──TTerminal └─TStatusLine stomic
pascal.283 skoprivica, -> #272, ssokorac
>-> Recimo imam neki text fajl, recimo 'ss.txt' i u njemu tekst:'Bio >-> jednom car' i hocu da ubacim izmedju 'jednom' i 'car' - 'jedan'. >-> Kako to da izvedem u pascal programu. Takodje, recimo da upisujem >-> u neki ss fajl: write(ss,'d'), zatim hocu da obrisem taj karakter >-> 'd'. Kako? Mani se sekvencijalnih datoteka i radi sa record i vecina problema resena...
pascal.284 ppekovic, -> #270, ssokorac
>> Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, >> CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje >> koji textmode treba da se eključi, pa da njega i uključi...? Ne tvrdim da je rešenje idealno, ali probaj sa korišćenjem ANSI sekvenci! Paya
pascal.285 ssokorac, -> #277, radunovic
¸¸ Probaj sa textbackground(white) ali posto obrises ekran. ¸¸ Tada ce samo slova koja pises biti inverzna. ? Ali tako slova neće biti highlited već inverse... U svakom slučaju, uspeo sam, radi highvideo, samo sa textmode(mono) pre toga... Eh, da: kako se briše ekran u tekst modu?? Ja sam napravio neku svoju proceduru cls koja izbaci ceo ekran nagore pa ostane prazan, ali sigurno ima nesto normalnije? Stasha
pascal.286 stomic, -> #285, ssokorac
$ Eh, da: kako se briše ekran u tekst modu?? Briše se pomoću CLRSCR, mora da bude uključena CRT biblioteka u glavni program (Uses Crt). stomic
pascal.287 vbole, -> #278, ssokorac
> Ja, ja, ali mora prvo textmode(mono); Ma, ne mora ništa za herkules. > I još mi niko nije rekao kako program sam da nadje koji textmode > radi na kompjuteru!!! program KojiMod; uses dos; var Regs : Registers; Mode : Byte; Display : String; begin Regs.AX:=$0F00; Intr($10, Regs); Mode:=Lo(Regs.AX); Case Mode of 0 : Display:='40x25 B / W'; 1 : Display:='40x25 Color'; 2 : Display:='80x25 B / W'; 3 : Display:='80x25 Color'; š pa idu modovi 4-6 ć 7 : Display:='80x25 Mono'; end; writeln(Display); end. Ako hoćeš da saznaš inicijalni video-mod, onda pozovi int 11h, koji u registru AX vraća podatke koji te interesuju. bye... vbole
pascal.288 ivans, -> #285, ssokorac
* Eh, da: kako se brise ekran u tekst modu?? ClrScr, iz unita Crt. Pozdrav, Ivans.
pascal.289 ilazarevic, -> #270, ssokorac
█ Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, █ CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje █ koji textmode treba da se eključi, pa da njega i uključi...? Pa ja mislim da hajlajtid text može da se dobije pomoću HighVideo procedure.
pascal.290 djnsnd, -> #281, skoprivica
> Molim vas sve da ne idete u grupu, pricajte ovde, ja tek > pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne > treba i grupa. BTW, tema je PASCAL.
pascal.291 hercog, -> #258, stomic
Sve sam lepo uradio i povezao moj prg sa bgi-om, al sad kad startujem prg dobijem neke zbrljotine na ekranu umesto grafike. Ako startujem program u direktorijumu gde se nalazi herc.bgi onda sve radi bez pro- blema. Hercog
pascal.292 skoprivica, -> #282, stomic
>-> Evo za pocetak hijerarhija objekata iz TV, kompletno >-> je skinuta iz HELPa TPa 6.0 (verovatno ce retko kome posluziti, >-> ali barem da imamo osnovu). Moze malo teorije: Sta su objekti, metode, u cemu se razlikuju od 'obicnog' programiranja, i tako... Ukratko, posto otprilike znam... Aje... CTEBO.
pascal.293 stomic, -> #291, hercog
$ Sve sam lepo uradio i povezao moj prg sa bgi-om, al sad $ kad startujem prg dobijem neke zbrljotine na ekranu umesto $ grafike. Ako startujem program u direktorijumu gde se $ nalazi herc.bgi onda sve radi bez problema. Onda verovatno nisi nešto dobro povezao. Jer ako sve uljučiš u izvršni kod (.EXE) program više nema nikakve veze sa externim driverima. Kod mene je sve radilo OK! Uključio sam i slova i sve drievere za kartice. Radio je i na Herculesu i na CGA,EGA i VGA. Ako ne uspeš javi da ti pošaljem primer. stomic
pascal.294 skoprivica, -> #290, djnsnd
>->> pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne >-> BTW, tema je PASCAL. Turbo Vision = objektni paskal (kao c++ i c, ne ?)
pascal.295 prvul, -> #294, skoprivica
Ů Turbo Vision = objektni paskal (kao c++ i c, ne ?) Ů▄▄▄ Ne! TVision je biblioteka objekata za Turbo Pascal, a C++ je programski jezik. In fact, postoji i jezik koji se zove Object Pascal (bilo ih blam da jezik nazovu Pascal:=Pascal+1 ;) ali je, naravno, TP nekompatibilan sa njim. Prvul.
pascal.296 ssokorac, -> #284, ppekovic
¸¸ Ne tvrdim da je rešenje idealno, ali probaj sa ¸¸ korišćenjem ANSI sekvenci! Veliko hvala! Ali...kahm...kako? ;)
pascal.298 ssokorac, -> #280, skoprivica
¸¸> -> Hm, zadovoljan sam sobom za pocetak...;)) ¸¸ A sad pogledaj i kuhinju i predsoblje... žekaj, još nisam toliko napredovao...
pascal.299 stomic, -> #292, skoprivica
$ Moze malo teorije: Sta su objekti, metode, u cemu se $ razlikuju od 'obicnog' programiranja, i tako... Ukratko, $ posto otprilike znam... Evo ovako (mada nisam ni ja nešto naročito iskusan): Objekat je grupa procedura, funkcija (koje se nazivaju metode) i promenljiva koje rešavaju neki zadatak. Objekte naravno možeš i ti kreirati, a možeš i koristiti već gotove. Tvoj objekat može da nasledi, neki predhodni, već definisani objekat. Pod nasleđivanjem podrazumevam da primi sve njegove procedure,funkcije i varijable. Taj novi objekat će biti isti kao stari, ali ti možeš dodavati nove procedure, funkcije i varijable. U novom objektu možeš i menjati metode (dodavati novi kod) koje si nasledio a možeš i kreirati potpuno novu metodu. Prednost je što problemu pristupaš "prirodnije" (što mrzim ovu definiciju). Npr: Praviš grafički program, osnovni objekat će ti biti TAžKA, koja će imati proceduru za crtanje i dve promenljive X i Y, koje će označavati kordinate tačke. Sledeći objekat LINIJA, će naslediti objekat TAžKA jer se sastoji iz tačaka (prirodno!), a dodaćeš nave promenjljive X1,Y1,X2 i Y2 koje će označavati početak/ kraj linije i novu proceduru, koja će iscrtavati liniju, pozivajući za svaku tačku proceduru iz objekta TAžKA koja crta tačku. Sledeći objekat KRUG će naslediti objekat TAžKA dodati novu promenljive X,Y i R za određivanje centra i radijusa kruga i proceduru za iscrtavanje kruga. E sada, objekat PRAVOUGAONIK će naslediti objekat LINIJA (a ne TAžKA), jer se sastoji iz četiri linije. I tako se postupno pravi program počinjući od najprostijeg oblika (u našem primeru TAžKA), i nasleđivanjem i dodavajuć nove procedure grade se novi složeniji oblici. Inače metodama iz nekog objekta pristupaš pomoću: IME_OBJEKTA.IME_METODE, npr. (za crtanje tačke). TACKA.NACRTAJ(20,30), ili TACKA.X:=20; TACKA.Y:=30, itd... Ovo lepo, zvuči ali kakva je razlika između UNITa i objekata? I u UNITima ima neka vrsta nasleđivanja (Uses), imaš i procedure i promenljive u svakom UNITu, možeš da dodaješ nove, ... Evo je bio maloooooooooo duži odgovor. Ako ima grešaka, voleo bih da me neko ispravi, jer ni sam nisam siguran sa OOPom. stomic
pascal.300 macak, -> #293, stomic
█ Ako ne uspes javi da ti posaljem primer. Mogao bi ovde da ga ubacis...imam i ja nekih problemcica sa tim.
pascal.301 nbatocanin, -> #299, stomic
> Prednost je ëto problemu pristupaë "prirodnije" Osim ovoga, OOP znaüajno pojednostavljuje program, poveäava üitljivost programa, omoguäuje jednostavnije odrćavanje i nadgradnju, smanjuje zavisnost izmedju delova programa, itd. U svakoj knjizi o OOP-u bar 30% je ispunjeno prednostima nad klasiünim metodama. > Ovo lepo, zvuüi ali kakva je razlika izmeöu UNITa i > objekata? I u UNITima ima neka vrsta nasleöivanja (Uses), > imaë i procedure i promenljive u svakom UNITu, moćeë da > dodajeë nove, ... UNIT-i su napravljeni po analogiji sa modulima u Moduli i sluće da "izdele" tekst programa na razumljive i lake za odrćavanje celine. Pri tome UNIT koristi za komunikaciju sliüan sistem kao i objekti, zato ëto se radi o izuzetno efikasnoj i jednostavnoj komunikaciji. Skraäeno reüeno, UNIT se za vreme izvrëavanja zaista ponaëa kao statiüki objekat, ali nema sve osobine koje imaju objekti. Na primer, ne moće se dinamiüki kreirati i sl. Objekat se definiëe kao novi tip podataka (recimo, uopëteni slog), pa se kasnije mogu definisati promenljive (znaüi, viëe njih) tog tipa. Naravno, moće se naäi joë razlika. Mislim da je najvaćnije kod OOP-a da ljudi saznaju ëta je to. Jer, svi mi manje ili viëe zaziremo od raznih komplikacija, pa ma kakvu korist donosile. Treba reäi da OOP *nije* neka nadgradnja nad standardnim programima koja äe vam program u startu poveäati za X kb, a "dobiäete to i to". Radi se prvenstveno o novoj ORGANIZACIJI programa. Moram da priznam da sam i ja pripadao skepticima kad sam prvi put üuo za OOP. Sad kada sam provalio ëtos, mogu samo da vam kaćem: uüinite neëto za sebe - probajte OOP! Na teorijska razmatranja ne morate da obraäate paćnju: OOP je neëto izuzetno praktiüno i korisno. Mislim da je to najveäa revolucija u programiranju posle uvoöenja procedura. Pozdrav, Nenad
pascal.302 sslavko,
Zdravo, evo uz poruku jedan unit sa funkcijama za kontrolu miša u tekstualnom režimu. Za jednostavnije programe je izuzetno upotrebljiv. Na raspolaganju su vam sledeće procedure i funkcije: function mis_install:boolean; vraća TRUE ili FALSE u zavisnosti od toga da li je drajver za miša instaliran ili nije. procedure mis_granica(minx,miny,maxx,maxy:integer); ograničava kretanje kursora miša na prozor određen sa minx,miny (gornji levi ugao), maxx i maxy (donji desni ugao). function mis_taston(tast:byte):boolean; vraća TRUE ili FALSE u zavisnosti da li je pritisnut određeni taster na mišu. Tasteri su: 1:levi; 2:desni 3:levi i desni zajedno 4:srednji Dakle, if mis_taston(1) then... znači ako je pritisnut levi taster.... function mis_tastoff:boolean; vraća TRUE ili FALSE u zavisnosti da li su SVI tasteri otpušteni. procedure mis_kurson; aktivira text kursor miša. procedure mis_kursoff; gasi text kursor miša. procedure mis_xy(var x,y:integer); vraća trenutnu poziciju kursora miša u promenljivim x i y. procedure mis_set(x,y:integer); podešava poziciju kursora miša na koordinate x i y. procedure dos_kurson; uključuje standardni DOS text kursor. procedure dos_kursoff; isključuje standardni DOS text kursor. Nadam se da će vam ovaj UNIT biti dovoljna pomoć da ukrotite vašeg pacova. pozdrav Slavko. mouse.tpu
pascal.303 ssokorac, -> #287, vbole
:> Ma, ne mora ništa za herkules. Kako? Meni neće da radi ako ne stavim textmode(mono)?! :> program KojiMod; Hvala ti veliko!
pascal.304 ssokorac, -> #288, ivans
:> ClrScr, iz unita Crt. Eh, a ja u help-u tražio CLS, CLE..., DEL..., ERASE... :) Nisam tražio pod CLR... :( Hvala.
pascal.306 ppekovic, -> #294, skoprivica
>>> ->> pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne >>> -> BTW, tema je PASCAL. >> >> Turbo Vision = objektni paskal (kao c++ i c, ne ?) Samo napred sa porukama o TV-u, niste pogrešili temu! Paya
pascal.309 ppekovic, -> #296, ssokorac
>> Ne tvrdim da je re{enje idealno, ali probaj sa >> kori{}enjem ANSI sekvenci! >> >> Veliko hvala! Ali...kahm...kako? ;) Na C-u bi to islo ovako: #include <stdio.h> main() { printf("NORMAL \033[7m INVERSE \033[0m NORMAL\n"); } Dakle, sekvenca je Esc[<attr>m gde je za inverzni prikaz attr 7 a za normal 0. Za ostale vrednosti atributa, potrazi po conf. ostavljene su na xx mesta ANSI Esc sekvence. Paya