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 >
Text File  |  2001-04-12  |  12KB  |  252 lines

  1.  
  2. ~16|0|05 √DOC\LOGO21√  T U R B O  F A S T 
  3. ~16|0|05 √DOC\LOGO22√  B U I L D I N G 
  4. ~16|0|05 √DOC\LOGO23√  P R O 2 5 6
  5.  
  6.      Programovací jazyk Turbo Fast Building Pro256 (dále jen TFBP)
  7.  je zcela nov∞m v∞vojov∞m prost²edím pro tvorbu aplikací, kter∞
  8.  màºe b∞t provozován pod operaƒním systémem, kter∞ respektuje DOS
  9.  (MSDOS, DRDOS, Windows, Linux, OS2 a pod.)
  10.      TFBP a aplikace v n╪m vytvo²ené pracují v grafickém pros²edí 
  11.  v rozliτení 800x600b ve 256ti barvách. Grafické prost²edí je zcela
  12.  vlastní a obsahuje vτechny pot²ebné procedury a funkce pro tvorbu
  13.  ikonov∞ch i textov∞ch tlaƒítek, samostatn∞ch oken, v∞pisu textov∞ch
  14.  souborà, direktoriá²e, nabídek, dialogà, menu a podobn╪. Pouºívá
  15.  také vlastní fonty a formáty obrázkà, které mohou b∞t v palet╪
  16.  256ti barev.
  17.  
  18.  Aƒkoli TFBP pouºívá kompilátor TP, obsahuje vlastní klíƒová slova
  19.  a operátory, které jsou od TP odliτné. P²ekladaƒ TFBP nap²íklad 
  20.  vàbec nepouºívá n╪která klíƒová slova TP a nahrazuje je vlastními
  21.  klíƒov∞mi slovy. P²esto je moºné vkládat do zdrojového textu ƒásti
  22.  psané v jazyku TP nebo ASM pomocí direktivy #NoTranslation. Od této
  23.  verze byl editor TFBPro256, na základ╪ p²ipomínek a nám╪tà jeho
  24.  dosavadních uºivatelà, vybaven moºností nastavení programovacího
  25.  jazyka TFBPro a Turbo Pascal. Uºivatel má tak moºnost pln╪ vyuºít
  26.  obou jazykà v jednom editoru. Podrobn╪jτí informace naleznete
  27.  v ƒásti |1|09Nastavení editoru.
  28.  
  29.  Protoºe vàbec nepouºívá slovo begin, end, then, of, a do,  rozliτuje 
  30.  klíƒová slova na tzv. |1|09jednorázová |0|12a |1|09sekvenƒní.
  31.  
  32.      √INVICO\OBLOK√ |1|09Jednorázová slova |0|12jsou ta, za kter∞mi ihned následuje dalτí
  33.  klíƒové slovo/slova, nebo p²íkaz. Tato slova se p²eváºn╪ uvád╪jí
  34.  na |1|09jednom ²ádku zdrojového textu.|0|12 Znamená to tedy, ºe provedení
  35.  p²íkazà probíhá následn╪ a není uzav²eno do ºádné delτí sekvence.
  36.      Jednorázová slova jsou |1|09next, let |0|12a |1|09from. |0|12Za t╪mito slovy 
  37.  musí následovat dalτí p²íkaz nebo p²íkazy.
  38.  
  39.      √INVICO\OBLOK√ |1|09Sekvenƒní slova |0|12se naopak pouºívají v p²ípad╪, kdy za prvním
  40.  a rozhodujícím slovem |1|12následuje více dalτích slov a p²íkazà |0|12a je
  41.  proto nutné |1|12oznaƒit konec této sekvence.
  42.  Sekvenƒní slova jsou |1|09part, :let> |0|12a  |1|09:loop>. Za znak > (pravá
  43.  lomená závorka) lze umístit struƒnou poznámku, která vτak musí b∞t ukonƒena
  44.  op╪t znakem > (pravou lomenou závorkou).
  45.  |1|05Poznámka vτak nesmí obsahovat mezery, které je moºné nahradit 
  46.  |1|05podrtºítkem (_).
  47.  |1|05Kaºdá sekvence  musí b∞t oznaƒena ukonƒovacím slovem, |0|12které màºe
  48.  b∞t bu╘to univerzální |1|05:part<|0|12, nebo p²ísluτné ke slovu, kter∞m byla
  49.  sekvence zahájena.
  50.  
  51.      √INVICO\OBLOK√ |1|09Ukonƒovací slova |0|12zaƒínají stejn∞m slovem, kter∞m byla sekvence
  52.  |1|09zahájena. |0|12P²ed slovo se musí zadat znak dvouteƒky a ukonƒit znakem 
  53.  |1|09levé lomené závorky (<)
  54.  |1|05Za takto uvedená ukonƒovací slova se jiº neuvádí st²edník (;)
  55.  Za znak < lze umístit struƒnou poznámku, která vτak musí b∞t ukonƒena op╪t
  56.  znakem <.
  57.  |1|05Poznámka vτak nesmí obsahovat mezery, které je moºné nahradit _.
  58.  
  59.  P²íklad jednorázov∞ch slov:
  60.     if FindAdr[1]='\' |1|09From |0|12Konec;
  61.     if Maska |1|09next |0|12LoadLmg(10,80,'OBR.LMG',0,0);
  62.     if A = 200 |1|09let |0|12B : (A * 10);
  63.     for i,1/10 |1|09let |0|12B : (i + 15);
  64.  
  65.  P²íklad sekvenƒních slov:
  66.    |1|09if |0|12LeftMousButton |1|09part
  67.      CursorOff;
  68.      if PosIcoLine(1) next InfoIcoLine(1);
  69.      CursorOn;
  70.    |1|09:if<
  71.  
  72.    |1|09for |0|12i,length(FindAdr)/1 |1|09part
  73.     if FindAdr[i]='\' From Konec;
  74.    |1|09:for<
  75.  
  76.    |1|09:let>
  77.      CSouc : Cislo - Odecet;
  78.      Prevod : NumToStr(CSouc);
  79.      NumDed : RCel + ',' + RDes;
  80.    |1|09:let<
  81.  
  82.    |1|09while |0|12ResOk |1|09part
  83.      if DirInfo.Attr=16 next
  84.         if DirInfo.Name=FindPath let PathExist : TRUE;
  85.      FindNext(DirInfo);
  86.    |1|09:while<
  87.  
  88.    |1|09with |0|12R |1|09part
  89.      let X : 10;
  90.      let Y : 20;
  91.    |1|09:with<
  92.  
  93.    |1|09case |0|12Vyber |1|09part
  94.      case>1 PisAdresy;
  95.      case>2 PisTelefony;
  96.    |1|09:case<
  97.  
  98.      Vτimn╪te si, ºe ani v jednom p²íkladu není pouºito ºádného slova, 
  99.  které oznaƒuje zaƒátek sekvence (v TP by to byl begin). U sekvenƒních
  100.  p²íkazà se |1|12zaƒátek sekvence neoznaƒuje nikdy|0|12, nebo£ je jiº obsaºen ve
  101.  slov╪ |1|09part. |1|12Uvede se pouze oznaƒení konce sekvence.
  102.  
  103.      P²esto se oznaƒení zaƒátku a konce sekvence v TFBP pouºívá. K tomu
  104.  slouºí symbol |1|09:> |0|12pro zaƒátek a |1|09:< |0|12pro konec. 
  105.  Tyto symboly se pouºívají pouze tam, kde není moºné pouºít sekvenƒních 
  106.  slov. Je to p²edevτím p²i oznaƒení zaƒátku procedury nebo funkce. 
  107.  Za tyto symboly |1|12je moºné vkládat i struƒné poznánky, |0|12které vτak
  108.  |1|12musí b∞t uzav²eny stejn∞m sm╪rem jako symbol zaƒátku nebo konce.
  109.  Tato moºnost platí pro vτechna ukonƒovací slova, která zaƒínají znakem
  110.  dvouteƒky a konƒí znakem <.
  111.  |1|05Poznámka vτak nesmí obsahovat mezery, které je moºné nahradit _.
  112.  P²íklad oznaƒení zaƒátku:
  113.    |0|09Main Pocitani;
  114.    |1|09:>poƒítání> |0|12oznaƒuje zaƒátek procedury Pocitani
  115.           .........
  116.           t╪lo procedury
  117.           .........
  118.    |1|09:<poƒítání< |0|12oznaƒuje konec procedury Pocitani
  119.  
  120.      Symbol |1|09> vpravo |0|12oznaƒuje zaƒátek a symbol |1|09< vlevo |0|12konec.
  121.  |1|12P²ed symbolem musí b∞t vºdy znak dvouteƒka.
  122.  |1|05Za t╪mito symboly se st²edník jiº neuvádí !
  123.  
  124.      √INVICO\OBLOK√ Nová slova jsou také pro ²eτení situace, kdy sekvence nabízí více 
  125.  moºností dalτího postupu programu. Známé slovo z TP |1|12else |0|12 je v TFBP 
  126.  dopln╪no jeτt╪ t²emi nov∞mi slovy: |1|09other, :otherdo> |0|12a |1|09:toother<.
  127.  Jejich pouºití nejlépe pochopíme z následujících ukázek. 
  128.  P²íklad 1. Slovo |1|09other 
  129.  V TFBP:                       v TP:  
  130.  for a,1/10 part               for a := 1 to 10 do
  131.    if a = 5 part               begin 
  132.      b == (a*10);               if a = 5 then
  133.      c == (a*5);                begin 
  134.     other                          b := a * 10;
  135.      b == (a+10);                  c := a * 5;
  136.      c == (a+5);                end 
  137.    :if<a=5<                       else 
  138.  :for<a<                        begin
  139.                                   b := a + 10;
  140.                                   c := a + 5;
  141.                                 end;
  142.                                end;
  143.  
  144.  Protoºe slovo |1|12:otherdo> |0|12oznaƒuje zaƒátek sekvence, uvádí se p²ed slovo
  145.  dvouteƒka a za slovem musí b∞t znak > pro zaƒátek.
  146.  P²íklad 2. Slovo |1|09:otherdo>
  147.  V TFBP:                       v TP:
  148.  for a,1/10 part               for a := 1 to 10 do
  149.    if a=5 let b : (a*10)       begin
  150.    :otherdo>                     if a = 5 then b := a * 10
  151.      b == (a+10);                else
  152.      c == (a+5);                 begin
  153.    :other<                         b := a + 10;
  154.  :for<a<                           c := a + 5;
  155.                                  end;
  156.                                end; 
  157.  
  158.  Protoºe slovo |1|12:toother< |0|12oznaƒuje konec sekvence, uvádí se p²ed slovo
  159.  dvouteƒka a za slovem musí b∞t znak < pro konec.
  160.  
  161.  P²íklad 3. Slovo |1|09:toother<
  162.  V TFBP:                        v TP:
  163.  for a,1/10 part               for a := 1 to 10 do
  164.    if a=5 part                 begin
  165.      b == (a+10);                if a = 5 then
  166.      c == (a+5);                 begin
  167.    :toother<                       b := a + 10;
  168.      b == (a*10);                  c := a + 5;
  169.  :for<a<                         end
  170.                                  else
  171.                                  b := a * 10;
  172.                                end;
  173.  
  174.  Uvedené p²íklady jsou pochopiteln╪ úmysl╪ jednoduché a v TFBP by je 
  175.  bylo lépe uvést jeτt╪ úsporn╪ji s pouºitím slova let, které dovoluje
  176.  souƒané uvedení slova else ve stejném ²ádku.
  177.  P²íklad 1.add:
  178.  |1|09for a,1/10 part
  179.  |1|09  if a = 5 let b : (a*10) else b (a+10);  
  180.  |1|09:for<a<
  181.  
  182.      √INVICO\OBLOK√ Dalτí nová slova jsou pro definování ²et╪zcà a ƒíseln∞ch hodnot.
  183.  Pro definici ²et╪zcà je to slovo |1|09Replicate |0|12 a pro definici
  184.  ƒíseln∞ch hodnot je slovo |1|09DefVal. |0|12Stejn╪ jako u TP jsou tyto
  185.  definice jiº dále nem╪nné (podobn╪ jako u slova |1|12const |0|12v TP).
  186.  
  187.      √INVICO\OBLOK√ Pro práci se soubory jsou nová slova |1|09OpenF, SetOpenF, WipeF,
  188.  |1|09CreateF, AppendF a RenameF. |0|12U t╪chto slov se jiº nepouºívá slovo 
  189.  Assign, které v TP je nutné. Navíc tato slova jiº obsahují directivu pro 
  190.  p²ekladaƒ, která oτet²uje p²ípadnou chybu IOResult. Není tedy jiº nutné 
  191.  directivu {$I-} a {$I+} nebo ResOff a ResOn, vàbec uvád╪t. Za tato slova
  192.  je dále jeτt╪ moºné pouºít znak |0|09@|0|12, za kter∞m se uvádí definované
  193.  náv╪τtí od kterého má program pokraƒovat v p²ípad╪ vzniklé chyby p²i V/V
  194.  operaci.
  195.  P²íklad: v TFBP                     v TP
  196.  DefFrom ErrO,ErrC,ErrRW;            Label ErrO,ErrC,ErrRW;
  197.  ......                               .......
  198.  OpenF@ErrO(f,'SOUBOR.DTA');         Assign(f,'SOUBOR.DTA');
  199.  Create@ErrC(p,'COPY.DTA');          Assign(p,'COPY.DTA');
  200.  :loop>                              {$I-}
  201.    Read@ErrRW(f,Data);               Reset(f);
  202.    Write@ErrRW(p,Data);              {$I+} 
  203.  :loop< Eof(f);                      if IOResult <> 0 then Goto ErrO;
  204.  @ErrRW<                             {$I-}
  205.  Close(p);                           Rewrite(p);
  206.  @ErrC<                              {$I+}
  207.  Close(f);                           if IOResult <> 0 then Goto ErrC;
  208.  @ErrO<                              repeat
  209.                                        {$I-}
  210.                                        Read(f,Data);
  211.                                        {$I+)
  212.                                        if IOResult <> 0 then Goto ErrRW;
  213.                                        {$I-}
  214.                                        Write(p,Data);
  215.                                        {$I+}
  216.                                        if IOResult <> 0 then Goto ErrRW;
  217.                                      until Eof(f);
  218.                                      ErrRW :
  219.                                      Close(p);
  220.                                      ErrC :
  221.                                      Close(f);
  222.                                      ErrO :     
  223.  
  224.   Pouºití znaku zavináƒe a jméno náv╪τtí navíc jeτt╪ zpàsobí, ºe v p²ípad╪
  225.  chyby p²i V/V operaci se vypíτe informaƒní okno s ƒíslem a popisem chyby.
  226.  Podrobn╪jτí informace naleznete kliknutím na p²ísluτné slovo nebo p²íkaz 
  227.  v seznamu  p²íkazà jazyka TFBPRO v editoru.
  228.  
  229.      √INVICO\OBLOK√ P²echod programování z TP na TFBP nebude moºná z poƒátku snadn∞,
  230.  nebo£ v∞τe zmín╪ná klíƒová slova a p²íkazy v TFBP prost╪ neexistují
  231.  a bude t²eba si na to zvyknout. Z vlastní skuτenosti mohu potvrdit,
  232.  ºe to trvá jen krátk∞ ƒas. Mnohem lépe to pàjde t╪m, kte²í v TP jeτt╪
  233.  ani po²ádn╪ nezaƒali. P²esto jsou nutné alespoσ základní znalosti
  234.  jazyka Pascal, nebo£ jak uº jsem uvedl v úvodu, Turbo Fast Building
  235.  PRO vzeτel práv╪ z Pascalu. Proto také p²ekladaƒ TFBP respektuje
  236.  klíƒová slova a p²íkazy Pascalu, |1|09která vτak nelze kombinovat se slovy
  237.  |1|09TFBPRO. |0|12Tuto situaci ²eτí klíƒové slovo |1|09#NoTranslation, |0|12které se
  238.  uvede p²ed tu ƒást zdrojového textu, kter∞ je psán bu╘to v TP nebo v ASM.
  239.  Takto oznaƒená ƒást zdrojového textu musí b∞t ukonƒena slovem |1|09#Translation,
  240.  pokud je dalτí ƒást zdrojového textu jiº psána op╪t v TFBPRO.
  241.    |1|05Kompilátor TFBC pro Pascal vτak nep²ijímá jednotky .TPU ! |0|12P²esto
  242.  màºete pouºít ty, které jiº máte hotové v TP, pokud jejich zdrojov∞
  243.  text znovu zkompilujete v editoru TFBP. Dalτí moºností je p²ejmenování
  244.  koncovky souboru z .TPU na .FBL (jednotky TPU z TP verze 7, vτak nelze
  245.  pouze p²ejmenovat, ale je nutné provést novou kompilaci p²ímo zdrojového
  246.  textu z editoru TFBP).
  247.    Rovn╪º se nedoporuƒuje nahrazovat jednotky System, Crt, Dos a soubor
  248.  TFBP.TFL jednotkami z Pascalu a souborem Turbo.tpl. Kompilátor TFBPC
  249.  pro Fastíka s nimi v n╪kter∞ch p²ípadech odmítá spolupracovat.
  250.  
  251.  
  252.