MSE (Visual Programming Environment)
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 14. dubna 2020; kontroly vyžadují
9 úprav .
MSE je vizuální programovací prostředí využívající kompilátor Free Pascal . Skládá se z knihovny vizuálních komponent MSEgui a editoru formulářů a zdrojů MSEide .
Na rozdíl například od projektu Lazarus se MSE nezaměřuje na kompatibilitu Delphi VCL , což v některých případech zjednodušuje vývoj a zbavuje tě těžkopádnosti.
Má: vestavěný debugger , zvýraznění syntaxe, doplňování pole třídy, navigaci v kódu, generátor sestav atd.
VAROVÁNÍ : Projekt MSE je nyní součástí mse-org : https://github.com/mse-org
Zdroje MSEide a MSEgui jsou zde: https://github.com/mse-org/mseide-msegui
Martinův životopis: https://sites.google.com/view/martin-schreiber-biography/
Vlastnosti a výhody
Unicode
Všechny komponenty používají Unicode . Při tisku se používá také Unicode, který umožňuje zobrazit znaky více kódování v jednom výstupním dokumentu. Zdrojové texty mohou být také v Unicode, což umožňuje použití textových konstant bez problémů s přenositelností mezi Win32 a Linuxem .
Tisk
Má několik tiskových mechanismů:
- ve výstupním formátu PostScript (Win32 a Linux);
- přímý tisk GDI tiskárna (samozřejmě - pouze pro Win32);
- v "contributed" - existuje třída pro tisk textu ve výstupním kódování CP866 (ruský DOS), se speciálními metodami formátování (zkrácení, automatický přenos, vyplnění) sloupců a kreslicích rámců - pseudografických i zjednodušených (ze znaků "|-+") ;
Databáze
Zvláštní důraz je kladen na vývoj aplikací pro práci s databází
- přístup k databázi na PostgreSQL , MySQL , SQLite a Firebird bez přechodných ovladačů
- přístup k databázi na Oracle, MSAcess, ASA, DB2 a dalších - pokud existují zdroje zprostředkující knihovny ZeosDBO
- má velmi výkonnou komponentu TMSESQLQuery, která poskytuje
- čtení a zápis databáze pomocí SQL dotazů, včetně SQLite3
- implementace "FieldDefs" umožňuje ručně přiřadit typy výběrových polí, pokud jsou definovány nesprávně (velmi užitečné pro SQLite3)
- parametrické dotazy
- automatické generování požadavků na změnu dat
- možnost transparentně nahrazovat automaticky odebírané požadavky „vlastními“.
- automatická detekce jedinečných indexů a automatické přiřazení klíčových polí podle nalezeného PRIMÁRNÍHO indexu
- offline režim pro úpravu dat po odpojení se záznamem při obnovení spojení
- lokální režim nahrazující TMemDataset
- lokální indexy na všech typech polí, kromě MEMO/BLOB (s automatickým přeskupením výběru, když je index aktivován) a filtrování, tyto indexy mohou být složené
- offline a místní režimy mají schopnost ukládat data (včetně objektů BLOB a obrázků) do místního souboru
- načítání, ukládání do mezipaměti a zápis polí BLOB
- konverze unicode za chodu
- oddělené transakce pro čtení a zápis
- volitelný fiktivní transakční režim (velmi užitečné pro SQLite3 a další databáze, kde nejsou možné vnořené transakce)
- volitelné automatické potvrzení transakce po zapsání změn
- volitelné převzorkování dat po potvrzení transakce
- Komponenta TDBWidgetGrid:
- umožňuje umístit výběrové seznamy, logické přepínače, obrázky atd. přímo do buněk tabulky
- umožňuje umístit téměř jakékoli widgety do pevných řádků (záhlaví a zápatí), což je výhodné pro implementaci přepínačů řazení, režimů atd.
- umožňuje sloučit buňky do pevných řádků
- poskytuje automatické číslování pevných sloupců
- ekonomický režim provozu databázových tabulek, kdy tabulka „udrží“ v paměti pouze minimální nutnou část dat
- komponenta TDBLookupBuffer umožňuje zkopírovat jedno nebo více výběrových polí do ultrarychlé vyrovnávací paměti používané pro obsluhu výběrových seznamů, vyhledávání jednoho pole přes druhé a další operace, aniž by došlo k přenavigování a dalším nežádoucím efektům ve výběru.
- každý datový typ má svou vlastní komponentu pro urychlení přístupu k poli (pokud je přístup přes "FieldByName" pomalý)
- komponenta pro práci s poli automatického přírůstku (velmi užitečné pro vkládání dat v režimu master-detail)
- komponenty pro transparentní propojení tabulek master-detail
Knihovny
Kompletně kreslí komponenty sám. Například na GNU / Linuxu nepoužívá žádné widgety třetích stran - na Linuxu pracuje přímo s Xlib , na Windows používá pouze API funkce . Přizpůsobí vestavěnou paletu režimům obrazovky bez TrueColor s malým počtem barev (255 nebo méně)
Základní třídou pro prvky GUI je twidget . Na rozdíl od Delphi MSEgui nerozlišuje mezi jednoduchými grafickými prvky a prvky, které mohou přijímat vstupní fokus – všechny widgety mají přístup ke všem funkcím třídy twidget.
Instance twidgetu mají dvě důležité vlastnosti – twidget.frame a twidget.face .
- frame je zodpovědný za rám kolem pracovního prostoru prvku - může to být buď "standardní" pseudo-3D rám, nebo nějaká složená struktura sestavená z rastrových prvků.
- face kreslí pozadí klientské oblasti prvku GUI – umožňuje zobrazovat barevné přechody, bitmapy a používat průsvitnost.
Vlastnosti rámečku a obličeje lze nastavit centrálně pomocí tframecomp a tfacecomp – což usnadňuje používání vzhledů.
V MSEgui jsou k dispozici specializované widgety ( tintegeredit , trealedit , tdatetimeedit ... ) pro úpravu nezpracovaných dat jednoduchých typů . Hlavním obslužným programem vlastností-zpráv těchto widgetů je onsetvalue , pomocí kterého se nastavuje reakce widgetů na vstup uživatele.
Na rozdíl od Lazarus umožňuje MSEgui vizuální dědění formulářů a vytváření aplikací MDI .
Licence
Zdarma, open source. Shell je distribuován pod licencí GNU GPL , knihovna je distribuována pod modifikovanou GNU LGPL s možností odkazování na uzavřené projekty.
Historie
Martin Schreiber, primárně programátor v Pascalu, vyvinul MSEgui poté, co Borland ukončil své linuxové programovací prostředí Kylix . Výsledný softwarový produkt použil pro svou hlavní práci – vývoj softwaru pro PC a zakázkové mikrokontroléry [1] .
V roce 2013 začal pracovat na programovacím jazyce MSElang podobnému Pascalu, který je jednodušší než Free Pascal , využívající LLVM jako backend , a během toho dosáhl určitých výsledků [2] .
Dne 29. listopadu 2018 prodělal Martin Schreiber těžký infarkt a 27. prosince 2018 zemřel [3] . Další osud projektů, které na začátku roku 2019 rozpracoval, není jasný.
Viz také
Poznámky
- ↑ Vybavit Pascal. Rozhovor s Martinem Schreiberem (Francouzský) . Developpez.com (23. prosince 2015). Staženo 7. února 2019. Archivováno z originálu 9. února 2019.
- ↑ Domů Wiki MSEide MSEgui / Mselang . gitlab. Staženo 7. února 2019. Archivováno z originálu 9. února 2019.
- ↑ Wir trauern um Martin Schreiber: Ankündigungen • Deutsches Lazarusforum . www.lazarusforum.de. Staženo 7. února 2019. Archivováno z originálu 9. února 2019. (neurčitý)
Odkazy
Toolkity (sady) prvků GUI |
---|
na nízké úrovni |
|
---|
vysoká úroveň | OS Amiga |
|
---|
MacOS a macOS |
- Kakao
- macapp
- MacZoop
- Elektrárna
|
---|
Okna |
|
---|
UNIX , pod X |
|
---|
Více platforem _ | Na bázi Flash |
|
---|
Založeno na XML, AJAX nebo SVG |
|
---|
Založený na Javě |
|
---|
Založeno na C nebo C++ |
|
---|
Založeno na Common Lisp |
|
---|
Na základě Pascalu |
|
---|
Založeno na Pythonu |
|
---|
Na základě Objective-C |
|
---|
|
---|
|
---|