ScriptS++ 1.2 Specification for dev120_180_03262008



Podobné dokumenty
Delphi popis prostředí

02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Cvičné příklady Tematický celek 01

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

22. Tvorba webových stránek

První kapitola úvod do problematiky

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

M4 PDF rozšíření. Modul pro PrestaShop.

MS Excel makra a VBA

Programovací jazyk Pascal

Microsoft Office. Word vzhled dokumentu

Sada 1 - Základy programování

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

První kroky s METEL IEC IDE

Projekt Obrázek strana 135

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Manuál k programu KaraokeEditor

MAXScript výukový kurz

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access propojení relací s formuláři a sestavami Ing.

ČÁST 1. Základy 32bitového programování ve Windows

MS Word 2007 Elektronické formuláře

Uživatelské příkazy: false - dialog ukončen IDCANCEL. Vytvoří nové okno. title - titulek okna

XML Práce s řídicím souborem miniaplikace

Tvorba fotogalerie v HTML str.1

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

Inovace a zkvalitnění výuky prostřednictvím ICT Programování se strukturovanými údaji Programové jednotky

APS 400 ipanel. Online informační a ovládací panel pro systém APS 400. Uživatelská příručka

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Inovace a zkvalitnění výuky prostřednictvím ICT Vytváření aplikací pro systém Windows Víceřádkové vstupy komponenta Memo

VISUAL BASIC. Přehled témat

Úvod. Programovací paradigmata

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

PHP tutoriál (základy PHP snadno a rychle)

MS SQL Server 2008 Management Studio Tutoriál

Zadání soutěžních úloh

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Tiskové sestavy. Zdroj záznamu pro tiskovou sestavu. Průvodce sestavou. Použití databází

Programujeme v softwaru Statistica

Vyšší odborná škola a Střední škola,varnsdorf, příspěvková organizace. Šablona 14 VY 32 INOVACE

FORTANNS. 22. února 2010

Delphi nastavení formulářů

JAK PROPOJIT R-KO a EXCEL aneb Aby se uživatel nasytil a statistik zůstal celý

Excel tabulkový procesor

Zobrazování bannerů podporují pouze nově vytvořené šablony motivů vzhledu.

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

WNC::WebNucleatCreator

Sada 2 - MS Office, Excel

Semestrální práce 2 znakový strom

Maturitní otázky z předmětu PROGRAMOVÁNÍ

MS Excel 2007 Kontingenční tabulky

FORMÁTOVÁNÍ 2. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Důležité: Pokud jako Caption zadáme (tj. pomlčku), je položka menu změněna na oddělovač.

Výčtový typ strana 67

Aplikační profily v PLC Tecomat

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

DUM 06 téma: Tvorba makra pomocí VBA

Sestavy. Téma 3.3. Řešený příklad č Zadání: V databázi zkevidence.accdb vytvořte sestavu, odpovídající níže uvedenému obrázku.

Microsoft Word základní

Uživatelská příručka Autor: Martin Fiala

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Základní vzorce a funkce v tabulkovém procesoru

Instalace. Produkt je odzkoušen pro MS SQL server 2008 a Windows XP a Windows 7. Pro jiné verze SQL server a Windows nebyl testován.

HTML Hypertext Markup Language

DATABÁZE MS ACCESS 2010

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

VY_32_INOVACE_08_2_04_PR

Paměť počítače. alg2 1

MIDAM Verze 1.1. Hlavní okno :

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Reliance 3 design OBSAH

MPASM a IDE pro vývoj aplikací MCU (Microchip)

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

8 Makra Příklad 4 Excel 2007

Jako skript se nabízí BAT soubory, VBScript či PowerShell. Zpracovány jsou druhé dva.

Popis výukového materiálu

Návod k programu Graph, verze 4.3

Další nutný soubor je laydiv.js, ve kterém jsou uloženy funkce pro zobrazování virů na ploše a funkce pro odkaz na Teachers Guide.

Na vod k nastavenı u

Nápověda k aplikaci EA Script Engine

Sada 2 Microsoft Word 2007

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Transkript:

Obsah ScriptS++ 1.2 Specification for dev120_180_03262008 ScriptS++ 1.2 Specification for dev120_172_03262008...1 Úvod...2 Novinky ve verzi 1.2...2 Syntaxe...3 Komentáře...3 Hlavička...3 Namespace (NS)...3 Proměnné...4 Funkce...5 Základní kostra kódu...7 Vytváření prvků...8 Objekty a procedury...8 Komponenty...9 Standartní komponenty...9...9...9 Speciální kompomenty...12 Použítí templates...12 Úvod do templates...12 Vytvoření templaty...12 Použítí v našem kódu...12 Použití includes...12 Speciální možnosti jazyka...12 Příklady skriptů...12 Rejstřík...12 1 / ScriptS++ 1.2 Specification for dev120_180_03262008

