pascal.102postmast,
From: Arpadffy.Zoltan@f107.n111.z38.setgate.setnet.co.yu (Arpadffy Zoltan)
Subject: kbd. buffer
Date: Tue, 17 Jan 1995 12:01:50
hi :-)
Imam jedan problem. Ima li neko resenje...
Potrebno je da nekom programu podturim (nekim interaptom )
neke karaktere tako da taj program detektuje kao da je
stiglo sa tastature, stim da mi tastatura i nadalje bude
pristupna.
Bez panike... Nije rec o virusu nego o komunikacionom
programu. Taj interapt bi sa COM porta skidao karaktere ali
problem je dati programu.
Napominjem nemam puno iskustva sa interaptima, ovo je doslo
silom prilike.
cu Zoli
... Sorry, the Dog ate my Blue Wave packet.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.103postmast,
From: Amir.Zolic@f115.n103.z38.setgate.setnet.co.yu (Amir Zolic)
Subject: pascal
Date: Mon, 23 Jan 1995 00:01:03
-=> Quoting "Vlada Biskupljanin" to All <=-
"B> From: "Vlada Biskupljanin" <vgenije@sezam.UUCP>
"B> Newsgroups: yu.prog.pascal
"B> Organization: SEZAM Beograd, 011 648-422
"B> Kako da izbegnem da me ne izbacuje iz programa ako na pitanje za neku
"B> varijablu tipa real korisnik ogovori sa nekim slovom?
"B> Ocu da kazem kako da ga vratim na to isto pitanje ako je pogresio sa
"B> numerickim formatom?
"B> pozdrav
Ovako nesto bi trebalo da radi.
var r : real;
error : integer;
begin
{ ... }
repeat
{$I-}
readln(r);
{$I+}
error := IOResult
if (error <> 0) then WriteLn('Pogresan unos. Unesite ponovi...');
until (error = 0)
{ ... }
end.
Za vise podataka pogledaj help za {$I} direktivu i funkciju IOResult.
Pozdrav
Amir
* Origin: Atlantis BBS 22-05 tel. 3225-548 ■Belgrade■ (38:103/115)
pascal.104pedjak,
-> #102, postmast
> Potrebno je da nekom programu podturim (nekim interaptom )
> neke karaktere tako da taj program detektuje kao da je
> stiglo sa tastature, stim da mi tastatura i nadalje bude
> pristupna.
AH = 05h
CH = scan code
CL = ASCII character
INT 16h
Return: AL = 0 success
AL = 1 buffer full
Samo pazi: neki jako stari BIOS-i ne podržavaju ovu stvar. Tek sa
pojavom proširenih tastatura, javlja se i ovaj poziv.
pascal.105janko,
-> #94, vgenijepedjak:
> var
> a:real;
> begin
> repeat
> (*I-*)
> readln(a);
> (*I+*)
> until ioresult=0;
> end.
>
vgenije:
>> sigurno radi, pa prilagodi svoj program prema tome.. Koju
>> ti poruku inace javlja program..?
>
> Tvoj program je isto izbacivao na onom mestu readln(a) kao
> u stilu nije dobar odgovor zbog formata...
> Od druga sam uzeo ovaj primer i on radi mada logicki
> gledano trebao je i tvoj:
> uses dos,crt;
> var a:integer;
> s:string
> begin
> repeat
> readln(a);
> str(a,b);
> until ioresult=0;
> end.
Prvi program javlja grešku kada se ukuca alfanumerik jer umesto (*I-*) i
(*I+*) treba da stoji (*$I-*) i (*$I+*) Drugi program bi takođe trebalo
da javlja istu grešku iz istih razloga, osim ako nisi u međuvremenu
promenio podešavanja na Compiler Options meniju. Takođe, drugi program
besmisleno troši string s, zatim, b nije nigde deklarisano, testiranje
na ioresult nema smisla ako je I opcija ugašena i sl. Međutim, moguće je
prvo učitavati u string a zatim ga konvertovati sa val, pa da se ne
izaziva ran tajm greška, ali program izgleda malo drugačije. Sve u
svemu, imaš još puno puno puno toga da učiš...
pascal.106zeljkoj,
-> #98, postmast> Evo ti nesto sto je meni pomoglo:
Hvala.
pascal.107mmitrovic,
-> #97, postmastŮ█▀█Ţ Function NReadLn (len : byte) : Integer;
...
Ů█▀█Ţ end; š function NReadLnć
Oh my god! :)
Kako te nije mrzelo da pišeš tu funkciju kad $I- i IOResult rešavaju
stvar. Osim toga ova funkcija neće raditi ako se uradi redirekcija pri
startovanju programa jer koristi CRT modul.
pascal.108inikolic,
Vidim da se ovde razvila poprilicna polemika o ANSI-ju i sta modem salje. Ja
imam drugo pitanje . Sta modem salje kada je u pitanju ACSII. Konkretno me
zanima kako da se pomeri za red gore, kako da se kursor pozicionira u gornji
levi ugao, kako da se izbrise ekran. Dolaze u obzir i sve ostale sekvence.
Znaci cist ASCII, nema ANSI.
Ivan
pascal.109postmast,
From: Aleksandar.Nikov@f131.n108.z38.setgate.setnet.co.yu (Aleksandar Nikov)
Subject: pascal
Date: Tue, 24 Jan 1995 09:28:00
-=> Quoting "Zeljko Jovanovic" to All <=-
"J> Kad smo vec kod kodova :)) interesuje me sta komunikacioni program
"J> posalje "drugoj strani", recimo Sezamu :), kada pritisnem neku od
"J> strelica ili neki drugi taster koji nema svoj ASCII kod?
U ASCII -ju mislim da ne salje nista. A u ANSI salje kombinaciju
kodova. Pr. za levu strelicu salje ESC [ A.
ĆĆ Anikov žž
... Taglines are irrelevant. You will be assimilated into the VEGA BBS
* Origin: SetNet * VEGA BBS * Skopje * +389-91-225-280 (38:108/131)
pascal.110postmast,
From: Aleksandar.Nikov@f131.n108.z38.setgate.setnet.co.yu (Aleksandar Nikov)
Subject: pomoc (chr)
Date: Tue, 24 Jan 1995 10:12:00
* Vo porakata za All, Stevan Dejanovic reche:
> Da li neko moze da mi da savet kako da ubacim svoje
> fontove u svoj program
> BTW radim u Pascalu 6.0
uses Graph,Crt;
var
Driver, Mode : Integer;
TestFont : Integer;
c : char;
begin
TestFont := InstallUserFont('triplex.chr');
if GraphResult <> grOk then
begin
WriteLn('Greska u instaliranju');
ReadLn;
end;
Driver := Detect;
Mode := 0;
InitGraph(Driver, Mode, 'egavga.bgi');
if GraphResult <> grOk then Halt(1);
SetTextStyle(Testfont, HorizDir, 9);
OutTextxy(100,100,'Novi font');
c:=Readkey;
Closegraph;
end.
ĆĆ Anikov žž
... Read messages, not taglines.
* Origin: SetNet * VEGA BBS * Skopje * +389-91-225-280 (38:108/131)
pascal.111vitez.koja,
-> #62, niklaus#=> ps Nažalost (po sve nas koji "trpimo" YUSCII) C to
#=> nema, inače bi bilo manje
Ima :) janko je slao detalje, čini mi se čak i jedan program u
tom fazonu.
pascal.112postmast,
From: Sebastian.Adanko@f107.n111.z38.setgate.setnet.co.yu (Sebastian Adanko)
Subject: Real2Int
Date: Mon, 23 Jan 1995 03:28:44
Hail to you, oh great Predrag of the house Supurovic !
>rekoh,nemam volje.Moje potrebe zadovoljava.BTW,kakve provere da uvodim?
>(cisto da znam ako pravim nesto ozbiljnije)
PS> Kad god nesto pravis, prvi do kraja. Tako ces steci naviku.
Pokusavam,ali ovakve stvari pravim samo dok mi trebaju. ;)
PS> Mislio sam na provere da li je unesena vrednost u dozvoljenom opsegu i
PS> slicno...
Aha,pa sto ne kazes odma ;)
Znas kako,ovaj put me MRZELO ;)
Naime,kad unosis neku hex vrednost,on moze da istrpi cetiri-pet-sest,ne
secam se koliko cifara,a blesavo mi je da ogranicavam binarni broj na
isto toliko cifara,a da pisem rutinu za proveru velicine broja u odnosu na
sistem u kojem je,to me je jaaaaako mrzelo ;) pa sam taj deo izostavio.
I uglavnom,sve sto fali je zbog moje lenjosti ;))))
PhuZZY L0GiK
... He who has a shady past knows that nice guys finish last.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.113postmast,
From: Varga.Mihály@f111.n111.z38.setgate.setnet.co.yu (Varga Mihály)
Subject: Re: pascal
Date: Mon, 23 Jan 1995 06:30:01
"B> Kako da izbegnem da me ne izbacuje iz programa ako na pitanje za neku
"B> varijablu tipa real korisnik ogovori sa nekim slovom?
"B> Ocu da kazem kako da ga vratim na to isto pitanje ako je pogresio sa
"B> numerickim formatom?
"B> pozdrav
"B>
Probaj sa:
{$I-} {iskljucis proveru I/O}
repeat
{ a ovde lepo ispitas da lije ispravno uneto ono sto ves treba da se unese}
{ koristi whereXY pa mu javi da je pogresno unet podatak i onda ga vratis}
{ lepo na zapamceno mesto }
until IOresult=0
{$I+} {vratis nazad I/O proveru}
Mishi.
PS: Ako ti ovo nije dovoljno javi, posto je sad jutro 6:30 i zurim na
posao. A i 'skocice' Ti u pomoc mislim i ostali.
* Origin: {SETNET} TĺKţDĺ Inc. BBS 64-572 Zrenjanin (38:111/111)
pascal.114postmast,
From: Stevan.Dejanovic@f119.n111.z38.setgate.setnet.co.yu (Stevan Dejanovic)
Subject: pomoc (chr)
Date: Mon, 23 Jan 1995 12:00:06
JS>
JS> Zdravo. Ako ti treba pomoc, javi se ponovo, ali malo preciznije: o
JS> kakvim fontovima se radi, da li radis u grafickom ili text modu, itd...
JS>
JS> Jole :Q...
JS>
Radim u grafickom modu i za pravljenje fontova koristio sam font editor
(samo za chr fontove i za paskal) neznam kako da navedem u programu koje
fontove treba da cita.
=> Mad Dog <=
... SENILE.COM found . . . Out Of Memory . . .
* Origin: ECSTASY BBS * Indjija * 022 53 218 * SETNet: (38:111/119)
pascal.115postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: pascal
Date: Sun, 29 Jan 1995 02:21:49
-=> Reply to: "Kristijan Lazic" <=-
"L> Probao sam sve one parametre iz tabele, medutim jock.
ESC[0m
Radi provereno ;-)
-=> MM <=-
... Hapiness is... CONNECT 19600/ARQ/HST/HST/V42BIS
* Origin: SETNet - Exodus, Beograd #137-477# from 22:00 to 09:00 (38:103/130)
pascal.116niklaus,
-> #111, vitez.kojaSubject: Re: '(*' '*)' menjaju 'š' 'ć' u paskalu. A u Cu?
(:> #=> ps Nažalost (po sve nas koji "trpimo" YUSCII) C to
(:> #=> nema, inače bi bilo manje
(:>
(:> Ima :) janko je slao detalje, čini mi se čak i jedan program u
(:> tom fazonu.
Ako može, daj da izvšimo jezičku reformu i - svi pređemo na YUSCII. (:
(: Sean :)
ps Nemojte po glavi! (:
pascal.117postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Sat, 28 Jan 1995 15:14:00
>From: "Zeljko Jovanovic" <zeljkoj@sezam.UUCP>
>Uz pomoc programa MONITOR iz Procomma za Windows moguce je
>posmatrati kodove svih karaktera koji se primaju ili idu na com port.
Radi li to pod DOS-om? Ja imam potrebu da utvrdim koje kodove jedan DOS
program salje modemu...
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.118zeljkoj,
-> #117, postmast> Radi li to pod DOS-om? Ja imam potrebu da utvrdim koje kodove
> jedan DOS program salje modemu...
Ne, MONITOR je deo Procomma za Windows.
pascal.119matan,
Kakvi su to ogromni .$$$ fajlovi koji mi se javljaju po TP
direktorijumima?
pascal.120andrejt,
-> #119, matanQ> Kakvi su to ogromni .$$$ fajlovi koji mi se javljaju po TP
Q> direktorijumima?
TP-ovi temp fajlovi. Mozes slobodno da ih obrises. Meni to ostavi
kad resetujem komp. usred TP-a.
pascal.121zeljkoj,
-> #119, matan> Kakvi su to ogromni .$$$ fajlovi koji mi se javljaju po TP
To su neki temp fajlovi koje možeš da obrišeš.
Najverovatnije si na neregularan način prekinuo rad TP-a (reset ili sl.)
pascal.122inikolic,
Zar je moguce da nema nikoga da mi odgovori na temu ASCII-a u modemskoj
komunikaciji. Ponovicu jos jednom, jer se mozda prva poruka provukla negde.
Pitanje je kako da se u ASCII-u preko modema generise pomeranje kursora po
ekranu, da se kursor pozicionira na odredjeni deo ekrana, da se obrise ekran...
i sve druge sekvence koje mogu doci u obzir.
IVAN
pascal.123kum.zoki,
-> #119, matanYou --> Kakvi su to ogromni .$$$ fajlovi koji mi se javljaju po
You --> TP direktorijumima?
Slobodno ih obrisi !!!
pascal.124vlador,
-> #119, matan> Kakvi su to ogromni .$$$ fajlovi koji mi se javljaju po TP
> direktorijumima?
Briši! :) To su privremeni fajlovi koji ostaju ako neregularno izađeš iz
TPa (restrikcija, reset).
---
■ VLADOR ■ Sine, ne otvaraj prozor! Baka ce da odleti!
pascal.125dcolak,
-> #122, inikolic│ Zar je moguce da nema nikoga da mi odgovori na temu ASCII-a u modemskoj
│ komunikaciji. Ponovicu jos jednom, jer se mozda prva poruka provukla negde.
│ Pitanje je kako da se u ASCII-u preko modema generise pomeranje kursora po
│ ekranu, da se kursor pozicionira na odredjeni deo ekrana, da se obrise
│ ekran... i sve druge sekvence koje mogu doci u obzir.
Preko ASCII nikako. Kraj priče ;)
Sledge DAMMIR!
pascal.126vitez.koja,
-> #122, inikolic#=> Pitanje je kako da se u ASCII-u preko modema generise
#=> pomeranje kursora po ekranu, da se kursor pozicionira na
#=> odredjeni deo ekrana, da se obrise ekran...
Možeš da pomeriš kursor ulevo (backspace, ASCII 8), i eventualno
da orbišeš ekran (form feed, ASCII 12). Takođe možeš da pomeriš
kursor na početak reda (carriage return, ASCII 13) i u sledeći
red (line feed, ASCII 10). To je sve što može da se uradi sa
ASCIIjem.
pascal.127janko,
-> #125, dcolak>│ Zar je moguce da nema nikoga da mi odgovori na temu
>│ ASCII-a u modemskoj komunikaciji. Ponovicu jos jednom,
>│ jer se mozda prva poruka provukla negde. Pitanje je kako
>│ da se u ASCII-u preko modema generise pomeranje kursora
>│ po ekranu, da se kursor pozicionira na odredjeni deo
>│ ekrana, da se obrise ekran... i sve druge sekvence koje
> mogu doci u obzir.
>
> Preko ASCII nikako. Kraj priče ;)
Daleko od toga "nikako." Ne širi dezinformacije. Vidi drugu poruku.
pascal.128janko,
-> #122, inikolic> Zar je moguce da nema nikoga da mi odgovori na temu
> ASCII-a u modemskoj komunikaciji. Ponovicu jos jednom, jer
> se mozda prva poruka provukla negde. Pitanje je kako da se
> u ASCII-u preko modema generise pomeranje kursora po
> ekranu, da se kursor pozicionira na odredjeni deo ekrana,
> da se obrise ekran... i sve druge sekvence koje mogu doci
> u obzir.
Pomoću čistog ASCII-ja se stvarno može štošta uraditi, čak, mogu se
napraviti "animirane" sekvence. Sezam, recimo, filtrira i ovakve
sekvence, inače bi recimo, korisnik u rezimeu mogao imati npr. "vozić"
koji se preveze sa kraja na kraj ekrana, pred očima čitača rezima, čak i
bez ANSI drajvera. Vrlo korisno, naravno. ;>>
ASCII kodovi 0-31 i 127 su tzv. "kontrolni karakteri." Dizajnirani još u
vreme kada se za konzole koristio teleprinter, nisu zamišlejni tako da
daju sve pogodnosti jednog, recimo, ekranskog editovanja, ali mnogo toga
mogu da urade, u zavisnosti od toga koliko ih određeni sistem podržava
(jer razni proizvođači su do različite mere podržavali ove kontrolne
znake).
Najbitniji znaci (decimalno) su:
8 - Backspace
9 - Tab
10 - Line Feed
12 - Form Feed
13 - Carriage Return
Na sistemima koji podržavaju ove znake, mogu se uraditi razni "efekti."
Komunikacioni programi obično, u no-ansi emulacijama, ako imitiraju
"prazan PC" interpretiraju ove znake ovako:
8 - Pomeranje kurzora jedno mesto nazad (*)
9 - Ispisivanje određenog broja razmaka, tako da se kurzor
pozicionira na sledeću "tab stanicu."
10 - Pomeranje kurzora jedan red niže, bez pomeranja na početak (**)
12 - Brisanje ekrana (ili, samo, pozicioniranje na (0,0)) (***)
13 - Pomeranje kurzora na početak istog reda (****)
Zvezdice znače da se ova ponašanja kod određenih programa mogu
konfigurisati jer se svi sistemi ne pridržavaju ASCII specifikacije.
PC se pridržava.
Evo i primera jedne "animacije", napisanog na Turbo Pascalu. Ako ovo
neko u današnje vreme 3d-rej-trejs-renderinga-na-kućnim-igračkama smatra
ozbiljnom temom, neka mu je sa srećom. :))
-------------
(*
primer plain ASCII "animacije" Janko 1995.
*)
uses crt;
(* primer sekvence za animaciju koja koristi PLAIN ASCII *)
const niz : string =
'oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#' +
#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8 +
' oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#'#8#8#8' oo#' +
#8#8#8' oo#'#8#8#8' oo#'#8#8#8' '#10#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8 +
'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '#8#8#8#8#8'#oo '
;
var i : integer;
begin
clrscr;
writeln('Pritisni neko dugme za početak');
i:=ord(readkey);
for i:=1 to length( niz ) do (* najobičnija petlja *)
begin
delay( 400 ); (* da bi se animacija videla,
znaci moraju da sporo pristižu *)
write( niz(. i .) ); (* jedan znak u svakom prolazu *)
end;
end.
pascal.129postmast,
From: glisin@galaxy.fon.bg.ac.yu (Ivan Glisin)
Subject: Re: pascal
Date: Sat, 4 Feb 1995 18:59:25 GMT
"Igor Nikolic" <inikolic@sezam.UUCP>:
>> Zar je moguce da nema nikoga da mi odgovori na temu ASCII-a u modemskoj
Pa zar ne bese ovde ostavljen spisak ANSI i VT100 sekvenci? To ti resava
problem oko upravljanja terminalom preko modema, naravno ako sa druge strane
ceka ANSI ili VT100 (ili jaci) terminal. To su obicne ESC sekvence koje se
samo prinuju na odredisni terminal i to je sve.
________________________________________
Ivan Glisin (glisin@galaxy.fon.bg.ac.yu)
pascal.130kenza,
Hi!
Imali neko f-je za pustanje audio cd-ova na cd rom-u?
Onih par najjednostavnijih.
Poz,
Kenza
pascal.131dcolak,
-> #127, janko│ Daleko od toga "nikako." Ne širi dezinformacije. Vidi drugu poruku.
Kako da pozicioniraš kursor na 0,0 ? Print i šta?
Sledge DAMMIR!
pascal.132inikolic,
Zahvaljujem na pomoci oko ASCII-a . Samo ima jos jedna ideja. brisanje ekrana
moze da se ostvari i skrolovanjem ekrana tako sto se posalje 25 puta #10
IVAN
pascal.133janko,
-> #131, dcolak> Kako da pozicioniraš kursor na 0,0 ? Print i šta?
write(#12)
To sam već bio napisao, ne paziš na času, sedi, jedan. ;>
pascal.134dcolak,
-> #133, janko│> Kako da pozicioniraš kursor na 0,0 ? Print i šta?
│
│ write(#12)
│
│ To sam već bio napisao, ne paziš na času, sedi, jedan. ;>
Profesore, da li si ti to proverio. Nešto mi se čini da ne radi...
Sledge DAMMIR!
pascal.135andrejt,
Iz teme BASIC poruka 5.46.
Q> Izasao sam iz stosa, pretpostavljam da bi trebalo samo:
Q> const imena=('Mile','Pera','Laza');
Ovo nije moguce u TP-u. Ono sto je moguce je ono sto si napisao
a to je array sa predefinisanom (al' sam se izrazio :)) vrednoscu.
Cini mi se da je ovde bila neka rasprava o ovome prosle godine.
pascal.136inikolic,
Da li je moguce, i kako da se OBJ ulinkuje u PASCAL. Ali sta je fora: na primer
u ASM-u se napravi ceo program i napravi se OBJ i onda da se taj program uvuce
u PASCAL, znaci kao da se pozove taj program u PASCAL-u, stim sto bi trebao da
on bude uvucen u PASCAL program. Znaci da se program startuje iz PASCAL-a i da
bude u njemu.
IVAN
pascal.137inikolic,
kako da se u ASCII-u kursor pozicionira na koordinate 0,0, u pitanju je
modemska komunikacija.
IVAN
pascal.138vitez.koja,
-> #134, dcolak#=> Profesore, da li si ti to proverio. Nešto mi se čini da
#=> ne radi...
Radi, radi. Ali samo ponegde ;)))
Sezam na CLS reaguje slanjem ASCII 12. Ako ti radi prozvana
komanda, onda funkcioniše.
Naravno, ANSI drajver za PC konzolu ne priznaje ovakve arhaizme :)
pascal.139vitez.koja,
-> #137, inikolic#=> kako da se u ASCII-u kursor pozicionira na koordinate
#=> 0,0, u pitanju je modemska komunikacija.
Ama, ti uopšte ne slušaš šta se priča :(
Ako hoćeš da pozicioniraš kursor (ASCII kursor??) na 0,0 I PRITOM
OBRIŠEŠ EKRAN, pošalješ ASCII 12. Ako nećeš da brišeš ekran, a
nalaziš se u prvoj (odnosno, nultoj) koloni ekrana, pošalješ
ASCII 13. Ako nećeš da brišeš ekran, a ne nalaziš se u prvoj
koloni ekrana, ne možeš da uradiš šta si naumio.
pascal.140dejanr,
-> #136, inikolic>> Da li je moguce, i kako da se OBJ ulinkuje u PASCAL.
Moguće je, koristi se opcija {$Limefajla}. Međutim, mora se dodati i
malo "paskalskih" deklaracija funkcije. Ovo sam dosta davno radio pa
se baš mnogo ne sećam kako se prenose argumenti itd, ali se svakako
sećam da se može uraditi i da u dokumentaciji ima primer :)
pascal.141inesic,
-> #135, andrejt> Q> const imena=('Mile','Pera','Laza');
>
> Ovo nije moguce u TP-u. Ono sto je moguce je ono sto si napisao
> a to je array sa predefinisanom (al' sam se izrazio :))
> vrednoscu. Cini mi se da je ovde bila neka rasprava o ovome
> prosle godine.
Ovo se piše kao
const imena:array[3] of string[4]=('Mile','Pera','Laza');
pascal.142vlador,
-> #136, inikolic> on bude uvucen u PASCAL program. Znaci da se program startuje iz PASCAL-a i
> da bude u njemu.
Ajde pročitaj šta si napisao pa pokušaj to reći u dve rečenice. :) Ovako je
teško zaključiti šta si _tačno_ tražio.
---
■ VLADOR ■ :) :)) :))) Ko se zadnji smeje, najsladje se smeje!
pascal.143mibak,
-> #136, inikolic> Da li je moguce, i kako da se OBJ ulinkuje u PASCAL. Ali sta je
Isto sam hteo da pitam mudre glave. Koristim MASM61 i prevodim uz direktivu
.pascal ali Turbo Paskal mi javlja invalid format OBJ?
pascal.144pedjak,
-> #136, inikolic> Da li je moguce, i kako da se OBJ ulinkuje u PASCAL. Ali sta je
> fora: na primer u ASM-u se napravi ceo program i napravi se OBJ i
> onda da se taj program uvuce u PASCAL, znaci kao da se pozove taj
> program u PASCAL-u, stim sto bi trebao da on bude uvucen u PASCAL
> program. Znaci da se program startuje iz PASCAL-a i da bude u njemu.
Može. Potrebno je samo taj tvoj program prevesti u modelu tpascal i
pri tome ulaznu proceduru u program označiti kao public. Zatim na
početku paskal programa kažeš
(*$L ImeOBJfajla*)
procedure ImeUlazneProcedure;external;far;
i to je to.
pascal.145andrejt,
-> #141, inesicQ> Ovo se pise kao
Q> const imena:array[3] of string[4]=('Mile','Pera','Laza');
Ma Ok. :) Ali to nije ono sto je on hteo (pogledaj na sta sam odgovarao).
On je hteo konstantu a ne ovo sto si ti napisao i sto nije konstanta jer
moze da se menja.
pascal.146kriss,
-> #144, pedjak˙˙ (*$L ImeOBJfajla*)
˙˙ procedure ImeUlazneProcedure;external;far;
Ja svojevremeno nisam dodavao FAR na kraju i radilo je. Da li siguran
da je obavezno? (u smislu da može da proguta, ali da posle može da
pravi i probleme)
pascal.147inesic,
-> #145, andrejt> Ma Ok. :) Ali to nije ono sto je on hteo (pogledaj na sta sam
> odgovarao). On je hteo konstantu a ne ovo sto si ti napisao i
> sto nije konstanta jer moze da se menja.
Pa niko ga i ne bije po ušima da je menja. Ja sam pokazao način
kako da u memoriji rezerviše tačno onoliko prostora koliko mu
treba, a to što može da se menja ne znači da i mora.
pascal.148inikolic,
-> #139, vitez.kojaPoznato mi je da ce da u TM-u #12 da izbrise ekran i da pozicionira kursor na
0,0 ali u MTE- on reaguje kao da je pristigao #10.
IVAN
pascal.149pedjak,
-> #146, kriss> Ja svojevremeno nisam dodavao FAR na kraju i radilo je. Da li
> siguran da je obavezno? (u smislu da može da proguta, ali da posle
> može da pravi i probleme)
Zavisi. Ako je asm procedura prevedena kao FAR, onda i u paskal
programu mora stajati far, inače za NEAR ne treba da stoji ništa.
Ova informacija u stvari govori samom kompajleru kakav skok da
izvrši pri pozivu rutine (far ili near)
pascal.150kriss,
-> #149, pedjak˙˙ Zavisi. Ako je asm procedura prevedena kao FAR, onda i u
˙˙ paskal programu mora stajati far, inače za NEAR ne treba da
˙˙ stoji ništa. Ova informacija u stvari govori samom kompajleru
˙˙ kakav skok da izvrši pri pozivu rutine (far ili near)
To za FAR je jasno, ali sam mislio da li paskal vrši neke intervencije
na samoj proceduri (.OBJ) ako mu kažeš FAR, a procedura je NEAR? :)
pascal.151bigbrada,
-> #146, kriss*>> Ja svojevremeno nisam dodavao FAR na kraju i radilo je. Da li
*>> siguran da je obavezno? (u smislu da može da proguta, ali da
*>> posle može da
Može 'ladno da proguta, a što se tiče problema ja ih još
nisam imao (i nadam se da će tako i da ostane :)
The.Great
pascal.152pedjak,
-> #150, kriss> To za FAR je jasno, ali sam mislio da li paskal vrši neke
> intervencije na samoj proceduri (.OBJ) ako mu kažeš FAR, a procedura
> je NEAR? :)
Ne, ali će doći do zakucavanja mašine prilikom povratka iz rutine,
jer će na steku ostati dva bajta više.
pascal.153vgenije,
Skinuo sam ono programce za pravljenje door-ova i za prelazak pascal programa
u door ali mi nije jasno kako da koristim ni jedan ni drugi program!
Npr napisao sam program.Kako da ga presaltujem u door pomocu onog
programa koji se nalazi u direktorijumu /bbs?
Ako gore pomenuto nije moguce kako da napisem program pomocu one
biblioteke example.pas
pozdrav
pascal.154sbrk,
Naleteo sam na neku biblioteku potprograma za TP koja koristi
neki STAKDUMP.OBJ koji (naravno) nije priložen :( To je napisao
neki Kim Kokkonnen i nalazi se na nekom TPro Bonus Disku ?!
Ima li neko ovo?
pascal.155dejanr,
Jeste li čuli za Delphi, zvani interno Borland Pascal 8.0? Nekoliko
pestih pitanja:
==========
pascal/turbo #4706, from abailey, 8680 chars, Fri Feb 17 21:33:25 1995
Comment to 4705.
----------
>I had been under the impression that Delphi was more of a code generator
>and less of a compiler.
It's both. The visual part lets you drag components around on a form. Once
you get them the way you want, you click on the code window and you have
the basic code written for you. Just add the meat of the application.
Then when the code is right you compile it just like BP7 and you have an
executable EXE You could take your current Turbo Pascal for Windows and
compile it too, if you didn't want to fool around with the forms.
But that's no fun!
Here's a descriptive doc from Borland on Delphi. Last update 1/16/95.
1. What is Delphi?
A) Delphi is an unreleased high performance visual client/server
Rapid Application Development (RAD) tool. A portion of the Delphi
technology was demonstrated at the BIC conference in Orlando on
June 7, and we have been traveling around the world demonstrating
Delphi at User Group functions and Trade Shows.
2. What is the Delphi target audience?
A) Delphi is targeted to corporate developers, departmental
programmers, vertical marketing consultants, VARs and independent
developers who want a client/server or desktop development tool
that is easy to use and that produces small, fast, single file
executables.
3. What are the major benefits of Delphi over competing products?
A) Delphi is the first tool that offers the high performance
of a native code compiler with the speedy turnaround time and
and hearty database access capability of a RAD client/server
applications. It provides greater productivity, code reuse and
performance than any competing product.
4. Will there be both a desktop and a client/server version of Delphi?
A) Yes, there will be both a client/server version of Delphi
and a standalone Desktop version for local PC development.
5. Will there be a 32-bit version?
A) Yes, there will be a 32-bit version of Delphi that will run on
Windows 95 (aka Chicago) and Windows NT.
6. Can Delphi link to C/C++ DLL's?
A) Yes. You can link to any C/C++ DLLs that use the Pascal or C
calling conventions.
7. What is the difference between the client/server version
and desktop version?
A) The client/server version of Delphi will include SQL links
for connections to Oracle, Sybase, Interbase, Informix, and ODBC.
It will also include Reportsmith and other team development tools
not found in the desktop version. The desktop version is
basically a subset of the client/server tool.
8. Will I be able to start with the desktop version and later
upsize my applications to the client/server version?
A) Yes.
9. How much will Delphi cost? Will there be upgrades?
A) Pricing for the product has not yet been announced.
10. When will Delphi be released?
A) No specific release dates have been announced. The first version of
Delphi will be available in the first quarter of 1995. The 32-bit version of
Delphi will be available after Windows 95 ships.
11. What language does Delphi use?
A) We wanted a structured object-oriented language that would
support our goals of reuse, easy to maintain code, and high
performance. Object Pascal met these goals better than other
language.
12. What is Object Pascal?
A) Object Pascal is Delphi's underlying language. It is similar
to Borland Pascal, but has been enhanced for use in Delphi's high-
performance visual environment. Object Pascal language features
include Exception Handling, Runtime type information, and far
virtual method tables.
13. Is Delphi a replacement for Borland Pascal or Turbo Pascal?
A) Delphi is a new product line and does not replace BP7. BP7
and TP7 will stay on the market.
14. Will Delphi write DOS programs? What about DPMI?
A) No. Delphi is a Windows-only development product.
15. Will Delphi run on NT and Windows 95?
A) Yes, you will be able to run 16-bit Delphi under Windows 95 and
Windows NT, but you will only be able to write 32-bit programs for
Windows 95 and NT with the 32-bit version of Delphi.
16. Will Delphi support Dynamic Data Exchange (DDE)?
A) Yes. Delphi has built-in controls that facilitate DDE.
17. Will Delphi support VBX's? What versions?
A) Yes. Delphi currently supports level 1-compliant VBXs. We
are looking into supporting higher-level VBX controls in a
later version.
18. Will Delphi support OLE 2.0?
A) Yes. Delphi has built-in controls that support OLE 2.0 containers.
The first release of Delphi will not have built-in support for OLE
servers or automation.
19. Will Delphi support OCX?
A) The first release of Delphi will not support OCX, but we are
planning to add support for OCX in a later release of Delphi.
20. Will Delphi support OpenDoc?
A) The first release of Delphi will not support OpenDoc, but we are
planning to add support for OpenDoc in a later release of Delphi.
21. Where can I find articles about Delphi?
A)
PC Magazine, November 1994
Windows Tech Journal, October 1994
PC Techniques, November 1994 & December/January 1995
The Pascal Magazine, August/September 1994 & October/November 1994
Windows Sources, December 1994 (Delphi vs. VB article)
InfoWorld, October 31, 1994 & November 21, 1994
22. Who do I contact if I want to be a beta tester?
A) Download SURVEY.ZIP from BPASCAL library 2 or the Borland Download
BBS (408-431-5096). Complete that application and follow the
directions for returning it to Borland. Please understand that we
receive many more beta test application than we have room for.
23. How can I get a copy of Delphi now?
A)There is one way to get Delphi right now:
Borland SI/VAR Connections is a program for System Integrators,
VARs, and Consultants who want a business relationship with Borland
for generating leads, getting access to technical information,
training, and early access to Delphi and other Borland software.
Cost is $1500 annually. Call 800-353-2211 or GO BORCONN on
CompuServe for information on Connections.
The Delphi Discovery program, a Delphi early-experience program, is now closed
due to a very large initial response. Thanks for your support!
24. How do I get a copy of Delphi if I live outside the USA?
Contact your local Borland distributor regarding Connections and/or
Discovery in your country.
25. Will Delphi compile my Borland Pascal or Turbo Pascal for
Windows code?
A) Yes, Delphi will compile your existing Object Windows Library
(OWL) and non-OWL Windows source code.
26. Is Delphi Borland Pascal 8.0?
A) No. Delphi is a new development tool targeted for Windows
only. We have not announced any other new products at this time and
will keep Borland Pascal 7.0 and Turbo Pascal 7.0 on the market for
DOS and DOS Protected Mode developers.
27. Does Delphi include the Borland Database Engine?
Delphi includes the same core database technology found in the Borland
Database Engine, dBASE 5.0 for Windows, and Paradox 5.0 for Windows.
Delphi doesn't come with the same C/C++ development tools as does the
Borland Database Engine 2.0.
28. What database formats does Delphi support?
The Borland Database Engine, which is built into Delphi, includes
built-in support for dBASE and Paradox tables and database servers
such as Oracle, Sybase, Interbase, Informix.
29. Does Delphi support ODBC?
A) Yes. The Borland Database Engine includes a socket for ODBC.
30. Does Delphi support SQL?
A) Yes. Delphi allows you to issue pass-through SQL commands to
database servers. You can also use SQL to query dBASE and
Paradox tables.
31. Is Delphi the same as the VBK?
A) The press has occasionally referred to the desktop version
of Delphi as the Visual Basic Killer (VBK). The client/server
version of Delphi also competes against PowerBuilder.
32. What is VCL?
A) VCL stands for Visual Component Library. It is the name for the
object library that Delphi is built on top of. VCL is constructed
from the ground up with 32-bit portability in mind, so your
applications will require little or no changes to source code when
compiling between 16 and 32-bit.
33. Can I generate DLL's with Delphi?
A) Yes. You can generate DLLs in Delphi that are callable not only
from other Delphi applications, but also from C, C++, Visual Basic,
Object PAL, or virtually any other Windows programming environment.
You can use VCL objects in your DLLs.
34. Is Delphi an interpreter or a compiler?
A) Unlike most competing products, Delphi generates true,
optimized, compiled executables and DLLs. There is no run-time
interpreter module (e.g. VBRUNx00.DLL) necessary for applications
developed in Delphi. Since the code is compiled into machine code,
performance is 10-20x faster than p-code interpreters such as
PowerBuilder and Visual Basic.
pascal.156drpr,
Haj,
pozdrav svima, ima li neko sors (tj. samo parče) koji
sortira jednostruko povezanu listu? Dugo to nisam radio pa sam
malo zarđao tako da molim nekog ko to ima da mi to baci ovde u
conf ili na mail. Ja to sad radim čistom silom dva puta
prolazim kroz listu i pravim novu ali znam da moze. Ajte da se
čiča ne muči :)
Cope
PS
Kako se pravi lista i sve ostalo znam toliko zarđao nisam.
pascal.157vlador,
-> #156, drpr> prolazim kroz listu i pravim novu ali znam da moze. Ajte da se
> čiča ne muči :)
Najbolje da pogledaš sors QuickSorta koji se deli uz TPascal.
---
■ VLADOR ■ Ne pucajte u pijanistu!
pascal.158janko,
-> #157, vlador>> prolazim kroz listu i pravim novu ali znam da moze. Ajte
>> da se
> Najbolje da pogledaš sors QuickSorta koji se deli uz
> TPascal.
žovek traži sortiranje LISTE.
Lista se mora tretirati kao i sekvencijalna datoteka. Dakle, mora
MERGESORT.
pascal.159dkolar,
Hteo bih, ne znam po koji put, da postavim pitanje, ako neko zna, kako da iz
paskala iscitam serijski broj IDE hard diska!
Ako je neko vec to uradio ili zna kako, neka mi poshalje poruku na privatnu
postu na ima dkolar.
cu
pascal.160djelovic,
-> #159, dkolar> Hteo bih, ne znam po koji put, da postavim pitanje, ako neko zna, kako da i
> paskala iscitam serijski broj IDE hard diska
Ta funkcija je ostavljena u ovoj temi početkom Januara ove godine. Potraži
malo.
pascal.161msmiljanic,
Kako da TP program koji koristi Crt unit 'prepozna' mod i
font? Resenje je unit PreCrt:
unit PreCrt;
interface
var mode: byte; { video mod }
implementation
begin
mode:= mem[$0000:$0449];
mem[$0000:$0449]:= 7; { 0, 1, 2, 3 ili 7 }
end.
Program treba da izgleda otprilike ovako:
program xyz;
uses ... , PreCrt, ... , Crt, ... ; { PreCrt ispred Crt-a }
...
begin
...
mem[$0000:$0449]:= mode; { Pre prvog rada sa ekranom }
...
end.
Sve funkcije i procedure Crt-a radice bez greske na celom
ekranu.
pascal.162jasicp,
Da li se objekat moze prostirati u vise unita ( valjda ne moze ). I sta
znaci kada DosError vrato kod 18 -> No more files ?
pascal.163vlador,
-> #162, jasicp> znaci kada DosError vrato kod 18 -> No more files ?
Baš to. :) Znači da je FindNext ispucao sve fajlove koji odgovaraju
traženom.
---
■ vlador ■ Kad ono mene tuku!...
pascal.164mmitrovic,
-> #155, dejanrŮ█▀█Ţ performance visual environment. Object Pascal language features
Ů█▀█Ţ include Exception Handling, Runtime type information, and
Ů█▀█Ţ far virtual method tables.
-------------------------
Ovo je novost. žemu bi ovo moglo da služi? Možda za direktno
bindovanje externih funkcija kao metoda?
Ů█▀█Ţ A) Unlike most competing products, Delphi generates true,
Ů█▀█Ţ optimized, compiled executables and DLLs. There is no run-time
Yes, napokon da vidim optimizaciju u pascal-u. :)
Ovaj Delphi je izgleda neka mešavina Paradox-a f/w i BP 7.0, pravljena
za razvoj baza. U principu, to će biti vrlo moćna "alatka". Pitanje je
samo kol'ko resursa arči? ;)
pascal.165mmitrovic,
-> #162, jasicpŮ█▀█Ţ Da li se objekat moze prostirati u vise unita ( valjda ne moze ). I sta
Ů█▀█Ţ znaci kada DosError vrato kod 18 -> No more files ?
a) Ne može iz prostog razloga što VMT tabele sadrže NEAR pointere,
pa svi virtualni metodi moraju biti u istom segmentu. Delphi će imati
FAR VMT, pa će možda i ovo moći da se izvede, mada sumnjam (identifier
missing).
b) DosError 18 obično vraćaju FindFirst i FindNext funkcije kada
u pretraživanom DIR-u više nema datoteka koje se traže.
pascal.166toca,
Potrebna mi je pomoć. Ukoliko nekog od vas ne mrzi, neka mi okaci ovde ili na
mail listing programa koji ocitava serijki broj hard diska, moze i pointer na
poruku. Znam da ce mi neki reci bilo je to u Racunarima, ali to ne radi.
THNX,
Toca
pascal.167dejanr,
-> #166, toca>> Znam da ce mi neki reci bilo je to u Racunarima, ali to ne radi.
Otkud ne radi??? Procedura je korektna i koliko znam radi, ja sam je
koristio mali milion puta. Za svaki slučaj, evo je još jednom, u nešto
luksuznijoj ali i slabije optimizovanoj formi:
function getserno(diskime: string): string;
var regs: registers;
buf: array[1..32] of byte;
b1, b2, b3, b4: longint;
function hex(ulaz: longint): string;
const hcif: array[0..15] of char =
('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
begin
hex:=hcif[ulaz div 16]+hcif[ulaz mod 16];
end;
begin
regs.ah:=$69;
regs.al:=0;
if diskime='' then regs.bl:=0
else regs.bl:=ord(upcase(diskime[1]))-ord('A')+1;
regs.ds:=seg(buf);
regs.dx:=ofs(buf);
intr($21, regs);
if regs.flags and $1 <> 0 then getserno:='-111' else
begin
b1:=buf[3]; b2:=buf[4]; b3:=buf[5]; b4:=buf[6];
getserno:=hex(b4)+hex(b3)+hex(b2)+hex(b1);
end;
end;
pascal.168mibak,
Zadatak: Potrebno je Grafički fajl urađen u nekom poznatom formatu
štampati iz pascala.
Probao sam sa TPPCX ali koristim TP 7.0 koji ne prepoznaje TPU fajlove
ovog programa.
Hvala.
/\/\|3
pascal.169darkovas,
Da li je moguce na Turbo Pascalu formirati niz od ~ 250 000 clanova.
Treba bi jer bi radio FFT za 512x512 tacaka.
Unapred zahvalan za svaku sugestiju!
pascal.170dejanr,
-> #169, darkovas>> Da li je moguce na Turbo Pascalu formirati niz od ~ 250 000 clanova.
Kao jedan niz, ne. Struktura je ograničena na 64 k.
Možeš eventualno da alociraš (na heap-u, sa getmem) više nizova po 64 K,
pa da onda procedura koja piše odluči na osnovu adrese u koji niz upisuje,
i na koji ofset.
pascal.171janko,
-> #165, mmitrovic> Ů█▀█Ţ Da li se objekat moze prostirati u vise unita (
> valjda ne moze ). I sta Ů█▀█Ţ znaci kada DosError vrato
> kod 18 -> No more files ?
>
> a) Ne može iz prostog razloga što VMT tabele sadrže NEAR
> pointere, pa svi virtualni metodi moraju biti u istom
> segmentu. Delphi će imati FAR VMT, pa će možda i ovo moći
> da se izvede, mada sumnjam (identifier missing).
VMT tabele nisu bitne. Ideja je puno prostija: Junit je hijerarhijski
viši od objekta.
A i čemu to, jedan objekat u više junita? Ne vidim potrebu za time?
pascal.172janko,
-> #169, darkovas> Da li je moguce na Turbo Pascalu formirati niz od ~ 250
> 000 clanova. Treba bi jer bi radio FFT za 512x512 tacaka.
> Unapred zahvalan za svaku sugestiju!
250Kx8 bajtova = 2 MB. Ako koristiš TP 6.0, ili imaš slabu mašinu, nema
šanse. Posle TP 6.0 nisam pratio. Pretpostavljam da TP for Win (nisam u
toku sa TP > 6.0) može da adresira više od 640 K barijere. U jednom nizu
sigurno opet ne možeš da imaš više od 64 KB, jer je kod sigurno 16-bitni
(eh, Windows). Ali zato niz nizova (nisam siguran), ili (sigurno) niz
pokazivača na nizove mora da prođe.
Da dodam i ja pitanje, ume li neko da izloži karakteristike u kratkim
crtama TP-ova koji su se pojavili posle 6.0? Delfi ne mora da pominje,
sad pročitah o njemu.
pascal.173zeljkoj,
-> #170, dejanr>>> Da li je moguce na Turbo Pascalu formirati niz od ~ 250 000
> clanova.
>
> Kao jedan niz, ne. Struktura je ograničena na 64 k.
Zato ako možeš predji na FORTRAN, niz može biti velik onoliko koliko imaš
memorije - nema ograničenja od 64 kB.
pascal.174mmitrovic,
-> #171, jankoŮ█▀█Ţ VMT tabele nisu bitne. Ideja je puno prostija: Junit je hijerarhijski
Ů█▀█Ţ viši od objekta.
To objašnjenje je čisto teorijsko, a ono što stvarno sprečava
postavljanje metoda u druge unite je činjenica da svaki unit u Pascalu
zauzima jeddan segment i da VMT tabele sadrže NEAR pointere. Ukoliko
bi deklarisao metod u objektu, a zatim ga ne definisao u IMP. sekciji
dobio bi poruku o grešci. Ne zato što je Unit viši od objekta, već
zato što Pascal ne dozvoljava "rupe" koje bi se popunile pri linkovanju.
Ů█▀█Ţ A i čemu to, jedan objekat u više junita? Ne vidim potrebu za time?
Ne vidim ni ja, ali je čovek pitao dal' može. Osim toga, u Delphi
info-u piše da će podržavati FAR VMT, a to može da služi samo za jedno:
da različiti metodi budu u različitim segmentima. Iako ne vidim svrhu
toga, sačekaćemo Delphi i videćemo zašto su ubacili. ;)
pascal.175mmitrovic,
-> #172, jankoŮ█▀█Ţ Da dodam i ja pitanje, ume li neko da izloži karakteristike u kratkim
Ů█▀█Ţ crtama TP-ova koji su se pojavili posle 6.0? Delfi ne mora da pominje,
- TP f/w 1.5 * Pravio je 16b aplikacije za Win3. Sadržao je
ObjectVision 1.0 (?). Nije radio pod ni za DOS/DPMI.
Valjda je na 5 disketa.
- TP 7.0 * Turbo Pascal 7.0. Radi samo za DOS, bez Win/DPMIa.
Sadrži TurboVision 2.0, kao i source-ove za većinu
TV unita. Dakle unapređeni TP6.0. Na 2 diskete.
- BP 7.0 w/obj * Borland Pascal 7.0 with objects. Radi na/za sve tri
platforme. Sadrži ObjectVision 2.0 i TurboVision 2.0
Sourceova NEMA, iako u DOCu piše da ih ima, ali rade
oni iz TP7.0. Win aplikacije su i dalje 16b, iako su
podržane neke 32b funkcije. Pod DPMI-om na raspolaganju
je do 16Mb, ali je veličina strukture i dalje
ograničena na 64K.
Tol'ko za sada.
pascal.176janko,
-> #174, mmitrovic> Ů█▀█Ţ VMT tabele nisu bitne. Ideja je puno prostija: Junit
> je hijerarhijski Ů█▀█Ţ viši od objekta.
>
> To objašnjenje je čisto teorijsko, a ono što stvarno
> sprečava postavljanje metoda u druge unite je činjenica da
> svaki unit u Pascalu zauzima jeddan segment i da VMT
> tabele sadrže NEAR pointere. Ukoliko bi deklarisao metod u
> objektu, a zatim ga ne definisao u IMP. sekciji dobio bi
> poruku o grešci. Ne zato što je Unit viši od objekta, već
> zato što Pascal ne dozvoljava "rupe" koje bi se popunile
> pri linkovanju.
Principi određuju implementaciju a ne obratno. Implementacija je samo
posledica unapred postavljenih ograničenja.
> Ne vidim ni ja, ali je čovek pitao dal' može. Osim toga, u
> Delphi info-u piše da će podržavati FAR VMT, a to može da
> služi samo za jedno: da različiti metodi budu u različitim
> segmentima
..samo kaže da će da VMT ulaz troši 4 bajta. E sad, da li je to klasičan
FAR pointer ili šta bilo, videćemo, ali, ko kaže da možda i juniti neće
biti veći od segmenta (što je čisto implementacioni detalj?)
pascal.177mmitrovic,
-> #176, jankoŮ█▀█Ţ Principi određuju implementaciju a ne obratno. Implementacija je samo
Ů█▀█Ţ posledica unapred postavljenih ograničenja.
Pazi, mi sad ovde možemo mesecima da raspravljamo šta je starije:
kokoška ili jaje. Delom se i slažem sa tobom. Međutim, ja se primarno
bavim sistemskim programiranjem i ono što sis.prog. definitivno ne
podnosi su teorijska ograničenja. Mene ništa, sem nedostatak vremena,
ne sprečava da napišem Pascal kojem bi objekat bio hijerarhijski
iznad unita. Ne bi to, naravno, bilo nešto specijalno, ali bi
funkcionisalo. :) žisto da ti objasnim da u nekim slučajevima teorija
sputava praktičnu primenu.
Ů█▀█Ţ ..samo kaže da će da VMT ulaz troši 4 bajta. E sad, da li je to klasičan
Ů█▀█Ţ FAR pointer ili šta bilo, videćemo, ali, ko kaže da možda i juniti neće
Ů█▀█Ţ biti veći od segmenta (što je čisto implementacioni detalj?)
Citiram:
A) Object Pascal is Delphi's underlying language. It is similar
to Borland Pascal, but has been enhanced for use in Delphi's high-
performance visual environment. Object Pascal language features
include Exception Handling, Runtime type information, and
far virtual method tables.
-------------------------
Nigde se ne pominje 4 bajta, osim toga u protected modu 32b pointer je
NEAR pointer. FAR pointer zauzima 6 bajtova (16b selektor + 32b offset).
Što se tiče multi-segmentnih unita, to baš i nije za očekivati. Prvo,
zato što bi bilo veoma teško odrediti šta ide u koji segment, a bilo bi
puno očekivati od korisnika da to manuelno označi; drugo, u Prot. modu
segmenti su ograničeni na dohvat 32b offseta, znači 4Gb. Ne znam kol'ko
dug program da pišeš, sigurno će stati u jedan segment. Sve zajedno sa
DOSom, WindowSOM, alatkama, backupom diska i gomilom slika. :)
pascal.178ilotina,
Kako da disejblujem ctrl-c, ranije sam znao ;)
Ivan
pascal.179postmast,
From: Knezovic.Bojan@f133.n103.z38.setgate.setnet.co.yu (Knezovic Bojan)
Subject: novi TP?
Date: Sat, 04 Mar 1995 11:53:02
Hi!
Cuo sam da treba da izadje novi Turbo Pascal, objektni cini mi se?
Jel moze neko da mi kaze nesto podrobnije o njemu, rekose da ce biti cudo
nevidjeno;)) Kada da se ocekuje i kako ce se zvati?
* Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.180vitez.koja,
-> #175, mmitrovic#=> ObjectVision 1.0 (?).
ObjectWindows - dalji rođak Turbo Vision-a. ObjectVision je nešto
sasvim drugo.
pascal.181postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Memory
Date: Thu, 09 Mar 1995 18:55:10
SA> Zanimalo bi me samo koliko bitova (ili bajtova?) zauzima u memoriji
SA> jedna promenljiva tipa Boolean?
SA> Ili,jos bolje,da ne bude zabune,da mi neko lepo kaze kako TP
SA> rasporedjuje Boolean promenljive u memoriji? :)
Trebalo bi da zauzima samo jedan bit, posto koliko znam u Turbo
Paskalu ima poseban Boolean tip koji zauzima ceo bajt.
... Fatal ERROR! Missing power supply!
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.182postmast,
From: Sebastian.Adanko@f107.n111.z38.setgate.setnet.co.yu (Sebastian Adanko)
Subject: Memory
Date: Tue, 28 Feb 1995 21:51:17
Hi narode!
Zanimalo bi me samo koliko bitova (ili bajtova?) zauzima u memoriji
jedna promenljiva tipa Boolean?
Ili,jos bolje,da ne bude zabune,da mi neko lepo kaze kako TP rasporedjuje
Boolean promenljive u memoriji? :)
10x in advance,
Phuzzy Logik
... Jump out of range error ???
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.183postmast,
From: bear@setnet.co.yu (Attila Csipa)
Subject: Memory
Date: Thu, 09 Mar 1995 00:08:01
SA> Zanimalo bi me samo koliko bitova (ili bajtova?) zauzima u memoriji
SA> jedna promenljiva tipa Boolean?
SA> Ili,jos bolje,da ne bude zabune,da mi neko lepo kaze kako TP
SA> rasporedjuje Boolean promenljive u memoriji? :)
Po defaultu 1 boolean zauzima jedan bajt, zbog brze operacije. Ako se tip
definise kao PACKED BOOLEAN, onda se radi bitovima, ali se (kao) rad
usporava.
... Radni sto je korpa za smece sa fiokama.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.184postmast,
From: Sebastian.Adanko@f107.n111.z38.setgate.setnet.co.yu (Sebastian Adanko)
Subject: Memory
Date: Wed, 08 Mar 1995 20:55:30
Hail to you, oh great Attila of the noble house Csipa !
SA> Zanimalo bi me samo koliko bitova (ili bajtova?) zauzima u memoriji
SA> jedna promenljiva tipa Boolean?
AC>
AC> Po defaultu 1 boolean zauzima jedan bajt, zbog brze operacije. Ako se
AC> tip definise kao PACKED BOOLEAN, onda se radi bitovima, ali se (kao)
AC> rad usporava.
Posto mi je usteda memorije ovog puta izuzetno bitna,da li bi mogao
da me prosvetlis i kazes kako da definisem promenljivu kao packed?
(mrzi me da ceprkam po helpu,uvek mi odnese po pola sata ;)
Nije valda da samo kazem nesto kao var I:Boolean(packed) ili nesto
slicno??
Phuzzy Logik
... I just took an IQ test. The results were negative.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.185dejanr,
-> #184, postmast>> Posto mi je usteda memorije ovog puta izuzetno bitna,da li bi mogao
>> da me prosvetlis i kazes kako da definisem promenljivu kao packed?
>> (mrzi me da ceprkam po helpu,uvek mi odnese po pola sata ;)
>> Nije valda da samo kazem nesto kao var I:Boolean(packed) ili nesto
U Turbo Pascalu nikako - reč packed je podržana, ali nema dejstvo (piše
u uputstvu).
Dakle, napravi niz flags[1..10000] of byte a onda funkcije setflag,
clearflag i testflag koji primaju argument između 1 i 80000 i onda
maskiraju odgovarajući bit u odgovarajućem elementu flags registra.
Eventualno se ove procedure mogu napraviti na asembleru, ako je i
vreme kritično; inače, lepo rade i na TP-u.
pascal.186jasicp,
Sta znaci kada TP7.0 izbaci run time error 215 ? Imam dokumentaciju
za 6.0 a tamo ovoga nema.
pascal.188ivantod,
-> #186, jasicpHelp kaže ovako:
Run-time error 215: Arithmetic overflow error
This error is reported by statements compiled in the {$Q+} state when an
integer
arithmetic operation caused an overflow, such as when the result of the
operation was
outside the supported range.
Nadam se da pomaže...
Ivan
pascal.189jasicp,
Da li TP7.0 ima bag u Editors unitu (ili nekom drugom koji ovaj
koristi) ? Naime, kada aktiviram TFileWindow odnosno TEditor, text se lepo
prikaze, ali samo dok ne pritisnem backspace. Tada iskoci run time error
215. Kod editors iz TP6.0 nema greske, radi normalno (ali on koristi
buffers iz TP6.0 kojih opet nema u TP7.0.
Ima li grupe za OOP Pascal ? Ako ima pitam za prijem, ako nema
otvoricu je pa molim interesente na mail. Mislim samo za OOP, ne i ostalo.
pascal.190janko,
-> #177, mmitrovic> funkcionisalo. :) žisto da ti objasnim da u nekim
> slučajevima teorija sputava praktičnu primenu.
Ne slažem se, u vezi sputavanja -- ograničenja vidljivosti su velika
blagodet modernog programiranja, a ne mana. Zato i postoje juniti,
moduli, objekti. Ako ti sve treba "preko granica" piši i dalje u
Fortranu sa COMMON područjima.
> Nigde se ne pominje 4 bajta, osim toga u protected modu
> 32b pointer je NEAR pointer. FAR pointer zauzima 6 bajtova
> (16b selektor + 32b offset).
Međutim, s obzirom da ništa još ne prave "stvarno tridesetdvobitno" vrlo
verujem da će sizeof(farvirtualptr) ipak biti 4 bajta -- tj. da koriste
starinsku terminologiju. Da dočekamo da vidimo? :)
pascal.191mmitrovic,
-> #180, vitez.kojaŮ█▀█Ţ ObjectWindows - dalji rođak Turbo Vision-a. ObjectVision je nešto
Ů█▀█Ţ sasvim drugo.
U pravu si. :) Mislim jedno, pišem drugo.
Što se tiče kompleksnosti, TurboVision je mnogo kompleksniji
od ObjectWindowsLibrary-a, iako se misli da je obrnuto (valjda zato
što OWL radi pod Windowsom). ;)
Pod DOSom je sve trebalo uraditi od nule, sve osmisliti, kreirati
visualne elemente, grupe, podršku za Evente. ObjectWindows se 100%
oslanja na Windows ili BWCC za visualne elemente i Evente, dok mu sve
podatke (pr. elementi liste) drži Windows; u samim objektima nema ništa
sem poziva WinAPIa.
pascal.192mmitrovic,
-> #186, jasicpŮ█▀█Ţ Sta znaci kada TP7.0 izbaci run time error 215 ? Imam dokumentaciju
Ů█▀█Ţ za 6.0 a tamo ovoga nema.
215: Arithmetic overflow error
Reported by statements compiled with š$Qć when an integer arithmetic
operation caused an overflow or the result was outside the supported
range.
In the $Q+ state, certain integer operations are checked for overflow,
such as: +, -, * Abs, Sqr, Succ, and Pred
Dakle, integer overflow. Ako ti je overflow bio namera, stavi $Q-.
Sve greške imaš u helpu, pod stavkom Errors. Tu se nalaze i RunTime
greške i Compiler greške podeljene u dve grupe. Dakle, ubuduće Shift-F1.
pascal.193mmitrovic,
-> #190, jankoŮ█▀█Ţ Ne slažem se, u vezi sputavanja -- ograničenja vidljivosti su velika
Ů█▀█Ţ blagodet modernog programiranja, a ne mana. Zato i postoje juniti,
Ů█▀█Ţ moduli, objekti.
Ne slažem se sa tobom, i evo ti konkretan primer. Sinulo mi pre neki
dan dok sam razmišljao čemu bi FVMT koristilo. Uzmimo na primer
(nepostojeću) klauzulu "substitute". Primer:
procedure TView.HandleEvent(var Event:TEvent); virtual; substitute;
begin ... end;
Šta bi ovo radilo? Zamenilo bi kod standardnog HandleEventa ovim, i to
ne ne kraju hij. stabla, već na samom početku, tako da bi ubuduće svi
pozivi starog metoda ustvari ulazili u ovaj novi metod. Tehnički ovo
uopšte nije teško izvesti. Ako je metod virtuelan, izmeni se VMT tabela
objekta TView, ako nije onda se pri linkovanju koristi nova adresa. Pošto
će novi metodi sigurno biti u drugim segmentima, potrebna je FVMT.
žemu sve ovo služi (a uz to i ne radi :)
Jedna od najvećih primena bi bila u dijagnostici. Sa ovim može lako da
se izmeni ponašanje čitavog stabla klasa, menjanjem jeddnog metoda. Mogu
na primer izmeniti ClearEvent, HandleEvent, SetState TView objekta tako da
javljaju nekoj funkciji kad god instanca obradi ili primi Event, kad god
se promeni stanje objekta (izgubi fokus, itd). Pošto će biti izmenjen top
objekat, a sve dobro organizovane objektne hijerarhije (kakav je i TV)
pozive prosleđuju uz stablo, svi će ti pozivi doći do promenjenih metoda.
Postoji još par primena koje mi se vrte kroz glavu, al' ih još nisam
smisleno formulisao. :)
Naravno cela ova priča podrazumeva da znaš OOPascal i funkcionisanje
TurboVizije. I očigledno ova tehnika krši sva teorijska ograničenja, a
ipak je blagodet. B)
Ů█▀█Ţ Ako ti sve treba "preko granica" piši i dalje u Fortranu sa COMMON
područjima.
Arghh, a tako mi je lepo počeo dan. :(
FORTRAN & BASIC out of my life. I mean it. Ne volim ih, mrzim ih, uh.
Znam da mašinci ne mogu bez njega, al' ne moraju svi da pate zbog toga,
mrzeo sam ga u srednjoj, mrzeću ga i sad kad me budu terali da ga učim
ponovo. Jednostavno nema te stvari koju može fortran a ne može pascal ili
C.
Ů█▀█Ţ Međutim, s obzirom da ništa još ne prave "stvarno tridesetdvobitno" vrlo
Ů█▀█Ţ verujem da će sizeof(farvirtualptr) ipak biti 4 bajta -- tj. da koriste
Ů█▀█Ţ starinsku terminologiju. Da dočekamo da vidimo? :)
Nema potrebe. :) Citiram opet:
5. Will there be a 32-bit version?
A) Yes, there will be a 32-bit version of Delphi that will run on
--------------
Windows 95 (aka Chicago) and Windows NT.
10. When will Delphi be released?
A) No specific release dates have been announced. The first version of
Delphi will be available in the first quarter of 1995. The 32-bit
version of Delphi will be available after Windows 95 ships.
----------------------
15. Will Delphi run on NT and Windows 95?
A) Yes, you will be able to run 16-bit Delphi under Windows 95 and
Windows NT, but you will only be able to write 32-bit programs for
Windows 95 and NT with the 32-bit version of Delphi.
Dakle pod Windowsom 95 i NTom radiće 32b verzija koja će moći da pravi
32b aplikacije. Ipak, ono >after Win95 ships< ne zvuči oduševljavajuće,
ipak je to Microsoft. ;)
pascal.194jasicp,
-> #163, vlador> Bas to. :) Znaci da je FindNext ispucao sve fajlove koji odgovaraju
> trazenom.
Znam aili uopste ne upotrebljavam spomenutu naredbu vec samo assign +
reset za textualni fajl :). Mora da mi jesto drugo. Mada mi ne pada na
pamet sta. Smesno.
pascal.195jasicp,
-> #192, mmitrovic> Dakle, integer overflow. Ako ti je overflow bio namera, stavi $Q-.
> Sve greske imas u helpu, pod stavkom Errors. Tu se nalaze i RunTime
> greske i Compiler greske podeljene u dve grupe. Dakle, ubuduce Shift-F1.
Ne, nego sam se vijao sa nekom bubom u implementaciji editora. Pojavi
se kada pritisnem backspace. Dolazi do problema u editors unitu, pa je
verovatno nesto malo komlikovanije.
Problem je u Shift-F1. Ili sam skroz izlapeo ili zaista nema ugradjena
objasnjenja za Run time greske. Sve je ostalo normalno osim ovog ( radim
mnogo godina u ovome :) stvarno nije u tome problem ) pa mi nije jasno da
li stalno nesto previdjam :)).
pascal.196vlador,
-> #194, jasicp> reset za textualni fajl :). Mora da mi jesto drugo. Mada mi ne pada na
> pamet sta. Smesno.
Baš smešno. :) Baci parče koda, ovo bi moglo biti interesantno.
pascal.197postmast,
From: Sebastian.Adanko@f107.n111.z38.setgate.setnet.co.yu (Sebastian Adanko)
Subject: Die & Run
Date: Thu, 09 Mar 1995 23:01:39
Hi!
Svojevremeno je neko ovde objasnio kako ima neki fazon koji dopusta
da se iz Turbo Pascala (7.0) postigne to da neki program stane,
istovremeno pustajuci u rad neki drugi program.Ne mislim na Exec,
nego na to da se bas,redovno,prekine i onda pusti onog drugog.
Ali,ako se moze postici samo opasnim hakerskim cackanjem onda mi
ne treba,jer ne bih da komplikujem i ovako komplikovan program ;)
Samo mi se cini kao da je neko nasao 'zvanicno' resenje.
CU & 10x in advance...
Phuzzy Logik
... Who was Casper the Friendly Ghost before he died?
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.198postmast,
From: Kliment.Andreev@f108.n108.z38.setgate.setnet.co.yu (Kliment Andreev)
Subject: Memory
Date: Sat, 11 Mar 1995 00:15:00
PS> SA> Zanimalo bi me samo koliko bitova (ili bajtova?) zauzima u memoriji
PS> SA> jedna promenljiva tipa Boolean?
PS> SA> Ili,jos bolje,da ne bude zabune,da mi neko lepo kaze kako TP
PS> SA> rasporedjuje Boolean promenljive u memoriji? :)
PS> Trebalo bi da zauzima samo jedan bit, posto koliko znam u Turbo
PS> Paskalu ima poseban Boolean tip koji zauzima ceo bajt.
PS> ... Fatal ERROR! Missing power supply!
Evo ssta kazze original uputstvo za TP6.0:
"A Boolean type is stored as a byte that can assume the value
of 0 (False) or 1 (True)."
KAN
■ SPEED 1.30 [NR] ■ Speed Read or die!
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.199postmast,
From: bear@setnet.co.yu (Attila Csipa)
Subject: Memory
Date: Sat, 11 Mar 1995 00:38:49
AC> Po defaultu 1 boolean zauzima jedan bajt, zbog brze operacije. Ako se
AC> tip definise kao PACKED BOOLEAN, onda se radi bitovima, ali se (kao)
AC> rad usporava.
SA>
SA> Posto mi je usteda memorije ovog puta izuzetno bitna,da li bi mogao
SA> da me prosvetlis i kazes kako da definisem promenljivu kao packed?
SA> (mrzi me da ceprkam po helpu,uvek mi odnese po pola sata ;)
SA> Nije valda da samo kazem nesto kao var I:Boolean(packed) ili nesto
SA> slicno??
Uf, kad sam ja tako poslednji put radio u paskalu... Ako me secanje ne
vara, trebalo bi da ide u stilu VAR I:ARRAY[1..8] OF PACKED BOOLEAN, ili
PACKED ARRAY[1..8] OF BOOLEAN. Eksperimentisi malo, valjda ces pronaci :)
... Artificial Intelligence is no match for natural stupidity
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.200postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Memory
Date: Sat, 11 Mar 1995 09:21:30
PS> SA> Zanimalo bi me samo koliko bitova (ili bajtova?) zauzima u memoriji
PS> SA> jedna promenljiva tipa Boolean?
PS> Trebalo bi da zauzima samo jedan bit, posto koliko znam u Turbo
PS> Paskalu ima poseban Boolean tip koji zauzima ceo bajt.
KA> Evo ssta kazze original uputstvo za TP6.0:
KA> "A Boolean type is stored as a byte that can assume the value
KA> of 0 (False) or 1 (True)."
U pravu si i u mom uputstvu to pise. Nisam uspeo da pronadjem ali
sam siguran da sam negde video da TP ima poseban Boolean tip koji
zauzima bajt (mozda word?) i to mi se ucinilo zanimljivo ali nisam
nasao upotrebnu vrednost. Zbog toga sam ovak iz glave zakljuco da
verovatnoobican Boolean koristi memoriju na nivou bita, ali sam se
prevario.
... Don't shoot! There are people too.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.201postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Memory
Date: Sat, 11 Mar 1995 09:21:31
AC> Uf, kad sam ja tako poslednji put radio u paskalu... Ako me secanje
AC> ne vara, trebalo bi da ide u stilu VAR I:ARRAY[1..8] OF PACKED BOOLEAN,
AC> ili PACKED ARRAY[1..8] OF BOOLEAN. Eksperimentisi malo, valjda ces
AC> pronaci :)
U Turbo Paskalu je rec PACKED ostavljena samo radi kompatibilnosti,
a inace nema funkciju posto se nizovi uvek pakuju.
... Don't shoot! There are people too.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.202zeljkoj,
-> #197, postmast> Svojevremeno je neko ovde objasnio kako ima neki fazon koji
> dopusta da se iz Turbo Pascala (7.0) postigne to da neki
> program stane,
Pitanje je postavio dejanr u PC.SOFT, poruka 9.6. (13.11.1989.)
Odgovori su u porukama 9.7 i 9.24.