MSE (mediu de programare vizuală)
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită pe 14 aprilie 2020; verificările necesită
9 modificări .
MSE este un mediu de programare vizuală care utilizează compilatorul Free Pascal . Este format din biblioteca de componente vizuale MSEgui și editorul de formulare și sursă MSEide .
Spre deosebire, de exemplu, de proiectul Lazarus , MSE nu se concentrează pe compatibilitatea Delphi VCL , care în unele cazuri simplifică dezvoltarea și eliberează de greoaie.
Are: depanator încorporat , evidențiere de sintaxă, completare a câmpului de clasă, navigare în cod, generator de rapoarte etc.
AVERTISMENT : Proiectul MSE face parte acum din mse-org : https://github.com/mse-org
Sursele MSEide și MSEgui sunt aici: https://github.com/mse-org/mseide-msegui
Biografia lui Martin: https://sites.google.com/view/martin-schreiber-biography/
Caracteristici și beneficii
Unicode
Toate componentele folosesc Unicode . Unicode este folosit și la imprimare, ceea ce vă permite să afișați caractere ale mai multor codificări într-un singur document de ieșire. Textele sursă pot fi și în Unicode, ceea ce permite utilizarea constantelor de text fără probleme de portabilitate între Win32 și Linux .
Tipărire
Are mai multe mecanisme de imprimare:
- în format de ieșire PostScript (Win32 și Linux);
- imprimantă GDI cu imprimare directă (în mod firesc - numai pentru Win32);
- în „contribuit” - există o clasă pentru imprimarea textului în codificarea de ieșire CP866 (DOS rus), cu metode speciale de formatare (truncare, transfer automat, umplere) a coloanelor și cadre de desen - atât pseudografice, cât și simplificate (din caractere "|-+");
Baze de date
Un accent deosebit este pus pe dezvoltarea de aplicații pentru lucrul cu baza de date
- acces la baza de date pe PostgreSQL , MySQL , SQLite și Firebird fără drivere intermediare
- acces la baza de date pe Oracle, MSAcess, ASA, DB2 și altele - dacă există surse ale bibliotecii intermediare ZeosDBO
- are o componentă TMSESQLQuery foarte puternică care oferă
- citirea și scrierea bazei de date prin interogări SQL, inclusiv SQLite3
- implementarea „FieldDefs” vă permite să atribuiți manual tipuri de câmpuri de selecție dacă acestea sunt definite incorect (foarte util pentru SQLite3)
- interogări parametrice
- generarea automată a cererilor de modificare a datelor
- capacitatea de a înlocui în mod transparent cererile respinse automat cu cele „proprii”.
- detectarea automată a indecșilor unici și atribuirea automată a câmpurilor cheie conform indexului PRIMARY găsit
- modul offline pentru modificarea datelor după deconectare, cu o înregistrare când conexiunea este restabilită
- modul local înlocuind TMemDataset
- indecși locali pe toate tipurile de câmpuri, cu excepția MEMO/BLOB (cu reordonare automată a selecției când indexul este activat) și filtrare, acești indecși pot fi compusi
- modurile offline și locale au capacitatea de a stoca date (inclusiv BLOB-uri și imagini) într-un fișier local
- preluarea, stocarea în cache și scrierea câmpurilor BLOB
- conversie unicode din mers
- tranzacții separate pentru citire și scriere
- mod opțional de tranzacție inactiv (foarte util pentru SQLite3 și alte baze de date în care tranzacțiile imbricate nu sunt posibile)
- auto-confirmare opțională a tranzacției după scrierea modificărilor
- reeșantionarea opțională a datelor după confirmarea tranzacției
- Componenta TDBWidgetGrid:
- vă permite să plasați liste de selectare, comutatoare logice, imagini etc. direct în celulele tabelului
- vă permite să plasați aproape orice widget-uri în linii fixe (antet și subsol), ceea ce este convenabil pentru implementarea comutatoarelor de sortare, moduri etc.
- vă permite să îmbinați celule în rânduri fixe
- oferă coloane fixe numerotate automat
- modul economic de operare a tabelelor bazei de date, când tabelul „reține” în memorie doar porțiunea minimă necesară de date
- componenta TDBLookupBuffer vă permite să copiați unul sau mai multe câmpuri de selecție într-un buffer de memorie ultra-rapid utilizat pentru întreținerea listelor de selectare, căutarea unui câmp prin altul și alte operațiuni fără a provoca renavigarea și alte efecte nedorite în selecție
- fiecare tip de date are propria sa componentă pentru a accelera accesul la câmp (dacă accesul prin „FieldByName” este lent)
- componentă pentru lucrul cu câmpuri cu incrementare automată (foarte utilă pentru inserarea datelor în modul master-detail)
- componente pentru legarea transparentă a tabelelor master-detalii
Biblioteci
Desenează complet componentele în sine. De exemplu, pe GNU / Linux nu folosește niciun widget terță parte - pe Linux funcționează direct cu Xlib , pe Windows folosește doar funcții API . Adaptează paleta încorporată la modurile de ecran non-TrueColor cu puține culori (255 sau mai puțin)
Clasa de bază pentru elementele GUI este twidget . Spre deosebire de Delphi, MSEgui nu face distincție între elementele grafice simple și elementele care pot primi focus de intrare - toate widget-urile au acces la toate funcționalitățile clasei twidget.
Instanțele twidget au două proprietăți importante - twidget.frame și twidget.face .
- cadrul este responsabil pentru cadrul din jurul spațiului de lucru al elementului - poate fi fie un cadru pseudo-3D „standard”, fie un fel de structură compozită asamblată din elemente raster.
- fața desenează fundalul zonei client a elementului GUI - vă permite să afișați gradienți de culoare, hărți de biți și să utilizați transluciditatea.
Proprietățile cadrului și ale feței pot fi setate central folosind tframecomp și tfacecomp - ușurând utilizarea skin-urilor.
Widgeturile specializate ( tintegeredit , trealedit , tdatetimeedit ...) sunt disponibile în MSEgui pentru editarea datelor brute de tipuri simple . Principalul handler de proprietate-mesaj al acestor widget-uri este onsetvalue , prin care este setată reacția widget-urilor la intrarea utilizatorului.
Spre deosebire de Lazarus, MSEgui permite moștenirea formei vizuale și crearea de aplicații MDI .
Licență
Gratuit, open source. Shell-ul este distribuit sub licența GNU GPL , biblioteca este distribuită sub GNU LGPL modificată cu posibilitatea de a se conecta la proiecte închise.
Istorie
În primul rând un programator Pascal, Martin Schreiber a dezvoltat MSEgui după ce Borland și-a întrerupt mediul de programare Linux Kylix . El a folosit produsul software rezultat pentru munca sa principală - dezvoltarea de software pentru PC-uri și microcontrolere personalizate [1] .
În 2013, a început să lucreze la un limbaj de programare MSElang asemănător Pascal, care este mai simplu decât Free Pascal , folosind LLVM ca backend și a obținut anumite rezultate pe parcurs [2] .
Pe 29 noiembrie 2018, Martin Schreiber a suferit un infarct sever și a murit pe 27 decembrie 2018 [3] . Soarta viitoare a proiectelor pe care le-a dezvoltat la începutul anului 2019 nu este clară.
Vezi și
Note
- ↑ Echipați Pascal. Interviu cu Martin Schreiber (francez) . Developpez.com (23 decembrie 2015). Consultat la 7 februarie 2019. Arhivat din original pe 9 februarie 2019.
- ↑ Acasă Wiki MSEide MSEgui / Mselang . gitlab. Consultat la 7 februarie 2019. Arhivat din original pe 9 februarie 2019.
- ↑ Wir trauern um Martin Schreiber: Ankündigungen • Deutsches Lazarusforum . www.lazarusforum.de. Consultat la 7 februarie 2019. Arhivat din original pe 9 februarie 2019. (nedefinit)
Link -uri
Seturi de instrumente (seturi) de elemente GUI |
---|
nivel scăzut |
|
---|
nivel înalt | Amiga OS |
|
---|
MacOS și macOS |
- Cacao
- macapp
- MacZoop
- Centrală electrică
|
---|
Windows |
|
---|
UNIX , sub X |
|
---|
Cross platform _ | Bazat pe flash |
|
---|
Bazat pe XML, AJAX sau SVG |
|
---|
Bazat pe Java |
|
---|
Bazat pe C sau C++ |
|
---|
Bazat pe Common Lisp |
|
---|
Bazat pe Pascal |
|
---|
Bazat pe Python |
|
---|
Pe baza Obiectiv-C |
|
---|
|
---|
|
---|