Úvod Jazyk ScriptS++ byl vytvořen pro jednodusšší tvorbu aplikací s GUI. Sám o sobě NENÍ určen pro porgramování nových aplikací. Obsahuje též pár vestavěných fukncí, které se budou rozrůstat. Původní motivací, proč jsem napsal tento jazyk, byla zkouška toho co již umím. Vlastně napsat vlastní jazyk byl muj sen již od mého programátorského počátku. Proti původním představám se syntaxe jazyka změnila velmi mnoho a postupně se zjednodušovala tak jak jsem zjišťoval že jde o zbytečnou složitost či nevím jak bych to napsal. Vlastně jsem zjistil že navrhnout jazyk není nic jednoduchého a může to být těžší i než jen jeho implementace. Postupně jsem zjistil že nevím jak vytvořit binární soubor, tak jsem zvolil nejjednodušší variantu a to skript. Tento jazyk je navžen tak aby vyhovoval mě, což znamená že se ostatním nemusí líbit. Mezi hlavní výhody tohoto jazyka patří jeho jednoduchost a nenáročnost. Na začátku své existence byl jen návrhářem formulářů ale neumožňoval pracovat s proceduramy, volat akce atd. Jediné co uměl vykreslit okno tak jak bylo napsano ve zrojovem souboru. Postupně ale přibyly možnosti jak ovlivnit okno již za jeho běhu. Nová verze přináší spoustu novinek které opět rozšiřují jeho možnosti. Novinky ve verzi 1.2 Nová upravená kostra kódu Uzamčení do namespace Práce s proměnými a podpora datových typů Nové funkce a jejich používání Nové knihovny funkcí $system a $math Nové komponenty Vylepšení tlačítka SPP_START Interní proměnné $script a $application Revize a zjednodušení syntaxe scriptu Podpora pro templates 2 / ScriptS++ 1.2 Specification for dev120_180_03262008

Syntaxe Tento programovací jazyk je určen pro psaní okének, proto snahou autora je co nejvíce jednoduchá a snadno použitelná. Program obsahuje možnost využít i speciálních komponent, které jsou složeny z několika prvků tzv templates. Komentáře Tento jazyk podporuje dva druhy komentářů: jednořádkový uvozený znakem * více řádkový začínající /* a končící */ Hlavička Každý script musí být uvozen hlavičkou. Před hlavičkou smí být jen komentáře. Pomocí hlavičky pozná kompilátor jak má daný kód interpretovat a zda jej podporuje. #PROJECT REF="SPP_SCRIPT" VERSION="1.2" #PROJECT REF VER udává počátek hlavičky Varianta kompilátoru SPP_SCRIPT_V1 starší verze, není doporučena SPP_SCRIPT nová DOPORUČUJI Verze kompilátoru 1.0 v současnosti nejstarší, sloužila jen jako ukázka 1.1 již funkční verze, její nevýhodou byla ne mnoho funkcí 1.1.1 oprava předchozí verze, přidání includes 1.2 současná verze!pozor stále jen devlopment versioon! Namespace (NS) V překladu jmený prostor. NS se musí shodovat s názvem souboru bez přípony tj. pokud máme například soubor sample.sso tak se NS musí jmenovat sample. Tato část je v nové verzi mírně upravená proti všem předchozím. Začátek jmeného prostoru se píše za hlavičku skriptu a existují dva druhy NS: script new_project; nebo tempalate new_project; script určuje jmený prostor skriptu template určuje jmený prostor šablony (o jejím využítí později). Ty nejsou spustitelné! Pro ukončení NS se před daný typ píše znak! Ovšem bez názvu prostoru př.:!script nebo!tempalate Pokud použijete template nezapomeňte prosím že nelze samostatně bez vložení do skriptu spustit! 3 / ScriptS++ 1.2 Specification for dev120_180_03262008

