home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 July
/
Chip_2001-07_cd1.bin
/
ctenari
/
Cerny
/
INSTALLF.EXE
/
rar
/
FREETFB
/
DOC
/
POPIS.DOC
< prev
next >
Wrap
Text File
|
2001-04-12
|
12KB
|
252 lines
~16|0|05 √DOC\LOGO21√ T U R B O F A S T
~16|0|05 √DOC\LOGO22√ B U I L D I N G
~16|0|05 √DOC\LOGO23√ P R O 2 5 6
Programovací jazyk Turbo Fast Building Pro256 (dále jen TFBP)
je zcela nov∞m v∞vojov∞m prost²edím pro tvorbu aplikací, kter∞
màºe b∞t provozován pod operaƒním systémem, kter∞ respektuje DOS
(MSDOS, DRDOS, Windows, Linux, OS2 a pod.)
TFBP a aplikace v n╪m vytvo²ené pracují v grafickém pros²edí
v rozliτení 800x600b ve 256ti barvách. Grafické prost²edí je zcela
vlastní a obsahuje vτechny pot²ebné procedury a funkce pro tvorbu
ikonov∞ch i textov∞ch tlaƒítek, samostatn∞ch oken, v∞pisu textov∞ch
souborà, direktoriá²e, nabídek, dialogà, menu a podobn╪. Pouºívá
také vlastní fonty a formáty obrázkà, které mohou b∞t v palet╪
256ti barev.
Aƒkoli TFBP pouºívá kompilátor TP, obsahuje vlastní klíƒová slova
a operátory, které jsou od TP odliτné. P²ekladaƒ TFBP nap²íklad
vàbec nepouºívá n╪která klíƒová slova TP a nahrazuje je vlastními
klíƒov∞mi slovy. P²esto je moºné vkládat do zdrojového textu ƒásti
psané v jazyku TP nebo ASM pomocí direktivy #NoTranslation. Od této
verze byl editor TFBPro256, na základ╪ p²ipomínek a nám╪tà jeho
dosavadních uºivatelà, vybaven moºností nastavení programovacího
jazyka TFBPro a Turbo Pascal. Uºivatel má tak moºnost pln╪ vyuºít
obou jazykà v jednom editoru. Podrobn╪jτí informace naleznete
v ƒásti |1|09Nastavení editoru.
Protoºe vàbec nepouºívá slovo begin, end, then, of, a do, rozliτuje
klíƒová slova na tzv. |1|09jednorázová |0|12a |1|09sekvenƒní.
√INVICO\OBLOK√ |1|09Jednorázová slova |0|12jsou ta, za kter∞mi ihned následuje dalτí
klíƒové slovo/slova, nebo p²íkaz. Tato slova se p²eváºn╪ uvád╪jí
na |1|09jednom ²ádku zdrojového textu.|0|12 Znamená to tedy, ºe provedení
p²íkazà probíhá následn╪ a není uzav²eno do ºádné delτí sekvence.
Jednorázová slova jsou |1|09next, let |0|12a |1|09from. |0|12Za t╪mito slovy
musí následovat dalτí p²íkaz nebo p²íkazy.
√INVICO\OBLOK√ |1|09Sekvenƒní slova |0|12se naopak pouºívají v p²ípad╪, kdy za prvním
a rozhodujícím slovem |1|12následuje více dalτích slov a p²íkazà |0|12a je
proto nutné |1|12oznaƒit konec této sekvence.
Sekvenƒní slova jsou |1|09part, :let> |0|12a |1|09:loop>. Za znak > (pravá
lomená závorka) lze umístit struƒnou poznámku, která vτak musí b∞t ukonƒena
op╪t znakem > (pravou lomenou závorkou).
|1|05Poznámka vτak nesmí obsahovat mezery, které je moºné nahradit
|1|05podrtºítkem (_).
|1|05Kaºdá sekvence musí b∞t oznaƒena ukonƒovacím slovem, |0|12které màºe
b∞t bu╘to univerzální |1|05:part<|0|12, nebo p²ísluτné ke slovu, kter∞m byla
sekvence zahájena.
√INVICO\OBLOK√ |1|09Ukonƒovací slova |0|12zaƒínají stejn∞m slovem, kter∞m byla sekvence
|1|09zahájena. |0|12P²ed slovo se musí zadat znak dvouteƒky a ukonƒit znakem
|1|09levé lomené závorky (<)
|1|05Za takto uvedená ukonƒovací slova se jiº neuvádí st²edník (;)
Za znak < lze umístit struƒnou poznámku, která vτak musí b∞t ukonƒena op╪t
znakem <.
|1|05Poznámka vτak nesmí obsahovat mezery, které je moºné nahradit _.
P²íklad jednorázov∞ch slov:
if FindAdr[1]='\' |1|09From |0|12Konec;
if Maska |1|09next |0|12LoadLmg(10,80,'OBR.LMG',0,0);
if A = 200 |1|09let |0|12B : (A * 10);
for i,1/10 |1|09let |0|12B : (i + 15);
P²íklad sekvenƒních slov:
|1|09if |0|12LeftMousButton |1|09part
CursorOff;
if PosIcoLine(1) next InfoIcoLine(1);
CursorOn;
|1|09:if<
|1|09for |0|12i,length(FindAdr)/1 |1|09part
if FindAdr[i]='\' From Konec;
|1|09:for<
|1|09:let>
CSouc : Cislo - Odecet;
Prevod : NumToStr(CSouc);
NumDed : RCel + ',' + RDes;
|1|09:let<
|1|09while |0|12ResOk |1|09part
if DirInfo.Attr=16 next
if DirInfo.Name=FindPath let PathExist : TRUE;
FindNext(DirInfo);
|1|09:while<
|1|09with |0|12R |1|09part
let X : 10;
let Y : 20;
|1|09:with<
|1|09case |0|12Vyber |1|09part
case>1 PisAdresy;
case>2 PisTelefony;
|1|09:case<
Vτimn╪te si, ºe ani v jednom p²íkladu není pouºito ºádného slova,
které oznaƒuje zaƒátek sekvence (v TP by to byl begin). U sekvenƒních
p²íkazà se |1|12zaƒátek sekvence neoznaƒuje nikdy|0|12, nebo£ je jiº obsaºen ve
slov╪ |1|09part. |1|12Uvede se pouze oznaƒení konce sekvence.
P²esto se oznaƒení zaƒátku a konce sekvence v TFBP pouºívá. K tomu
slouºí symbol |1|09:> |0|12pro zaƒátek a |1|09:< |0|12pro konec.
Tyto symboly se pouºívají pouze tam, kde není moºné pouºít sekvenƒních
slov. Je to p²edevτím p²i oznaƒení zaƒátku procedury nebo funkce.
Za tyto symboly |1|12je moºné vkládat i struƒné poznánky, |0|12které vτak
|1|12musí b∞t uzav²eny stejn∞m sm╪rem jako symbol zaƒátku nebo konce.
Tato moºnost platí pro vτechna ukonƒovací slova, která zaƒínají znakem
dvouteƒky a konƒí znakem <.
|1|05Poznámka vτak nesmí obsahovat mezery, které je moºné nahradit _.
P²íklad oznaƒení zaƒátku:
|0|09Main Pocitani;
|1|09:>poƒítání> |0|12oznaƒuje zaƒátek procedury Pocitani
.........
t╪lo procedury
.........
|1|09:<poƒítání< |0|12oznaƒuje konec procedury Pocitani
Symbol |1|09> vpravo |0|12oznaƒuje zaƒátek a symbol |1|09< vlevo |0|12konec.
|1|12P²ed symbolem musí b∞t vºdy znak dvouteƒka.
|1|05Za t╪mito symboly se st²edník jiº neuvádí !
√INVICO\OBLOK√ Nová slova jsou také pro ²eτení situace, kdy sekvence nabízí více
moºností dalτího postupu programu. Známé slovo z TP |1|12else |0|12 je v TFBP
dopln╪no jeτt╪ t²emi nov∞mi slovy: |1|09other, :otherdo> |0|12a |1|09:toother<.
Jejich pouºití nejlépe pochopíme z následujících ukázek.
P²íklad 1. Slovo |1|09other
V TFBP: v TP:
for a,1/10 part for a := 1 to 10 do
if a = 5 part begin
b == (a*10); if a = 5 then
c == (a*5); begin
other b := a * 10;
b == (a+10); c := a * 5;
c == (a+5); end
:if<a=5< else
:for<a< begin
b := a + 10;
c := a + 5;
end;
end;
Protoºe slovo |1|12:otherdo> |0|12oznaƒuje zaƒátek sekvence, uvádí se p²ed slovo
dvouteƒka a za slovem musí b∞t znak > pro zaƒátek.
P²íklad 2. Slovo |1|09:otherdo>
V TFBP: v TP:
for a,1/10 part for a := 1 to 10 do
if a=5 let b : (a*10) begin
:otherdo> if a = 5 then b := a * 10
b == (a+10); else
c == (a+5); begin
:other< b := a + 10;
:for<a< c := a + 5;
end;
end;
Protoºe slovo |1|12:toother< |0|12oznaƒuje konec sekvence, uvádí se p²ed slovo
dvouteƒka a za slovem musí b∞t znak < pro konec.
P²íklad 3. Slovo |1|09:toother<
V TFBP: v TP:
for a,1/10 part for a := 1 to 10 do
if a=5 part begin
b == (a+10); if a = 5 then
c == (a+5); begin
:toother< b := a + 10;
b == (a*10); c := a + 5;
:for<a< end
else
b := a * 10;
end;
Uvedené p²íklady jsou pochopiteln╪ úmysl╪ jednoduché a v TFBP by je
bylo lépe uvést jeτt╪ úsporn╪ji s pouºitím slova let, které dovoluje
souƒané uvedení slova else ve stejném ²ádku.
P²íklad 1.add:
|1|09for a,1/10 part
|1|09 if a = 5 let b : (a*10) else b (a+10);
|1|09:for<a<
√INVICO\OBLOK√ Dalτí nová slova jsou pro definování ²et╪zcà a ƒíseln∞ch hodnot.
Pro definici ²et╪zcà je to slovo |1|09Replicate |0|12 a pro definici
ƒíseln∞ch hodnot je slovo |1|09DefVal. |0|12Stejn╪ jako u TP jsou tyto
definice jiº dále nem╪nné (podobn╪ jako u slova |1|12const |0|12v TP).
√INVICO\OBLOK√ Pro práci se soubory jsou nová slova |1|09OpenF, SetOpenF, WipeF,
|1|09CreateF, AppendF a RenameF. |0|12U t╪chto slov se jiº nepouºívá slovo
Assign, které v TP je nutné. Navíc tato slova jiº obsahují directivu pro
p²ekladaƒ, která oτet²uje p²ípadnou chybu IOResult. Není tedy jiº nutné
directivu {$I-} a {$I+} nebo ResOff a ResOn, vàbec uvád╪t. Za tato slova
je dále jeτt╪ moºné pouºít znak |0|09@|0|12, za kter∞m se uvádí definované
náv╪τtí od kterého má program pokraƒovat v p²ípad╪ vzniklé chyby p²i V/V
operaci.
P²íklad: v TFBP v TP
DefFrom ErrO,ErrC,ErrRW; Label ErrO,ErrC,ErrRW;
...... .......
OpenF@ErrO(f,'SOUBOR.DTA'); Assign(f,'SOUBOR.DTA');
Create@ErrC(p,'COPY.DTA'); Assign(p,'COPY.DTA');
:loop> {$I-}
Read@ErrRW(f,Data); Reset(f);
Write@ErrRW(p,Data); {$I+}
:loop< Eof(f); if IOResult <> 0 then Goto ErrO;
@ErrRW< {$I-}
Close(p); Rewrite(p);
@ErrC< {$I+}
Close(f); if IOResult <> 0 then Goto ErrC;
@ErrO< repeat
{$I-}
Read(f,Data);
{$I+)
if IOResult <> 0 then Goto ErrRW;
{$I-}
Write(p,Data);
{$I+}
if IOResult <> 0 then Goto ErrRW;
until Eof(f);
ErrRW :
Close(p);
ErrC :
Close(f);
ErrO :
Pouºití znaku zavináƒe a jméno náv╪τtí navíc jeτt╪ zpàsobí, ºe v p²ípad╪
chyby p²i V/V operaci se vypíτe informaƒní okno s ƒíslem a popisem chyby.
Podrobn╪jτí informace naleznete kliknutím na p²ísluτné slovo nebo p²íkaz
v seznamu p²íkazà jazyka TFBPRO v editoru.
√INVICO\OBLOK√ P²echod programování z TP na TFBP nebude moºná z poƒátku snadn∞,
nebo£ v∞τe zmín╪ná klíƒová slova a p²íkazy v TFBP prost╪ neexistují
a bude t²eba si na to zvyknout. Z vlastní skuτenosti mohu potvrdit,
ºe to trvá jen krátk∞ ƒas. Mnohem lépe to pàjde t╪m, kte²í v TP jeτt╪
ani po²ádn╪ nezaƒali. P²esto jsou nutné alespoσ základní znalosti
jazyka Pascal, nebo£ jak uº jsem uvedl v úvodu, Turbo Fast Building
PRO vzeτel práv╪ z Pascalu. Proto také p²ekladaƒ TFBP respektuje
klíƒová slova a p²íkazy Pascalu, |1|09která vτak nelze kombinovat se slovy
|1|09TFBPRO. |0|12Tuto situaci ²eτí klíƒové slovo |1|09#NoTranslation, |0|12které se
uvede p²ed tu ƒást zdrojového textu, kter∞ je psán bu╘to v TP nebo v ASM.
Takto oznaƒená ƒást zdrojového textu musí b∞t ukonƒena slovem |1|09#Translation,
pokud je dalτí ƒást zdrojového textu jiº psána op╪t v TFBPRO.
|1|05Kompilátor TFBC pro Pascal vτak nep²ijímá jednotky .TPU ! |0|12P²esto
màºete pouºít ty, které jiº máte hotové v TP, pokud jejich zdrojov∞
text znovu zkompilujete v editoru TFBP. Dalτí moºností je p²ejmenování
koncovky souboru z .TPU na .FBL (jednotky TPU z TP verze 7, vτak nelze
pouze p²ejmenovat, ale je nutné provést novou kompilaci p²ímo zdrojového
textu z editoru TFBP).
Rovn╪º se nedoporuƒuje nahrazovat jednotky System, Crt, Dos a soubor
TFBP.TFL jednotkami z Pascalu a souborem Turbo.tpl. Kompilátor TFBPC
pro Fastíka s nimi v n╪kter∞ch p²ípadech odmítá spolupracovat.