pascal.1157peca.st,
-> #1148, dejanr!-> Mislim da je stvar u tome što crt nisu
!-> samo procedure, nego u najmanju ruku i
!-> tretman standardnog ulaza i standardnog
!-> izlaza. žim si stavio uses crt,
!-> redirekcija više ne radi (ako ne
!-> preduzmeš neke mere). Dakle,
Ok, može biti.
Peđa.
pascal.1158peca.st,
-> #1149, vitez.koja!-> Za njegove 'interne' unite (DOS i CRT)
!-> ovo sigurno vazi
;)
Peđa.
pascal.1159peca.st,
-> #1152, lovro!-> Crt i ostali to ne rade.
Crt radi, DOS jok.
Ja praktično dokazao, a DejanR objasnio zašto.
Peđa.
pascal.1160juros,
-> #1155, dejanr>Postoji, u okviru paketa Turbo Pascal Profesional. Samo, sada je sve to
>zastarelo, aktuelna verzija je Borland Pascal 7.0, tu je extended memorija
>(preko DPMI standarda) potpuno podrzana. Doduse, strukture su ogranicene
>i dalje na 64 K (fuj, fuj :( ) ali se bar moze alocirati kol'ko oces takvih
>struktura (tj. koliko staje u citavu memoriju).
Zastarelo? Borland Pascal zauzima ~ 20,30 MB koliko sam obavesten, a TP 6.0
oko 2,3 MB. Nije stos u zastarelosti nego u MB.
pascal.1161juros,
-> #1156, dejanr>Ne znam bas sta zoves "vizuelno programiranje", ali u svakom slucaju pomocu
>Borland Pascal-a 7.0 mogu da se pisu programi koji rade pod Windows-om.
>Pomocu TP 7.0, koliko znam, ne mogu (osim u DOS prozoru).
Pod vizuelnim programirasnjem smatram : izaberes okruzenje, menije, ikone,
pa tek onda programiras akciju za svaku izabranu opciju. (Npr. VISUAL BASIC)
pascal.1162dejanr,
-> #1160, juros>> Zastarelo? Borland Pascal zauzima ~ 20,30 MB koliko sam obavesten, a
>> TP 6.0 oko 2,3 MB. Nije stos u zastarelosti nego u MB.
A Turbo Pascal 5.5 zauzima 720 K, Turbo Pascal 4.0 600, Turbo Pascal 3.0...
Sve zavisi šta se instalira. Ako ti ne treba Windows, zauzima negde 6 mega,
plus ili minus. A ako ti treba Windows, onda je TP 6.0 jednostavno
neupotrebljiv, pa poređenje nema smisla.
pascal.1163dejanr,
-> #1161, juros>> Pod vizuelnim programirasnjem smatram : izaberes okruzenje, menije, ikone,
>> pa tek onda programiras akciju za svaku izabranu opciju. (Npr. VISUAL BASIC)
Ne, Borland Pascal 7.0 je manje-više klasičan Turbo Pascal sa opisanim
novitetima, nema nekih koncepcijskih promena koje bi ga približile
Visual Basic-u. Bar koliko se meni čini.
pascal.1164dgrbic,
-> #1147, peca.st:: a zatim stavio uses crt; begin i end. i ispalo je
Ko što znaš, unit može da ima svoj deo za inicijalizaciju.
E, to ti je ta razlika.
pascal.1165peca.st,
Pošto vidim da se o tome vodi rasprava u temi cccc,
ajde da i ja pitam isto to, samo za pascal.
So, kako ulinkovati u .exe fontove
koji nisu standardni TP 6.0 fontovi,
ali koji jesu .bgi?
(npr. onih 5-6 što su bili ovde na sezamu)
Peđa.
pascal.1166a.kircanski,
Kako pomoću paskala dokučiti (:) ) sa li je 4dos instaliran ili nije?
Ovako:
u ax stavite $d44d;
u bx $0000
i izvršite interpat $2f.
E pa, ako se ax posle izvršenog prekida promeni onda je 4dos TU.:)
A ako se NE promeni onda nije tu.:)
Program može da izgleda npr. ovako:
Uses Dos;
var t : registers;
begin
t.ax := $d44d;
t.bx := $0000;
intr($2f,t);
if t.ax = $d44d then
begin
Writeln('4dos NIJE instaliran u memoriju!');
end
else Writeln('4dos JESTE instaliran u memoriju!');
end.
pascal.1167jasicp,
-> #1110, skerl> TOTDOC.ZIP TechnoJock's Object Toolkit documentation, 2/4
Najljubaznije vas molim da podelite TOTDOC na dva dela jer se
tesko moze preneti pomocu 1200 bps modema ( >32 minuta za prenos datoteke ).
Hvala !
pascal.1168skerl,
-> #1167, jasicp│ Najljubaznije vas molim da podelite TOTDOC na dva dela jer se
│ tesko moze preneti pomocu 1200 bps modema ( >32 minuta za prenos
│ datoteke ).
└────
Ne znam da li je Bulaja vec prebacio kompletan TOT u pascal
dir pa ako nije, eto zgodne prilike da se podseti :) U dir-u ce
fajlovi biti prilagodjeni i za dl na 1200.
Pozdrav,
Skerl.
pascal.1169bulaja,
-> #1168, skerl│Ne znam da li je Bulaja vec prebacio kompletan TOT u pascal
│dir pa ako nije, eto zgodne prilike da se podseti :)
└───
Imam to u podsetniku, smao nikako da stignem ovih dana da istresem sa
lokala jos gomilu drugih stvari koje takodje treba razdeliti. Bice :).
pascal.1170a.kircanski,
Hi
Oće' li ni neko reći kako da iz pascal-a, upalim npr.
numlock i "zaglavim njegovo paljenje i gašenje:)".
TJ. ne znam samo kako da zaglavim to, a palim sa npr:
var
p : žBYTE
begin
p := ptr($40,$17);
pž := xx; š neznam napamet ć
end.
Pozdrav (A.K)
pascal.1171paki,
Treba mi neka ideja (još bolje funkcija :) koja bi radila
sledeće:
Zadate su 2 tačke, A(x,y) i B(x1,y1). Treba odrediti u kom je
položaju B u odnosu na A, tj. da li je gore, goredesno, desno
itd. Skontao sam da treba podeliti pun krug na 8 jednakih oblasti
i onda ispitivati u kojoj se nalazi. Svaka oblast je trougao s
uglom u tački A 45°, s tim što, ako je tačka u oblasti s uglom
manjim ili jednakim 22°30' levo i desno od vertikale, onda se
nalazi gore itd. Kako proveriti u kojoj se oblasti nalazi tačka?
Meni jedino na pamet padaju sinusi, kosinusi i ostale zveri :)
Može li lakše/lepše/elegantnije?
I još nešto, da li BP7.0 podržava VGA mod 320x200x256? Bilo bi
čudno da ne podržava, ali opet...Probao sam sa InitVGA256
funkcijom iz Računara, ali tada MouseLib neće da radi kako treba.
pascal.1172bulaja,
**** new file ****
R:\IBMPC\PASCAL\*.*
----------------------
totdemo zip 113493 TechnoJock's Object Toolkit, Demonstracija (#1/5)
totdoc1 zip 104972 TechnoJock's Object Toolkit, Dokumentacija 1 (#2/5)
totdoc2 zip 97757 TechnoJock's Object Toolkit, Dokumentacija 2 (#3/5)
totng zip 20189 TechnoJock's Object Toolkit, Norton Guide (#4/5)
totsrc zip 140063 TechnoJock's Object Toolkit (TP5.5+), Source (#5/5)
Poslao koliko malopre :) Skerl, prebaceno u PASCAL dir (doc podeljen).
TechnoJock's Object Toolkit (or simply the Toolkit) is a library of
objects, procedures and functions for Pascal programmers. While writing
a PC program, most people spend 80% or more of their time writing the
program's user interface, and only 20% on the "meat" of the applica-
tion. The Toolkit is designed to provide a wealth of professional user
interface tools which can eliminate up to 80% of your development work.
For example, to display a sorted directory listing in a moveable window
takes a mere three lines of code.
The interface tools include such features as efficient screen writing,
window management, menu management, full screen user input, list dis-
playing, directory listing and much more. These tools give programs a
truly professional appearance, and use the latest interface style with
pop-up dialog boxes, scroll-bars and malleable windows, all with full
mouse and keyboard support.
As well as needing a user interface, many programs have to manipulate
strings, access files, check attached hardware, and the like. The Tool-
kit also provides a rich set of routines to help with these common
tasks.
If you are new to object oriented programming, you are in luck, for the
Toolkit provides a great way for you to learn this powerful facility
without requiring that you be a rocket scientist!
pascal.1173bulaja,
-> #1171, paki│Zadate su 2 tacke, A(x,y) i B(x1,y1). Treba odrediti u kom je polozaju
│B u odnosu na A, tj. da li je gore, goredesno, desno itd. Skontao sam
│da treba podeliti pun krug na 8 jednakih oblasti i onda ispitivati u
│kojoj se nalazi. Svaka oblast je trougao s uglom u tacki A 45°, s tim
│sto, ako je tacka u oblasti s uglom manjim ili jednakim 22°30' levo i
│desno od vertikale, onda se nalazi gore itd. Kako proveriti u kojoj se
│oblasti nalazi tacka? Meni jedino na pamet padaju sinusi, kosinusi i
│ostale zveri :) Moze li lakse/lepse/elegantnije?
└───
Uh bre al' ga zakomplikova :). Ako je Ax < Bx onda je A levo od B,
takodje ako je Ay < Bx onda je dole, itd. Nista lakse :).
type
Tacka = record
x, y : Real
end;
procedure Polozaj (A, B : Tacka);
begin
writeln ('Tacka A je u odnosu na B');
if (a.y > b.y) then
write ('Gore ')
else if not(a.y=b.y) then
write ('Dole ');
if (a.x > b.x) then
write ('Desno')
else if not(a.x=b.x) then
write ('Levo');
writeln;
end;
pascal.1174a.kircanski,
hi
Niko mi ne odgovori:(( kako da isključim, gašenje, paljenje, lockova npr.
CAPS locka????????????
Ne moguće da niko ne zna....;)
cy
pascal.1175paki,
-> #1173, bulaja> Uh bre al' ga zakomplikova :). Ako je Ax < Bx onda je A levo
> od B, takodje ako je Ay < Bx onda je dole, itd. Nista lakse
> :).
GoreLevo? DoleDesno? :(((((
pascal.1176paki,
-> #1172, bulaja> Poslao koliko malopre :) Skerl, prebaceno u PASCAL dir (doc
> podeljen).
Super, cenim da je ovo prava stvar za početnike u OOPu (a još je
i korisna :)
pascal.1177ssokorac,
-> #1171, paki ─┼┤ Zadate su 2 tačke, A(x,y) i B(x1,y1). Treba odrediti u kom je
─┼┤ položaju B u odnosu na A, tj. da li je gore, goredesno, desno
─┼┤ Može li lakše/lepše/elegantnije?
If x1<x then levo:=true
else levo:=false;
if y1<x then gore:=true
else gore:=false;
if gore then
if levo then writeln('gorelevo')
else writeln('goredesno')
else
if desno then writeln('dolelevo')
else writeln('doledesno');
E, sad, naravno, ovo tebi ne valja, samo mi reci zašto? :)
─┼┤ funkcijom iz Računara, ali tada MouseLib neće da radi kako treba.
Uzmi SVGABGI3, ili SVGABG30, ne znam kako se tačno zove :). E, za MouseLib
moraš da uradiš jedan InitMouse; SetMouseGraph; pre rada pa će i on da radi.
Samo, pazi, moraš da koristiš svga256m.bgi a ne svga256.bgi, jer prvi ne
radi... (sa mišem) :(
pascal.1178eagle,
-> #1171, paki> Zadate su 2 tačke, A(x,y) i B(x1,y1). Treba odrediti u kom je
> položaju B u odnosu na A, tj. da li je gore, goredesno, desno
> itd. Skontao sam da treba podeliti pun krug na 8 jednakih
> oblasti i onda ispitivati u kojoj se nalazi. Svaka oblast je
> trougao s uglom u tački A 45°, s tim što, ako je tačka u
> oblasti s uglom manjim ili jednakim 22°30' levo i desno od
> vertikale, onda se nalazi gore itd. Kako proveriti u kojoj se
> oblasti nalazi tačka? Meni jedino na pamet padaju sinusi,
> kosinusi i ostale zveri :) Može li lakše/lepše/elegantnije?
Evo ovako, bez sinusa i kosinusa ali sa ostalim zverima ;)
if arctan(abs((x1-x)/(y1-y))) <= (3/8*pi) then
if y1>y then writeln('Gore') else writeln('Dole');
if arctan(abs((y1-y)/(x1-x))) <= (3/8*pi) then
if x1>x then writeln('Desno') else writeln('Levo');
Ovo proverava da li je ugao u određenom kvadrantu manji ili jednak sa
uglom od 67°30' tj. uglom koji čini na primer ceo gornji-desni trougao
plus parče og gornjeg trougla. Ako ispunjava uslov, znači da u opisu treba
da stoji reč "gornji" bio to gornji ili gornji-levi ili gornji-desni trougao.
Uzima se da je za y1>y2 prva tačka gore a druga dole, kao u normalnom
koordinatnom sistemu. Program ne radi ako se tačke nalaze na istoj vertikali
ili horizontali, što lako možeš prethodno da proveriš.
pascal.1179ilazarevic,
Treba mi pomoć :) Zna li neko šta ne valja u priloženom sorsu:
procedure kopi(imedira,karta:string;var res:boolean);
var f1,f2:file;
bafer:arrayŠ1..2048Ć of char;
nr,nw:word; šnr,nw: broj procitanih i upisanih bajtać
info:searchrec;
procedure kopifajl(fajl:string);
begin
š$I-ć
findfirst(fajl,Archive,info);
š$I+ć
if doserror<>0 then res:=false else res:=true;
if res then begin
assign(f1,info.name);
assign(f2,imedira+'Đ'+info.name);
reset(f1);
rewrite(f2);
repeat
blockread(f1,bafer,sizeof(bafer),nr);
blockwrite(f2,bafer,nr,nw);
until (nr=0) or (nr<>nw);
close(f2);
close(f1);
end;
end;
begin
kopifajl('atom.exe');
kopifajl('reg.cfg');
kopifajl(karta+'.bgi');
end;
O čemu se radi? Treba da kopiram ova tri fajla sa A diska u dati
direktorijum. Ime dira se nalazi u promenljivoj 'imedira' i korektno je
zadato. Promenljiva 'karta' označava koji BGI fajl treba kopirati, što i nije
bitno. Evo šta se dešava kada probam da startujem ovo - fajlovi se otvore u
datom diru, ali budu dugački 0 bajta! Kad trace-ujem (trejsujem) ovu
proceduru, dobijam da pri prvom čitanju sa blockread NR postaje 0, a zatim i
NW (što je logično). Ovako nešto ne bi smelo da se desi, zato što sam po
helpu tražio primer za blockread i blockwrite i našao primer koji potpuno
isto izgleda kao moja KOPIFAJL procedura.
pascal.1180eagle,
-> #1174, a.kircanski> Niko mi ne odgovori:(( kako da isključim, gašenje, paljenje,
> lockova npr. CAPS locka????????????
Verovatno da postoji bolji način, ali možeš i ovako za caps lock.
š$M 1024,0,0ć
uses dos;
var old:procedure;
procedure pp;interrupt;
begin
if portŠ$60Ć in Š58,186Ć then portŠ$60Ć:=0;
inline($9c);
old;
end;
begin
getintvec($09,čold);
setintvec($09,čpp);
keep(0);
end.
Ovime praktično možeš da isključiš bilo koji taster, dovoljno je samo da
promeniš 58,186 u odgovarajuće vrednosti. Inače, ovo je rezidentan program,
ne znam kako bi izgledalo u "običnom".
pascal.1181dejanr,
-> #1179, ilazarevic>> Treba mi pomoć :) Zna li neko šta ne valja u priloženom sorsu:
>> assign(f1,info.name);
Stavi ovde i imedira+info.name
pascal.1182funky,
-> #1177, ssokorac>> E, sad, naravno, ovo tebi ne valja, samo mi reci zašto? :)
A ako je x1=x ili y1=y ;))))))
funky
pascal.1183sjeremic,
-> #1175, paki=> GoreLevo? DoleDesno? :(((((
Zar GoreLevo nije Gore And Levo ?
pascal.1184ndragan,
-> #1171, paki/ Meni jedino na pamet padaju sinusi, kosinusi i ostale zveri :)
I treba, a onda se svede na to da ti je tangens tog ugla dovoljan, a i
to samo da li je veći ili manji od jedan, odnosno minus jedan... pa se
stvar uprosti time da je taj tangens u stvari količnik vertikalna kroz
horizontalna kateta trougla kome su tvoje dve tačke na hipotenuzi...
'vako biva:
Neka ti je a=x2-x1, b=y2-y1, onda po pi_četvrtinama ide ovako
pi/4 a b abs(b/a)
1 >0 >0 <1
2 >1
3 <0 >0 >1
4 <1 ... itd, dopuni za donju polovinu kruga.
Moglo bi da se svede na nekakav logički izraz tipa usl1 + 2*usl2 +
4*usl3, (uslx da bude 0 ili 1, odnosno 0 i -1, zavisno od jezika). pa
onda dobijaš 8 slučajeva... tek da ne praviš četir ifa u dva ifa u ifu,
nego jedan kejs.
pascal.1185eagle,
-> #1179, ilazarevic> Treba mi pomoć :) Zna li neko šta ne valja u priloženom sorsu:
> procedure kopi(imedira,karta:string;var res:boolean);
> reset(f1);
> rewrite(f2);
Otvori sa reset(f1,1) i rewrite(f2,1). Tako postavljaš veličinu jednog
bloka na 1 bajt, što je obavezno kada je u pitanju fajl proizvoljne dužine.
> Ovako nešto ne bi smelo da se desi, zato
> što sam po helpu tražio primer za blockread i blockwrite i
> našao primer koji potpuno isto izgleda kao moja KOPIFAJL
> procedura.
Pogledaj malo bolje :)
pascal.1186paki,
-> #1177, ssokorac> If x1<x then levo:=true
> else levo:=false;
> if y1<x then gore:=true
> else gore:=false;
> E, sad, naravno, ovo tebi ne valja, samo mi reci zašto? :)
Pa sad... :))
Prvo, treba y1<y :)))
Drugo, treba mi za svih 8 smerova, ali da budu ravnopravni :))
Tj. kao ono što je Eagle poslao (proveriću da li radi...).
U svakom slučaju hvala svima.
> Uzmi SVGABGI3, ili SVGABG30, ne znam kako se tačno zove :). E,
> za MouseLib moraš da uradiš jedan InitMouse; SetMouseGraph;
> pre rada pa će i on da radi. Samo, pazi, moraš da koristiš
> svga256m.bgi a ne svga256.bgi, jer prvi ne radi... (sa mišem)
> :(
Pošto me SVGA asocira na 512 i više Kb (kojih nemam :() radi li
to i s modom 320x200x256? Ako radi, odma' ga mažnjavam. Ako ne,
ostajemo na VGA256. Inače, uradio sam ja i init i setgraph ali
neće :( Misli da se nalazi u nekom AAAxBBB modu pa mi tako i
vraća koordinate ;)
pascal.1187andra,
-> #1180, eagle>> Niko mi ne odgovori:(( kako da iskljucim, gasenje, paljenje,
>> lockova npr. CAPS locka????????????
> promenis 58,186 u odgovarajuce vrednosti. Inace, ovo je rezidentan program,
> ne znam kako bi izgledalo u "obicnom".
U obicnom bi negde AND-ovao neki bit. Zaboravio sam koji,
ali ako poglevas u .ng sa asm nacices kako je memorija
mapirana,pa AND-uj sta treba.
Inace, ceo program ima cc 8 bytes.
pascal.1188a.kircanski,
-> #1180, eagle_-=> if portŠ$60Ć in Š58,186Ć then portŠ$60Ć:=0;
Thanx!
Samo odakle ti one vrednosti 58,186??
pascal.1189bulaja,
-> #1175, paki││Uh bre al' ga zakomplikova :). Ako je Ax < Bx onda je A levo
││od B, takodje ako je Ay < Bx onda je dole, itd. Nista lakse :).
│└───
│GoreLevo? DoleDesno? :(((((
└───
Pa pise ti u funkciji koju sam dao :).
Gore/Dole i Levo/Desno su nezavisne relacije, posto zavise od nezavisnih
:) koordinata, tj. Gore/Dole od Y, a Levo/Desno od X. Znaci prvo racunas
jedan odnos (svejedno koji) pa onda drugi, onda spojis rezultate i
dobijes ono sto ti treba - Gore-Levo (ili Levo-Gore), Dole-Desno i sl.
Jel' treba mozda da nacrtam? :)
pascal.1190mmile,
-> #1180, eagle*> Niko mi ne odgovori:(( kako da isključim, gašenje, paljenje,
*> lockova npr. CAPS locka????????????
* Verovatno da postoji bolji način, ali možeš i ovako za caps
* lock.
*
* Ovime praktično možeš da isključiš bilo koji taster, dovoljno
* je samo da promeniš 58,186 u odgovarajuće vrednosti. Inače, ovo
* je rezidentan program, ne znam kako bi izgledalo u "običnom".
Status Caps,Scroll i Num Lock-a kao i Shiftova,Altova i Ctrl-ova cuva se
na adresi 40h:17h.
"Obicno" resenje bi bilo :
begin
(*....*)
memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32; (* 32 za num lock *)
(*...*)
end.
* getintvec($09,čold);
Cemu ovo sluzi kad nigde nemas uslov kojim bi stari vektor sa interapta 9h
vratio na njegovu originalnu vrednost ?
Evo mog rezidentnog resenja ( stalno pali gasi lampicu Num Lock-a ) :
š$M 1024,0,0ć
uses dos;
Procedure Pali;interrupt;
begin
memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32;
end;
Begin
SetIntVec($1c,čpali);
keep(0);
end.
pascal.1191eagle,
-> #1187, andra>> promenis 58,186 u odgovarajuce vrednosti. Inace, ovo je
>> rezidentan program, ne znam kako bi izgledalo u "obicnom".
> U obicnom bi negde AND-ovao neki bit. Zaboravio sam koji,
> ali ako poglevas u .ng sa asm nacices kako je memorija
> mapirana,pa AND-uj sta treba.
> Inace, ceo program ima cc 8 bytes.
Ok to, ali kako u "običnom" programu okačiti neku proceduru na $09 ?
pascal.1192eagle,
-> #1188, a.kircanski> _-=> if portŠ$60Ć in Š58,186Ć then portŠ$60Ć:=0;
> Thanx!
> Samo odakle ti one vrednosti 58,186??
Pa napišeš otprilike: While true do writeln(portŠ$60Ć), pritiskaš tastere
i gledaš šta se dešava. 58 je kod koji daje pritisnut a 58+128 pušten taster
caps lock.
pascal.1193eagle,
-> #1190, mmile>* getintvec($09,čold);
> Cemu ovo sluzi kad nigde nemas uslov kojim bi stari vektor sa
> interapta 9h vratio na njegovu originalnu vrednost ?
Pa mora se obezbediti izvršavanje procedure(a) koja već stoji na $09.
U suprotnom bi tastatura ostala "mrtva" za sve osim za našu proceduru.
Slično važi i za još neke, na primer $08. Baci pogled, proceduru old svaki put
poziva naša interapt procedura.
> Evo mog rezidentnog resenja ( stalno pali gasi lampicu Num
> Lock-a ) :
> Procedure Pali;interrupt;
> begin
> memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32;
> end;
žemu ovo služi, a uz to i ne radi? Prvo ne pozivaš staru proceduru,
drugo ovo stalno pali-gasi num od čega nema ama baš nikakve koristi (problem
je kako zaključati num-lock) što se da lako ispraviti zamenom XOR naredbe
OR naredbom. Treće, i najvažnije, zašto nepotrebno teretiti prekid koji se
poziva oko 20 puta u sekundi? Ovako samo usporavaš sistem, pošto ionako
korisnik
nema načina da promeni status num-locka nego preko pritiska na dugme na
tastaturi, čime se poziva prekid na $09 vektoru.
pascal.1194ssokorac,
-> #1175, paki ─┼┤ GoreLevo? DoleDesno? :(((((
žekaj, u čemu je problem? Ono ispisuje upravo GoreLevo ili DoleDesno, ako
to hoćeš. Ako je stvar u tome da to nećeš, šta onda hoćeš? :)
pascal.1195mmile,
-> #1193, eagle
* Pa mora se obezbediti izvršavanje procedure(a) koja već stoji na $09.
* U suprotnom bi tastatura ostala "mrtva" za sve osim za našu proceduru.
* Slično važi i za još neke, na primer $08. Baci pogled, proceduru old svaki
put
* poziva naša interapt procedura.
Nisam primetio da igde pozivas staru ali da ti verujem ... ;)
*> Evo mog rezidentnog resenja ( stalno pali gasi lampicu Num
*> Lock-a ) :
*> Procedure Pali;interrupt;
*> begin
*> memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32;
*> end;
* žemu ovo služi, a uz to i ne radi? Prvo ne pozivaš staru proceduru,
* drugo ovo stalno pali-gasi num od čega nema ama baš nikakve koristi (problem
* je kako zaključati num-lock) što se da lako ispraviti zamenom XOR naredbe
* OR naredbom. Treće, i najvažnije, zašto nepotrebno teretiti prekid koji se
* poziva oko 20 puta u sekundi? Ovako samo usporavaš sistem, pošto ionako
* korisnik
* nema načina da promeni status num-locka nego preko pritiska na dugme na
* tastaturi, čime se poziva prekid na $09 vektoru.
Nisam pratio od pocetka ali mislio sam da je covek (a.kir* ? ) trazio neki
primer kako da kontrolise num lock ....
1ch je interapt koji inace nesluzi nicemu drugom (?) sem da na njega okacis
neki rezidentni program.Ako treba obezbediti konstantnu iskljucenost num lock-a
samo se : memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32 zameni sa memŠ$40:$17Ć:=0;
Ili blokom :
MemŠ$40:$17Ć:=MemŠ$40:$17Ć or 32; (* da ga upali *)
memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32; (* posto je sigurno upaljen da ga ugasi *)
ili necim slicnim sto gasi 5-ti bit.
pascal.1196paki,
-> #1183, sjeremic> => GoreLevo? DoleDesno? :(((((
>
> Zar GoreLevo nije Gore And Levo ?
Nenenene :)) Gore nije samo jedna vertikalna prava, to je čitava
oblast.
pascal.1197paki,
-> #1194, ssokorac> žekaj, u čemu je problem? Ono ispisuje upravo GoreLevo ili
> DoleDesno, ako to hoćeš. Ako je stvar u tome da to nećeš, šta
> onda hoćeš? :)
>>>.....<<<
.>>>...<<<.
..>>>.<<<..
...>>X<<...
..>>>.<<<..
.>>>...<<<.
>>>.....<<<
Aufff, dok sam ovo nacrtao... :))
Dakle, 8 pravaca, svi su jednaki, kako testirati gde je tačka? :)
Eagle je dao program koji valjda radi, ali nisam još stigao da ga
proverim...
pascal.1198paki,
-> #1189, bulaja> Jel' treba mozda da nacrtam? :)
Ne, očigledno ja treba da nacrtam :) Svejedno, hvala.
pascal.1200eagle,
-> #1195, mmile> 1ch je interapt koji inace nesluzi nicemu drugom (?) sem da na
> njega okacis neki rezidentni program.Ako treba obezbediti
A šta ako je neki program već bio okačen ?
> konstantnu iskljucenost num lock-a samo se :
> memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32 zameni sa memŠ$40:$17Ć:=0;
Ovo ne gasi samo num lock već i sve ostalo...
Ako već hoćeš ovako, onda treba staviti:
m:=m or 32 za paljenje
m:=m and (255-32) za gašenje
pascal.1201ilazarevic,
-> #1181, dejanr> Stavi ovde i imedira+info.name
Ne, tu i treba da bude samo info.name, zato što je imedira ime dira u koji se
kopira. Inače, problem je rešen: trebalo je fajle otvoriti sa reset(f1,1) i
rewrite (fs,1). Hvala ivantodu :)
pascal.1202ilazarevic,
-> #1185, eagle> Pogledaj malo bolje :)
Pogledah... :) sorry. Hvala svima.
pascal.1203ssokorac,
-> #1186, paki ─┼┤ Pošto me SVGA asocira na 512 i više Kb (kojih nemam :() radi li
─┼┤ to i s modom 320x200x256? Ako radi, odma' ga mažnjavam. Ako ne,
Radi, naravno. Radi, sve od 320x200x16 do 1024x768x256, i još neki čudni,
izduženi (tweak) modovi...
pascal.1204kenza,
Da ne zna neko da li je unit koji svira muziku u backgroundu jos
uvek na Sezamu? Trazio sam i nema ga nigde :(
p.s. Jel moze neko da ga okaci,ako nije predugacak ;)
pascal.1205lovro,
-> #1171, paki=- Treba mi neka ideja (jos bolje funkcija :) koja bi radila
=- sledece:
Dovraga, izracunaj ugao u odnosu na x osu, pa ispitujes:
a:=(ugao-22.5) div 45;
case a of
1:desno;
2:goredesno;
3:gore;
...
end;
Lovro
pascal.1206sbrk,
-> #1204, kenza>> Da ne zna neko da li je unit koji svira muziku u backgroundu jos
>> uvek na Sezamu? Trazio sam i nema ga nigde :(
>> 6.254 PC.PROG.2:pascal
>> Play music in the background.
>> ** Uz poruku 'tpmusic.zip' (6416 bytes)
Jel ovo?
pascal.1207andra,
-> #1191, eagle> Ok to, ali kako u "obicnom" programu okaciti neku proceduru na $09 ?
Pardon, promakla mi je sustina problema (cini mi se).
pascal.1208kenza,
-> #1206, sbrk(;>>> ** Uz poruku 'tpmusic.zip' (6416 bytes)
(;> Jel ovo?
Videcu pa cu da javim ;) Svejedno, Hvala ;)
pascal.1209funky,
Jel ovde beše onaj program USERS koji lista usere po vremenu zvanja?
Valjda je ovde. Bye!
pascal.1210skerl,
PSSTR105.ZIP String/keyboard functions for Turbo Pascal 6
Many fast assembler routines for Turbo Pascal 6. Various string,
keyboard and other general procedures have been implemented.
Free Software, No Registration Required. (Postcard would be nice).
Source is included. Popup help for the unit is available in .NG format.
Pozdrav,
Skerl.
psstr105.zippascal.1211vitez.koja,
-> #1200, eagle#=> A šta ako je neki program već bio okačen ?
Nista ;) ko mu je kriv kad se kači za interapt niže vrednosti ;>
pascal.1212m.hristodulo,
-> #1205, lovro>> Dovraga, izracunaj ugao u odnosu na x osu, pa
>> ispitujes:
Ali on je i hteo da izbegne računanje ugla,
to jest trigonometriju, ako sam dobro razumeo!
Naravno da je tako kao što si ti dao, logično... To
je znao i on! Ali može i drukčije, al me mrzi da
razmišljam, polažem sutra Matematiku 3, pa odmaram
vijuge... :))
pascal.1213bulaja,
-> #1210, skerl> PSSTR105.ZIP String/keyboard functions for Turbo Pascal 6
Thanks :), prebaceno u PASCAL dir.
pascal.1214paki,
-> #1212, m.hristodulo> Ali on je i hteo da izbegne računanje ugla,
> to jest trigonometriju, ako sam dobro razumeo!
> Naravno da je tako kao što si ti dao, logično... To
> je znao i on! Ali može i drukčije, al me mrzi da
> razmišljam, polažem sutra Matematiku 3, pa odmaram
> vijuge... :))
Ma hvala vam svima, uradiću ovako kao što je Lovro predložio, a
zatim moje remek delo stiže na Sezam :))
pascal.1215zzile,
Pozivam command.com sa parametrom da izvrsi neki program na
sledeci nacin:
Exec(GetEnv('COMSPEC'),'/C '+ime_programa');
Program ne pozivam direktno jer mozda nije u tekucem direktorijumu
vec negde u path-u (ili je samo interna dos komanda).
Problem : kako da znam da li je taj progam ili komanda bila izvrsena?
Doserror se naravno odnosi na izvrsenje command.com-a.
Pozdrav ZZile
pascal.1216eagle,
-> #1215, zzile> Pozivam command.com sa parametrom da izvrsi neki program na
> sledeci nacin:
> Exec(GetEnv('COMSPEC'),'/C '+ime_programa');
> Problem : kako da znam da li je taj progam ili komanda bila
> izvrsena? Doserror se naravno odnosi na izvrsenje
> command.com-a.
Imaš funkciju Dosexitcode koja vraća 0 ako je program izvršen do kraja.
Međutim, vrednost različita od nule ne mora da znači da taj program nije ni
startovan, već na primer da je nasilno prekinut(ctrl-break ili slično).
pascal.1217zzile,
-> #1216, eagle> Imas funkciju Dosexitcode koja vraca 0 ako je program izvrsen
> do kraja. Medutim, vrednost razlicita od nule ne mora da znaci
> da taj program nije ni startovan, vec na primer da je nasilno
> prekinut(ctrl-break ili slicno).
Na zalost cini mi se (koliko sam probao) da se i Dosexitcode
odnosi na command.com, tj. ako se pozove nepostojeci program
preko command.com-a, Dosexitcode vraca nulu!
Pozdrav ZZile
pascal.1218eagle,
-> #1217, zzile> Na zalost cini mi se (koliko sam probao) da se i Dosexitcode
> odnosi na command.com, tj. ako se pozove nepostojeci program
> preko command.com-a, Dosexitcode vraca nulu!
Znači da command.com stvarno ništa ne valja... 4dos vraća dvojku ako
program ne postoji.
pascal.1219petkovicd,
Jel' ima neko napisan program koji reesava sisteme jVÂiÝ'(d┼đĽĐĎâŕd
jednacina i radi sa kompleksnim brojevima (+,-..). Ne treba mi nesto posebn
slozen program jer radi sa resivim sistemima jednacina .Sve mi to treba za
spremanje ispita preko leta a tamo gde idem imam samo obican dzepni racunar
program moze biti napisan i u BASICU ili FORTRANU .
PS bilo bi pozeljno da mi siljnete na MAIL jer nemam bas vremena da ceprkam po
temi.
Dejan
pascal.1220dejanr,
==========
borland/bpascal.dos #6694, from ligo, 1308 chars, Tue Jun 15 04:02:53 1993
----------
TITLE: Strange File-Access under protected-mode
Seems BP is somewhat picky when using normal file-io under
protected mode. Here is a little program, which is giving
"unpredictable results" when run under a dos-box of OS/2 2.0.
--- cut here ---
program test;
var f:file;
begin
assign (f,'a:test');
rewrite (f);
close (f);
end.
--- cut here ---
There isn't a diskette in drive a:
If I compile this into real-mode, I get the correct error 152,
Drive not Ready
If I compile it into protected mode I get different results.
If I run inside the IE, I get no visible reaction, no red
error-bar nothing, if I switch to the user-screen, there is a
message
runtime-error 0006 at xxxx:yyyy (invalid handle)
Question: why doesn't the IE report this error back???
If run under TDX I get either the same error as above, but
TDX is reporting the return-code of 6 correctly.
Or, I get an exception-error 13 (trap 13 to be precise). If I
continue after this error, TDX is corrupting the hole system.
OS/2 is trapping out with Trap 000d and halting the system
(calling for the coordinator).
It looks like it could be working under DOS 6.0 with the
BP-DPMI-Server. (Just one quick test).
Under WIN31/DOS6 its looking like it is running.
Has anybody an idea/recommendations how this can be made
reliable?
Jens
pascal.1221lovro,
Ne radi mi stampanje iz rezidentnog programa!
...
uses printer,crt,dos;
...
writeln(lst,'Neki tekst');
...
Javlja Run-time error 006, sto mu dodje neki 'Invalid file handle'.
Moze li to nekako?
Lovro
pascal.1222bole,
HI,
Jel zna neko od vas kako da pustam MODOVE (*.MOD) TPu 6.0 (recimo)
pascal.1223vitez.koja,
-> #1221, lovro#=> Ne radi mi stampanje iz rezidentnog programa!
#=> writeln(lst,'Neki tekst');
Kuku nesrećniče, dobro je dok javlja greške, mogo je da okine 'ladno. U
prinpicu, ne smes "tek tako" da koristis dosove funkcije iz rezidentnog
programa (a writeln ih koristi), vecmoras da pazis nekezezalice ko
sto su int 13h, int 28h, tzv. indos flag itd... Pogledaj u novim
racunarima, pise da je neko tamo napisao "pravi rezidentni program",
valjda ima, ili pitaj mene ako tamo nema :)
pascal.1224ilazarevic,
-> #1222, bole> Jel zna neko od vas kako da pustam MODOVE (*.MOD) TPu 6.0 (recimo)
Bio je ovde negde jedan unit za te stvari. Možde je u diru, a možda je u
porukama. Uradi jedan find...
pascal.1225a.kircanski,
-> #1224, ilazarevic_-=>> Jel zna neko od vas kako da pustam MODOVE (*.MOD) TPu 6.0
_-=> (recimo)
Ako ne nađeš imam ja, traži, da ti ostavim na mail...
pascal.1226bole,
Evo poc'o i ja da se zezam sa paskalom :)
Jel ima neko od vas proceduru(e) sa kojom mogu da ucitavam i prikazujem PCX
slike, ili gif.
i jel ima neko od vas to isto ali za *.mod
pascal.1227dejanr,
-> #1226, bole>> Jel ima neko od vas proceduru(e) sa kojom mogu da ucitavam i prikazujem
>> PCX slike, ili gif.
Predložio bih posetu direktorijumu PASCAL, imaš sve što ti treba tamo.
pascal.1228bole,
-> #1227, dejanrTHanks,
Nemoj da se ljutis, nov sam, sto se tice PASKALA!
pascal.1229bole,
-> #1227, dejanrAli tamo nema to!
pascal.1230dejanr,
-> #1229, bole>> Ali tamo nema to!
Pokušaj sa ovim programom
R:\IBMPC\PASCAL\*.*
----------------------
tppcx zip 46327 Rad sa slikama u Paintbrush formatu
Takođe, pogledaj arhivu uz poruku 6.805 u ovoj konferenciji.
pascal.1231bole,
HELP!! MI HELP MI!!!!
Ovako treba mi jedna dobra dusa, koja cde da mi da primer za sledece:
Da mi program bude rezidentan a da radi u pozadini recimo da svira sa sound
nesto a ja da radim u dosu, ili da svira a moj prg. da crt!
crta
HELP MI
pliz
pascal.1232a.kircanski,
Ajde da mi neko da program,
koji ostaje rezidentan, i radi u backgruondu, npr. svira
.mod ili bilo sta drugo.
help...
pozdrav..
pascal.1233bole,
VIDIM NIKO NIJE SVATIO MOJE PITNJE: EVO GA PONOVO:
Da li neko moze da mi kaze kako recimo napravim prg. koji ce da svira (sa
sound, delay i nosound) a u isto vreme da radi nesto drugo, recimo ceka sa
readln; itd.?
JEl sad jasno?
.
pascal.1234skerl,
TECHNOJOCK'S TURBO TOOLKIT v5.10 <ASP> -
An award winning library of tools for Turbo Pascal programmers. The main
focus of the Toolkit is to give programs a professional and polished
appearance. The Toolkit includes a host of menu building tools, sorted
directory listings, full-screen data entry, window support, automatic
mouse suport and much, much more!
FASTTTT5 (22)
ColorScreen:boolean;
Attr(F,B:byte):byte;
FastWrite(Col,Row,Attr:byte; St:StrScreen);
PlainWrite(Col,Row:byte; St:StrScreen);
ColWrite(Col,Row:byte; St:StrScreen);
FWrite(St:StrScreen);
FWriteLN(St:StrScreen);
Attrib(X1,Y1,X2,Y2,F,B:byte);
Clickwrite(Col,Row,F,B:byte; St:StrScreen);
Replicate(N:byte; Character:char):StrScreen;
Box(X1,Y1,X2,Y2,F,B,boxtype:integer);
FBox(X1,Y1,X2,Y2,F,B,boxtype:integer);
GrowFBox(X1,Y1,X2,Y2,F,B,boxtype:integer);
HorizLine(X1,X2,Y,F,B,lineType:byte);
VertLine(X,Y1,Y2,F,B,lineType:byte);
ClearText(x1,y1,x2,y2,F,B:integer);
ClearLine(Y,F,B:integer);
WriteAT(X,Y,F,B:integer; St:StrScreen);
WriteBetween(X1,X2,Y,F,B:byte; St:StrScreen);
WriteCenter(LineNO,F,B:integer; St:StrScreen);
WriteVert(X,Y,F,B:integer; St:StrScreen);
EGAVGASystem: boolean;
WINTTT5 (33)
SizeCursor(Top,Bot:byte);
FindCursor(var X,Y,Top,Bot:byte);
PosCursor(X,Y: integer);
Fullcursor;
HalfCursor;
OnCursor;
OffCursor;
GetScreenChar(X,Y:byte):char;
GetScreenAttr(X,Y:byte):byte;
GetScreenStr(X1,X2,Y:byte;var St:StrScreen);
CreateScreen(Page:byte;Lines:byte);
SaveScreen(Page:byte);
RestoreScreen(Page:byte);
PartRestoreScreen(Page,X1,Y1,X2,Y2,X,Y:byte);
SlideRestoreScreen(Page:byte;Way:Direction);
PartSlideRestoreScreen(Page:byte;Way:Direction;X1,Y1,X2,Y2:byte);
DisposeScreen(Page:byte);
SetCondensedLines;
Set25Lines;
CopyScreenBlock(X1,Y1,X2,Y2,X,Y:byte);
MoveScreenBlock(X1,Y1,X2,Y2,X,Y:byte);
Scroll(Way:direction;X1,Y1,X2,Y2:byte);
Mkwin(x1,y1,x2,y2,F,B,boxtype:integer);
GrowMkwin(x1,y1,x2,y2,F,B,boxtype:integer);
Rmwin;
FillScreen(X1,Y1,X2,Y2:byte; F,B:byte; C:char);
TempMessageCh(X,Y,F,B:integer;St:strscreen;var Ch : char);
TempMessage(X,Y,F,B:integer;St:strscreen);
TempMessageBoxCh(X1,Y1,F,B,BoxType:integer;St:strscreen;var Ch : char);
TempMessageBox(X1,Y1,F,B,BoxType:integer;St:strscreen);
Activate_Visible_Screen;
Activate_Virtual_Screen(Page:byte);
Reset_StartUp_Mode;
KEYTTT5 (23)
Assign_Pressed_Hook(PassedProc : Key_pressed_Type);
Assign_Idle_Hook(PassedProc : Key_Idle_Type);
Mouse_Installed:Boolean;
Show_Mouse_Cursor;
Hide_Mouse_Cursor;
Get_Mouse_Action(var But: button; var Hor,Ver: integer);
Move_Mouse(Hor,Ver: integer);
Confine_Mouse_Horiz(Left,Right:integer);
Confine_Mouse_Vert(Top,Bot:integer);
Set_Mouse_Cursor_Style(OrdChar: integer);
Alt_Pressed:Boolean;
Ctrl_Pressed:Boolean;
LeftShift_Pressed: Boolean;
RightShift_Pressed: Boolean;
Shift_Pressed: Boolean;
CapsOn: Boolean;
NumOn: Boolean;
ScrollOn: Boolean;
Set_Caps(On : boolean);
Set_Num(On : boolean);
Set_Scroll(On : boolean);
GetKey : Char;
DelayKey(Time : integer);
MENUTTT5 (3)
No_Hook(var Ch:char; Choice:integer; var Ecode : integer);
Menu_Set(var M : Menu_record);
DisplayMenu(MenuDef: Menu_record;Window:Boolean;var Choice,Ecode:integer);
PULLTTT5 (2)
No_Hook(var Ch: char; Main, Sub :byte);
Pull_Menu( Definition:Pull_Array; var PickM, PickS:byte);
NESTTTT5 (12)
Assign_Despatcher(D:Despatcher_Proc);
Initialize_Menu(var Menu:Nest_Menu;Tit: menuStr;Width: byte;
Display_Lines: word);
Add_Topic(var Menu:Nest_Menu;Nam:MenuStr;Activ:boolean;HKey:char;
Code:integer;Sub: MenuPtr);
Modify_Topic(var Menu:Nest_Menu;TopicNo:word;Nam:MenuStr;Activ:boolean;
HKey :char;Code:integer;Sub: MenuPtr);
Modify_Topic_Name(var Menu:Nest_Menu;TopicNo:word;Nam:MenuStr);
Modify_Topic_Active(var Menu:Nest_Menu;TopicNo:word;Activ:Boolean);
Modify_Topic_HotKey(var Menu:Nest_Menu;TopicNo:word;HKey:char);
Modify_Topic_RetCode(var Menu:Nest_Menu;TopicNo:word;Code:integer);
Modify_Topic_SubMenu(var Menu:Nest_Menu;TopicNo:word;Sub:MenuPtr);
Delete_A_Topic(var Menu:Nest_Menu;TopicNo: word);
Delete_All_Topics(var Menu:Nest_Menu);
Show_Nest(var Menu:Nest_Menu);
LISTTTT5 (1)
Show_List(var StrArray;StrLength:Byte;TotalPicks:byte);
DIRTTT5 (1)
Display_Directory(DirFullFileName: StrScreen;var Retcode:integer): StrScreen;
READTTT5 (11)
Read_String(X,Y,L:byte;Prompt:StrScreen; BoxType: byte;
Var Txt:StrScreen);
Read_String_Upper(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;
Var Txt:StrScreen);
Read_Password(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;
Var Txt:StrScreen);
Read_Alpha(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var Txt:StrScreen);
Read_YN(X,Y:byte;Prompt:StrScreen;BoxType: byte;Var Yes:Boolean);
Read_Byte(X,Y,L:byte; Prompt:StrScreen;BoxType: byte;Var B : Byte;
Min, Max : Byte);
Read_Word(X,Y,L:byte; Prompt:StrScreen;BoxType: byte;Var W : word;
Min, Max : word);
Read_Int(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var W : integer;
Min, Max : integer);
Read_LongInt(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var W : longint;
Min, Max : longint);
Read_Real(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var W : real;
Min, Max : real);
Read_Select(X,Y:byte;Pmt,Txt:StrScreen;var Choice:byte);
IOTTT5 (26)
Create_Tables(No_Of_Tables:byte);
Activate_Table(Table_no:byte);
Assign_LeaveFieldHook(Proc:Move_Field_Proc);
Assign_EnterFieldHook(Proc:Move_Field_Proc);
Assign_CharHook(Proc:Char_Hook_Proc);
Assign_InsHook(Proc:Insert_Proc);
Create_Fields(No_of_fields:byte);
Define_Colors(HiF,HiB,LoF,LoB,MsgF,MsgB:byte);
Add_Message(DefID,DefX,DefY : byte; DefString : string);
Add_Field(DefID,DefU,DefD,DefL,DefR,DefX,DefY:byte);
String_Field(DefID:byte;var Strvar:String;DefFormat:string);
Assign_Finish_Char(Ch : char);
Byte_Field(DefID:byte;var ByteVar:Byte;DefFormat:string;Min,Max:byte);
Word_Field(DefID:byte;var Wordvar:Word;DefFormat:string;Min,Max:word);
Integer_Field(DefID:byte;var Integervar:Integer;DefFormat:string;
Min,Max:integer);
LongInt_Field(DefID:byte;var LongIntvar:LongInt;DefFormat:string;
Min,Max:LongInt);
Date_Field(DefID:byte;var Datevar:Dates;DateFormat:byte;DefFormat:string;
Min,Max : Dates);
Real_Field(DefID:byte;var Realvar:Real;DefFormat:string;Min,Max:real);
Set_Default_Rules(Rules:word);
Field_Rules(DefID:byte;Rules:word;AChar:IOcharset;DChar:IOcharset);
Display_All_Fields;
Allow_Esc(OK:boolean);
Allow_Beep(OK:boolean);
Dispose_Fields;
Dispose_Tables;
Process_Input(StartField:byte);
STRNTTT5 (23)
Squeeze(L:char;Str:string;Width:byte): string;
First_Capital_Pos(Str:string): byte;
First_Capital(Str:string): char;
PadLeft(Str:string;Size:byte;Pad:char):string;
PadCenter(Str:string;Size:byte;Pad:char):string;
PadRight(Str:string;Size:byte;Pad:char):string;
Last(N:byte;Str:string):string;
First(N:byte;Str:string):string;
Upper(Str:string):string;
Lower(Str:string):string;
Proper(Str:string):string;
OverType(N:byte;StrS,StrT:string):string;
Strip(L,C:char;Str:string):string;
LastPos(C:Char;Str:string):byte;
PosWord(Wordno:byte;Str:string):byte;
WordCnt(Str:string):byte;
ExtractWords(StartWord,NoWords:byte;Str:string):string;
Str_to_Int(Str:string):integer;
Str_to_Long(Str:string):Longint;
Str_to_Real(Str:string):real;
Real_to_str(Number:real;Decimals:byte):string;
Int_to_Str(Number:longint):string;
Real_to_SciStr(Number:real; D:byte):string;
MISCTTT5 (22)
Exist(Filename:string):boolean;
CopyFile(SourceFile, TargetFile:string): byte;
File_Size(Filename:string): longint;
File_Drive(Full:string): string;
File_Directory(Full:string): string;
File_Name(Full:string): string;
File_Ext(Full:string): String;
Time: string;
Clock;
Date: String;
PrintScreen;
Beep;
Printer_Status:byte;
Printer_ready:boolean;
FlushKeyBuffer;
Reset_Printer;
Date_To_Julian(InDate:string;format:byte): dates;
Julian_to_Date(J:dates;format:byte):string;
Today_in_Julian: dates;
Date_Within_Range(Min,Max,Test:dates):boolean;
Valid_Date(Indate:string;format:byte): boolean;
Future_Date(InDate:string;format:byte;Days:word): string;
Pozdrav,
Skerl.
p.s. Sve je ja hederom i provereno na viruse, bar one poznate ;)
tttsrc51.zippascal.1235skerl,
TECHNOJOCK'S TURBO TOOLKIT v5.10 <ASP> - docs
tttdoc51.zippascal.1236skerl,
TECHNOJOCK'S TURBO TOOLKIT v5.10 <ASP> - demos
tttdem51.zippascal.1237skerl,
TECHNOJOCK'S OBJECT TOOLKIT v1.10 <ASP> -
A sophisticated library of tools for Turbo Pascal programmers. With
this Toolkit you can quickly and easily build programs sporting the
latest interface style with pop-up dialog boxes, scroll-bars and
stretchable/dragable windows. To display a sorted directory list in
a moveable window, for example, takes just three lines of code.
TOTFLAGS.INC contains global compiler directives
TOTLOOK.PAS controls the overall look and feel of your programs
TOTREAL.PAS provides numeric co-processor support and supports
extended reals
TOTSYS.PAS contains objects for ascertaining hardware and operat-
ing system configurations
TOTINPUT.PAS provides mouse and keyboard support
TOTFAST.PAS supports writing to physical and virtual screens
TOTWIN.PAS contains a variety of window objects
TOTMSG.PAS provides objects for displaying messages and prompts
in
Pop-up windows
TOTLINK.PAS includes a variety of objects for managing linked
lists
TOTLIST.PAS provides objects for displaying string arrays or
linked
lists in a window
TOTDIR.PAS includes a directory display object
TOTIO1,2,3.PAS three units for building full screen input
TOTMENU.PAS includes routines for building pop-up and pull-down
menus
TOTSTR.PAS contains a host of string manipulation functions
TOTDATE.PAS includes a set of functions for managing Julian and
Gregorian dates
TOTMISC.PAS provides a potpourri of procedures and functions
TOTBUILD.PAS used to re-build all the TOT TPUs
Pozdrav,
Skerl.
p.s. I ovo je sa hederom i bez virusa.
totsrc11.zippascal.1238skerl,
TECHNOJOCK'S OBJECT TOOLKIT v1.10 <ASP> - docs
totdoc11.zippascal.1239skerl,
TECHNOJOCK'S OBJECT TOOLKIT v1.10 <ASP> - demos
totdem11.zippascal.1240paki,
-> #1237, skerl> p.s. I ovo je sa hederom i bez virusa.
A jel može samo par reči o tome šta je novo u odnosu na staru
verziju? Ne skida mi se 400Kb zbog 2 baga (a da ne govorim o tome
da sam odštampao 600Kb dokumentacije, pa mi dođe da se ubijem :)))
pascal.1241bole,
meni nema niko namere da odgovori... neki fazon je sa keep(0) i sa onim cudima,
ali ne znam ~
pascal.1242ssokorac,
-> #1233, bole ─┼┤ Da li neko moze da mi kaze kako recimo napravim prg. koji ce da svira
─┼┤ (sa sound, delay i nosound) a u isto vreme da radi nesto drugo, recimo
─┼┤ ceka sa readln; itd.?
Verovatno ti treba nešto kao PLAY iz bejzika? :) E, upravo to je neko
poslao ranije u ovu temu... Pogledaj sa Co Fi Pascal /a (PLAY;), a ako ne
nadješ, potražiću čim se javim na Sezam.
pascal.1243a.kircanski,
-> #1241, bole_-=> meni nema niko namere da odgovori... neki fazon je sa
_-=> keep(0) i sa onim cudima, ali ne znam č
Ma ne zna niko.;>
pascal.1244nikac,
-> #1241, boleIzvini nisam bas u toku, ali ako je nesto u vezi pravljenja TSR programa na
PASCALU mogu da ti pomognem. ( cak ce i da rade ;)
-=Nikac=-
pascal.1245barka,
Jel ima neko rutinu za scrol teksta kursorskim
tasterima, i sa PgDn, PgUp, Home, End?
Ajdete, molim vas, da se ne patim sam.
Podrazumeva se, stvar je hitna.
pascal.1246skerl,
-> #1240, paki
│ A jel moze samo par reci o tome sta je novo u odnosu na staru
└────
Evo ti flash.txt, not-so-quick-reference. Nigde nisam
nasao izdvojene razlike od prosle do ove verzije a tu imas sve
lepo izlistano i objasnjeno.
Pozdrav,
Skerl.
flash.zippascal.1247a.kircanski,
Zašto sledeća stvar neće da mi radi?
var s:string;
ch:char;
begin
s:='';
ch:='a';
sŠ1Ć:=ch;
Write(s);
end.
I kad stavim write(s) s je prazan?!?!?
A kad stavim write(sŠ1Ć) onda pokaže char a.
ccc, šta mu bi?:)
pascal.1248dejanr,
-> #1247, a.kircanski>> var s:string;
>> ch:char;
>> begin
>> s:='';
>> ch:='a';
>> s[1]:=ch;
>> Write(s);
>> end.
>> I kad stavim write(s) s je prazan?!?!?
>> A kad stavim write(sŠ1Ć) onda pokaže char a. ccc, šta mu bi?:)
Bi mu da nisi pročitao uputstvo :) String promenljiva, osim sadržaja,
ima i dužinu koja se upisuje u nulti bajt. Time što si u prvi bajt
upisao neko slovo nisi ništa posebno uradio, jer je tamo i tako bio
nekakav sadržaj (nula?) pa se ipak nije ispisivao. Zato bi u datom
primeru trebalo da dodaš i s[0]:=#1 i onda ispis ne bi bio prazan.
Znatno je preporučljivije koristiti konkatenaciju, dakle s:=s+ch.
Tada sam paskal "brine" o dužini.
pascal.1249.obj,
-> #1245, barka> Jel ima neko rutinu za scrol teksta kursorskim
> tasterima, i sa PgDn, PgUp, Home, End?
Pa, pitanje ti je totalno neodređeno, teško će neko da ti odgovori.
Međutim, uopšteno, napravi proceduru za ispis nekako ovako:
procedure NekiIspis (X, Y: longint);
A u nekoj "glavnoj petlji" ugradiš dve promenljive koje drže poziciju
ispisa. Na primer, PosX i PosY:
NekiIspis (PosX, PosY);
Bilo kakvo kretanje se, posle ovoga, lako realizuje. Let's say:
case Key of
VkDown:
Inc(PosY);
VkPageDown:
Inc(PosY, 25);
i tome slično. Nadam se da sam ti malo pomogao. Uvek je bolje da
postaviš konkretno pitanje.
.obj
pascal.1250paki,
-> #1246, skerl> Evo ti flash.txt, not-so-quick-reference. Nigde nisam
> nasao izdvojene razlike od prosle do ove verzije a tu imas sve
> lepo izlistano i objasnjeno.
Hvala, Skerl.
pascal.1251sbrk,
-> #1245, barka>> Jel ima neko rutinu za scrol teksta kursorskim
>> tasterima, i sa PgDn, PgUp, Home, End?
Evo ti nešto, proizvod moje dokolice :)
program WWindow;
š 12.05.92 Slavisha Brkic
-------------------------------------------------------------------------
Demonstracija ROM-BIOS servisa 6 i 7 (scroll up/down).
Program otvara prozor na ekranu u koji se text unosi sa tastature.
Page Up/Down se koriste za scroll texta gore, dole respektivno.
-------------------------------------------------------------------------
07.02.93 - malo dopunjeno, za kretanje gore,dole,levo,desno...
ć
uses Dos, Crt;
š Type
regSet = record
Case Integer of
1: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Integer);
2: (AL, AH, BL, BH, CL, CH, DL, DH : Byte);
end; ć
const
LEFT = Chr(27);
BS = Chr(8);
ATR = 112;
var
Ch : Char;
Regs : registers;
š-----------------------------------------------------------------------ć
procedure PageUp (X1, Y1, X2, Y2, ATTR : Byte);
š scroll up one line in the window ć
begin
Regs.AH := 6; š requesting service 6 ć
Regs.AL := 1; š scroll up one line ć
Regs.CH := Y1; š upper left row ć
Regs.CL := X1; š upper left column ć
Regs.DH := Y2; š lower left row ć
Regs.DL := X2; š lower right column ć
Regs.BH := ATTR; š attribute for line ć
Intr($10, Regs) š calling interupt 10H ć
end;
š-----------------------------------------------------------------------ć
procedure PageDown (X1, Y1, X2, Y2, ATTR : Byte);
š scroll down one line in the window ć
begin
Regs.AH := 7;
Regs.AL := 1;
Regs.CH := Y1;
Regs.CL := X1;
Regs.DH := Y2;
Regs.DL := X2;
Regs.BH := ATTR;
Intr($10, Regs)
end;
š-----------------------------------------------------------------------ć
š *** main program begins here *** ć
begin
Window(30, 8, 50, 18); š define window ć
TextColor(Black); š set text foreground and ć
TextBackground(White); š background colors ć
ClrScr; š clear screen inside window ć
GoToXY(1,1); š go to top left corner ć
repeat
Ch := ReadKey; š read character from Kbd ć
if Ch = #0 then š read extended char,if typed ć
Ch := ReadKey;
case Ch of
#8 : if WhereX = 1 then š BACKSPACE ć
begin
if WhereY <> 1 then
begin
GoToXY(21,WhereY-1);
Write(' ');
GoToXY(21,WhereY-1);
end;
end
else
begin
GoToXY(WhereX-1,WhereY);
Write(' ');
GoToXY(WhereX-1,WhereY);
end;
#73 : PageUp (29, 7, 49, 17, ATR); š page up key ć
#81 : PageDown (29, 7, 49, 17, ATR); š page down key ć
#75 : if WhereX = 1 then š cursor left ć
GoToXY(21,WhereY-1)
else GoToXY(WhereX-1,WhereY);
#77 : if WhereX = 21 then š cursor right ć
GoToXY(1,WhereY+1)
else GoToXY(WhereX+1,WhereY);
#72 : if WhereY = 1 then š cursor up ć
PageDown (29, 7, 49, 17, ATR)
else GoToXY(WhereX,WhereY-1);
#80 : if WhereY = 11 then š cursor down ć
PageUp(29, 7, 49, 17, ATR)
else GoToXY(WhereX,WhereY+1);
else
if (Ch in Š#32..#126,#8Ć) then
Write(Ch); š write character to screen ć
end;
until Ch = Chr(13) š until <CR> ć
end.
Pozdrav, Slavisha.
pascal.1252predragd,
-> #1223, vitez.koja> ... U prinpicu, ne smes "tek tako" da koristis
> dosove funkcije iz rezidentnog programa (a writeln ih
> koristi), vec moras da pazis nekezezalice ko
Kako to misliš ne možeš da koristiš DOS funkcije u TSR programima.
Već više od dve godine jedan TSR program koji obilato koristi DOS
pozive radi bez ikakvih problema. Nikad nije izazvao blokiranje
mašine, ili javio neki run-time error. Mogu slobodno da kažem da mi
drugi komercijalni programi prave više problema nego ovaj moj
programčić.
Peđa.
pascal.1253barka,
-> #1251, sbrkŮ>> Jel ima neko rutinu za scrol teksta kursorskim
Ů>> tasterima, i sa PgDn, PgUp, Home, End?
Ů
Ů Evo ti nešto, proizvod moje dokolice :)
Ů
Ů program WWindow;
Ok, ali kako da izvedem da ne zaboravi text koji je otišao iz
prozora, već da ga zapamti i po potrebi ponovo vrati na ekran?
pascal.1254vitez.koja,
-> #1252, predragd#=> Kako to misliš ne možeš da koristiš DOS funkcije u TSR
#=> programima.
Mislim ono sto sam napisao... Vuk Karadžić je u pitanju ;) Inače,
ključno mesto u toj rečenici je "tek tako", čini mi se da si to
prevideo.
#=> Već više od dve godine jedan TSR program koji obilato
#=> koristi DOS pozive radi bez ikakvih problema.
Srećan slučaj, pogodilo se da se program slaže sa ostalim stvarima koje
koristiš. Pročitaj _bilo šta_ o pisanju ISRa, videćeš da se pominje tzv.
reentrancy. Vidim da ti ne bi škodilo malo "formalnog obrazovanja" ;)
pascal.1255vitez.koja,
Da li je neko uspeo da iskoristi onaj unit za animaciju - ANIMVGA - iz
direktorijuma pascal ? Ne mogu da ucitam pozadinu, _nikako_ :( U cemu je
fazon ?
pascal.1256mmile,
-> #1247, a.kircanski* s:='';
* ch:='a';
* s[1]:=ch;
* Write(s);
Zameni s:='' sa s:=' ' i radice.
pascal.1257ficus,
-> #1253, barka>> zaboravlja ono {to je bilo...
ovde dekiper...
Pa, u okviru CRT unita ima{ funkcije gettext i puttext i sa njima bi
problem trebao da bude re{en :) . Nisam se puno igrao sa sli~nim stvarima, tako
da samo pretpostavljam, ali mislim da bi trebalo da bude OK.
Pozdrav, Deki