Proměnné Scriptovací jazyk podporuje dva typy proměnných systémové a uživatelské. Ve starších verzích kompilátoru bylo nutné tyto typy předem určit slovy var a sysvar. Od této verze si kompilátor projede seznam systémévých proměnných a pokud ji tam nenalezne nastaví danou proměnnou jako uživatelskou a není již tak nutné uvádět její typ. Díky tomu je i syntaxe zcela pozměněna, přesto však kostrukce zápisu zůstala podobná. Syntaxe: $VAR { VARNAME = VALUE; Mezi významné novinky jistě patří i podpora DATOVÝCH typů, které píšeme za hodnotu proměnné: Podporované datové typy: VARNAME = VALUE as DATATYPE; String Integer Textový řetězen Celočíselný datový typ Boolean Booleanovská funkce True, False Systémové proměnné v současnosti dostupné APPLICATIONTITLE FORMCOLOR FORM3DSTYLE HINTTIME Titulek programu na liště Výchozí barva formulářů Prostorový vzhled okna Doba zobrazení popisku HINTCOLORINT Barva popisku Pozn. Speciálním typem sys. proměnné je SYSMSG která zobrazí svůj obsah při spuštění skriptu V programu existují i tzv. Interní proměnné (IP). Ty slouží jako výstup pro jednotlivé prvky přímo do vlastnosti. V současné době jsou podporovany IP: $script a $application. Syntaxe: $script.vlastnost; Proměnná $script též lze zapsat jako $_NAMESPACE_ kde _NAMESPACE_ je název jmeného prostoru skriptu - slouží k získání informací o skriptu. Vsoučasné době podporuje následující vlastnosti: Namespace Filename Cmp Název jmeného prostoru Plný název souboru skriptu Je skupinou informaci o kompilátoru. Vlastnost filename obsahuje uplnou cestu ke kompilátoru a vlastnost version pak udává jeho verzi. Promnná $application obsahuje informace o samotném kompilátoru Exename Title Plná cesta k souboru kompilátoru Titulek na listě Mezi proměnné též zahrnujeme i $system která ověšem obsahuje přístup k funkcím kompilátoru a nahrazuje tak v současné době používaný znak @ a zjednodušuje tak jejich použití protože existuje jako jednotné rozhraní jejich použití. O fukncích bude pojednávat následující kapitola této dokumentace. 4 / ScriptS++ 1.2 Specification for dev120_180_03262008

Funkce Jak již bylo zmíněno, skriptovací jazyk obsahuje i nějaké funkce, které nám zjednošší práci. O některých, jako $script a $applications, již byla řeč v části Proměnné. V této kapitole si povíme o systémové proměnné $system ve které se právě nachází rozhraní pro práci s funkcemi. Syntaxe: $system. FUNCTION respektive $system. FUNCTION.subfunction kde FUNCTION je název funkce a je uveden spolu s krátkým popisem v záhlaví tabulky a v prvním sloupci s názvem podfunkce a druhém sloupci jeho popis či nějaké možnosti této funkce. DATETIME práce se datem a časem Now Zobrazí datum a čas Date Zobrazí datum Time Zobrazí čas WINVER Informace o verzi Windows Name Název verze Windows Code Kód verze Windows Build Označení verze windows Info Zobrazí další informace o verzi windows ToString Zobrazí název, kód a další informace o verzi Windows HARDWARE Informace o hw počítače -> MEMORY Phystotal Celková fyzická pamět Physnow Fyzická pamět nyní Virtotal Celková virtuální pamět Virnow Virtuální pamět nyní Pftotal Celková stránkovací pamět pfnow Stránkovací pamět nyní Memload Celková zabraná pamět Memlen Velikost paměti -> CPU Count Počet procesorů / jader Type Typ procesoru SPPC Informace kompilátoru ScriptS++ Version Informace o verzi kompilátoru Develinfo Interní označení verze kompilátor Author Autor komoilátoru Name Název kompilátoru 5 / ScriptS++ 1.2 Specification for dev120_180_03262008

Kromě knihovny $system je součástí jednotka $math ve které jsou uloženy matematické funkce. Syntaxe: $Math. FUNCTION respektive $math. FUNCTION.subfunction ln(x) log(x,y) sqr(x,y) sqrt(x,y) Const sada konstant Random(x) Infinity!Infinity Pi E Přirozený logaritmus z x Logaritmus y při základu x Možno zadat jen log(x) program použije základ 10 Umocní x na y Možno zadat jen sqr(x) program umocní číslo na druhou Y-tá Odmocnina z x Možno zadat jen sqrt(x) program odmocní číslo x druhou odmocninou Vypíše náhodné číslo do x Nekonečno - Nekonečno Vypíše číslo PI Vypíše Eulerovo číslo Trigonometric sada goniometrických funkcí Sin(x) Cos(x) Tan(x) Cotg(x) Sinh(x) Cosh(x) Tanh(x) Cotgh(x) Arcsin(x) Arccos(x) Funkce sinus Funkce cosinus Funkce tangent Funkce cotg Hyberbolický sinus Hyberbolický cosinus Hyberbolický tan Hyberbolický cotg Arcus sinus Arcus cosinus 6 / ScriptS++ 1.2 Specification for dev120_180_03262008

Základní kostra kódu Základní konstrukce programu obsahuje několik základních částí, které musí být obsaženy v kódu skriptu. Některé z nich jsme si již ukázaly, některé si úkážeme dalších kapitolách této dokumentace. Následuje kostra kódu programu: #PROJECT REF="SPP_SCRIPT" VERSION="1.2" script sample; $VAR { $ITEMS { new TForm [Form1] ; $OBJECTS {!script $CODE { $VAR $ITEMS $OBJECTS $CODE Místo kam se zadávájí proměnné viz přechozí kapitoly Zde vytváříme komponenty nebo nastavujeme použití z templates Část zdrojového kódu kde se nastavuje visuální podoba a chování komponent Zde zapisujeme funkční kód skriptu Odstavec první této kapitoly však není docela přesný. Kontainer pro deklaraci promměných $var a funkční část skriptu $code totiž pro minimální skript nejsou nutné. Proto minimální kód pro spuštění skriptu vypadá: #PROJECT REF="SPP_SCRIPT" VERSION="1.2" script sample; $ITEMS { new TForm [Form1] ;!script $OBJECTS { 7 / ScriptS++ 1.2 Specification for dev120_180_03262008

Vytváření prvků Kostra kódu,kterou jsme si ukázaly o kapitolu víše, je sice zajímavá ale bez prvků které by tam něco dělaly tam chybí. Ty musíme vytvořit pro což slouží kontainer $ITEMS kam se vkládají konstruktury pro jednolivé prvky (komponenty). Kontainer se zapisuje takto: $ITEMS { Zápis konstruktorů je následující: Syntaxe: create Tcomponent [Name] ; nebo od verze 1.2 doporučené: new Tcomponent [Name] ; Tcomponent je název komponenty, kterou chceme vytvořit Name název kompomenty, který se bude používat pro práci s prvkem Základním prvkem každého skriptu je kompomenta Tform. Ta je povinou součástí každého skriptu a musí být přítomna v kódu. Objekty a procedury Comming soon 8 / ScriptS++ 1.2 Specification for dev120_180_03262008

Komponenty Bez komponent by aplikace byla jen prázdným oknem na v operačním systému. Jsou to stavební kameny každého programu. Kompilátor pro S++ jich obsahuje značné množství. Základní komponentou je Tform, samontný formulář. Jeho vytvoření je popsáno v části Vytváření prvků. V této kapitole si popíšeme nastavení jeho vlastností a událostí. Pro zápis vlastností a událostí komponent slouží kontainer $OBJECTS tak se zapisují ve formátu: COMPONENT_NAME { property name=value; event name=value; Některé komponenty mohou obsahovat i další funkce, o těch se budeme bavit vždy u jednotlivých kompoment. Příklad zápisu vlastností prvku Form1 popisujiící jeho titulek z názvu skriptu a formulář bude červený: $OBJECTS { Form1 { property title=$script.filename; property color=clred; Standartní komponenty Společné vlastnosti Společné události Top Left Width Height Hint +Hint Showhint Enable Visible OnClick OnDbClick OnMouseDown OnMouseUp OnMouseMove OnMouseEnter OnMouseLeave Horní pozice prvku Pozice okna odleva Šířka prvku Výška prvku Popisek prvku Přidá k současnému popisku Zobrazit prvek (true, false) Dostupnost prvku (true, false) Viditelnost prvku (true, false) Kliknutí na prvek Dvojité kliknutí na prvek Při stisknití tlačítka myši dolů Při stisknití tlačítka myši nahoru Při pohybu myši Při vstupu kurzoru na prvek Při opuštění prvku kurzorem 9 / ScriptS++ 1.2 Specification for dev120_180_03262008

Tform Prvek typu formulář je základní prvkem v programu. Vlastnosti: title +title color color.i font.color font.color.i font.name font.size autosize autoscroll transparent transparentcolor center Horní titulek okna Přidá k současnému titulku Barva okna Barva zadaná jako číslo Barva písma Barva zadaná jako číslo Název písma Velikost písma Automatická velikost okna dle rozložení prvků Zobrazí scrollbary pokud je nějaky prvek umístěn mimo rozměry okna Pruhlednost okna (true, false) Barva, která bude průhledná Nastaví okno doprostřed alpha Průhlednost celého okna číslo 0..255 kde 255 je zcela neprůhledný type Určuje typ okna (ovládací prvky) fsnone... žádné okraje fsdialog... jen základní prvky fstoolwin... nástrojové okno fssizetoolwin... nástrojové okno s změnou rozměrů fssingle 10 / ScriptS++ 1.2 Specification for dev120_180_03262008

Tlabel Prvek Tlabel je textový popisek. Vlastnosti: title +title color color.i font.color font.color.i font.name font.size autosize Horní titulek okna Přidá k současnému titulku Barva okna Barva zadaná jako číslo Barva písma Barva zadaná jako číslo Název písma Velikost písma Automatická velikost okna dle rozložení prvků 11 / ScriptS++ 1.2 Specification for dev120_180_03262008

Speciální kompomenty Použítí templates Úvod do templates Vytvoření templaty Použítí v našem kódu Použití includes Speciální možnosti jazyka Příklady skriptů Rejstřík 12 / ScriptS++ 1.2 Specification for dev120_180_03262008