MSE (visuelt programmeringsmiljø)
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 14. april 2020; checks kræver
9 redigeringer .
MSE er et visuelt programmeringsmiljø , der bruger Free Pascal-kompileren . Den består af MSEgui visuelle komponentbibliotek og MSEide form- og kildeeditor .
I modsætning til for eksempel Lazarus- projektet fokuserer MSE ikke på Delphi VCL- kompatibilitet , som i nogle tilfælde forenkler udviklingen og frigør for besværligheder.
Har: indbygget debugger , syntaksfremhævning, færdiggørelse af klassefelter, kodenavigation, rapportgenerator osv.
ADVARSEL : MSE-projektet er nu en del af mse-org : https://github.com/mse-org
MSEide og MSEgui kilder er her: https://github.com/mse-org/mseide-msegui
Martins biografi: https://sites.google.com/view/martin-schreiber-biography/
Funktioner og fordele
Unicode
Alle komponenter bruger Unicode . Unicode bruges også ved udskrivning, hvilket giver dig mulighed for at vise tegn med flere kodninger i ét outputdokument. Kildetekster kan også være i Unicode, som tillader brug af tekstkonstanter uden problemer med portabilitet mellem Win32 og Linux .
Udskrivning
Det har flere udskrivningsmekanismer:
- i PostScript -outputformat (Win32 og Linux);
- direkte udskrivning GDI-printer (naturligvis - kun til Win32);
- i "bidraget" - der er en klasse til tekstudskrivning i output-kodningen CP866 (russisk DOS), med specielle formateringsmetoder (trunkering, auto-overførsel, udfyldning) af kolonner og tegningsrammer - både pseudografisk og forenklet (fra tegnene) "|-+" ;
Databaser
Der lægges særlig vægt på udvikling af applikationer til at arbejde med databasen
- databaseadgang på PostgreSQL , MySQL , SQLite og Firebird uden mellemliggende drivere
- adgang til databasen på Oracle, MSAcess, ASA, DB2 og andre - hvis der er kilder til ZeosDBO-mellembiblioteket
- har en meget kraftfuld TMSESQLQuery-komponent, der giver
- læsning og skrivning af databasen gennem SQL-forespørgsler, inklusive SQLite3
- implementeringen af "FieldDefs" giver dig mulighed for manuelt at tildele typer af valgfelter, hvis de er defineret forkert (meget nyttigt for SQLite3)
- parametriske forespørgsler
- automatisk generering af dataændringsanmodninger
- muligheden for transparent at erstatte automatisk afviste anmodninger med "egne" dem
- automatisk registrering af unikke indekser og automatisk tildeling af nøglefelter i henhold til det fundne PRIMÆRE indeks
- offline-tilstand til dataændring efter afbrydelse, med en registrering, når forbindelsen er genoprettet
- lokal tilstand, der erstatter TMemDataset
- lokale indekser på alle typer felter, undtagen MEMO/BLOB (med automatisk genbestilling af markeringen, når indekset er aktiveret) og filtrering, kan disse indekser være sammensatte
- offline og lokale tilstande har mulighed for at gemme data (inklusive BLOB'er og billeder) i en lokal fil
- hente, cache og skrive BLOB-felter
- unicode-konvertering i farten
- separate transaktioner til læsning og skrivning
- valgfri dummy-transaktionstilstand (meget nyttig til SQLite3 og andre databaser, hvor indlejrede transaktioner ikke er mulige)
- valgfri automatisk bekræftelse af transaktionen efter at have skrevet ændringerne
- valgfri dataresampling efter transaktionsbekræftelse
- TDBWidgetGrid-komponent:
- giver dig mulighed for at placere udvalgte lister, logiske kontakter, billeder osv. direkte i tabelceller
- giver dig mulighed for at placere næsten alle widgets i faste linjer (sidehoved og sidefod), hvilket er praktisk til implementering af sorteringskontakter, tilstande osv.
- giver dig mulighed for at flette celler i faste rækker
- giver automatisk nummererede faste kolonner
- økonomisk driftsform for databasetabeller, når tabellen "indeholder" kun den mindst nødvendige del af data i hukommelsen
- TDBLookupBuffer-komponenten giver dig mulighed for at kopiere et eller flere valgfelter til en ultrahurtig hukommelsesbuffer, der bruges til at betjene udvalgte lister, søge efter et felt gennem et andet og andre operationer uden at forårsage ombytning og andre uønskede effekter i valget
- hver datatype har sin egen komponent til at fremskynde feltadgang (hvis adgang via "FieldByName" er langsom)
- komponent til at arbejde med auto-increment-felter (meget nyttig til indsættelse af data i master-detalje-tilstand)
- komponenter til gennemsigtig sammenkædning af master-detalje-tabeller
Biblioteker
Tegner selv komponenterne fuldstændigt. For eksempel, på GNU / Linux bruger det ikke nogen tredjeparts widgets - på Linux fungerer det direkte med Xlib , på Windows bruger det kun API - funktioner . Tilpasser den indbyggede palet til ikke-TrueColor-skærmtilstande med få farver (255 eller mindre)
Basisklassen for GUI-elementer er twidget . I modsætning til Delphi skelner MSEgui ikke mellem simple grafiske elementer og elementer, der kan modtage inputfokus – alle widgets har adgang til al funktionaliteten i twidget-klassen.
twidget- forekomster har to vigtige egenskaber - twidget.frame og twidget.face .
- ramme er ansvarlig for rammen omkring elementets arbejdsområde - det kan enten være en "standard" pseudo-3D ramme eller en form for sammensat struktur samlet af rasterelementer.
- face tegner baggrunden for GUI-elementets klientområde - giver dig mulighed for at vise farvegradienter, bitmaps og bruge gennemskinnelighed.
Ramme- og ansigtsegenskaberne kan indstilles centralt ved hjælp af tframecomp og tfacecomp - hvilket gør det nemmere at bruge skins.
Specialiserede widgets ( tintegeredit , trealedit , tdatetimeedit ...) er tilgængelige i MSEgui til redigering af rådata af simple typer . Hovedbehandleren af egenskabsmeddelelser for disse widgets er onsetvalue , hvorigennem widgets reaktion på brugerinput indstilles.
I modsætning til Lazarus tillader MSEgui visuel formarv og oprettelse af MDI - applikationer.
Licens
Gratis, open source. Skallen distribueres under GNU GPL-licensen , biblioteket distribueres under den modificerede GNU LGPL med mulighed for at linke til lukkede projekter.
Historie
Primært en Pascal-programmør, Martin Schreiber udviklede MSEgui efter Borland stoppede sit linux - programmeringsmiljø Kylix . Han brugte det resulterende softwareprodukt til sit hovedjob - udvikling af software til pc'er og brugerdefinerede mikrocontrollere [1] .
I 2013 begyndte han at arbejde på et Pascal -lignende MSElang-programmeringssprog, der er enklere end Free Pascal , ved at bruge LLVM som backend , og opnåede visse resultater undervejs [2] .
Den 29. november 2018 fik Martin Schreiber et alvorligt hjerteanfald og døde den 27. december 2018 [3] . Den videre skæbne for de projekter, han udviklede i begyndelsen af 2019, er ikke klar.
Se også
Noter
- ↑ Udstyr Pascal. Interview med Martin Schreiber (fransk) . Developpez.com (23. december 2015). Hentet 7. februar 2019. Arkiveret fra originalen 9. februar 2019.
- ↑ Hjem Wiki MSEide MSEgui / Mselang . gitlab. Hentet 7. februar 2019. Arkiveret fra originalen 9. februar 2019.
- ↑ Wir trauern um Martin Schreiber: Ankündigungen • Deutsches Lazarusforum . www.lazarusforum.de. Hentet 7. februar 2019. Arkiveret fra originalen 9. februar 2019. (ubestemt)
Links
Værktøjssæt (sæt) af GUI-elementer |
---|
lavt niveau |
|
---|
højt niveau | Amiga OS |
|
---|
MacOS og macOS |
- Kakao
- macapp
- MacZoop
- Kraftværk
|
---|
Windows |
|
---|
UNIX , under X |
|
---|
På tværs af platforme _ | Flash-baseret |
|
---|
Baseret på XML, AJAX eller SVG |
|
---|
Baseret på Java |
|
---|
Baseret på C eller C++ |
|
---|
Baseret på Common Lisp |
|
---|
Baseret på Pascal |
|
---|
Baseret på Python |
|
---|
Baseret på Objective-C |
|
---|
|
---|
|
---|