MSE (Entorno de programación visual)
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 14 de abril de 2020; las comprobaciones requieren
9 ediciones .
MSE es un entorno de programación visual que utiliza el compilador Free Pascal . Consta de la biblioteca de componentes visuales de MSEgui y el editor de formularios y fuentes de MSEide .
A diferencia, por ejemplo, del proyecto Lazarus , MSE no se enfoca en la compatibilidad con Delphi VCL , lo que en algunos casos simplifica el desarrollo y libera de engorros.
Tiene: depurador incorporado , resaltado de sintaxis, finalización de campo de clase, navegación de código, generador de informes , etc.
ADVERTENCIA : El proyecto MSE ahora es parte de mse-org : https://github.com/mse-org
Las fuentes de MSEide y MSEgui están aquí: https://github.com/mse-org/mseide-msegui
Biografía de Martín: https://sites.google.com/view/martin-schreiber-biography/
Características y Beneficios
Unicode
Todos los componentes utilizan Unicode . Unicode también se usa al imprimir, lo que le permite mostrar caracteres de varias codificaciones en un documento de salida. Los textos fuente también pueden estar en Unicode, lo que permite el uso de constantes de texto sin problemas de portabilidad entre Win32 y Linux .
Imprenta
Dispone de varios mecanismos de impresión:
- en formato de salida PostScript (Win32 y Linux);
- impresora GDI de impresión directa (naturalmente, solo para Win32);
- en "contribuido": hay una clase para la impresión de texto en la codificación de salida CP866 (DOS ruso), con métodos de formato especiales (truncamiento, transferencia automática, relleno) de columnas y marcos de dibujo, tanto pseudográficos como simplificados (de los caracteres "|-+") );
Bases de datos
Se hace especial hincapié en el desarrollo de aplicaciones para trabajar con la base de datos.
- acceso a bases de datos en PostgreSQL , MySQL , SQLite y Firebird sin controladores intermedios
- acceso a la base de datos en Oracle, MSAcess, ASA, DB2 y otros, si hay fuentes de la biblioteca intermedia ZeosDBO
- tiene un componente TMSESQLQuery muy potente que proporciona
- leer y escribir la base de datos a través de consultas SQL, incluido SQLite3
- la implementación de "FieldDefs" le permite asignar manualmente tipos de campos de selección si están definidos incorrectamente (muy útil para SQLite3)
- consultas paramétricas
- generación automática de solicitudes de cambio de datos
- la capacidad de reemplazar de forma transparente las solicitudes rechazadas automáticamente con las "propias"
- detección automática de índices únicos y asignación automática de campos clave de acuerdo con el índice PRIMARIO encontrado
- modo fuera de línea para la modificación de datos después de la desconexión, con un registro cuando se restablece la conexión
- modo local reemplazando TMemDataset
- índices locales en todo tipo de campos, excepto MEMO/BLOB (con reordenación automática de la selección cuando el índice está activado) y filtrado, estos índices pueden ser compuestos
- los modos sin conexión y local tienen la capacidad de almacenar datos (incluidos BLOB e imágenes) en un archivo local
- obtener, almacenar en caché y escribir campos BLOB
- conversión unicode sobre la marcha
- transacciones separadas para lectura y escritura
- modo de transacción ficticia opcional (muy útil para SQLite3 y otras bases de datos donde las transacciones anidadas no son posibles)
- confirmación automática opcional de la transacción después de escribir los cambios
- remuestreo de datos opcional después de la confirmación de la transacción
- Componente TDBWidgetGrid:
- le permite colocar listas de selección, interruptores lógicos, imágenes, etc. directamente en las celdas de la tabla
- le permite colocar casi cualquier widget en líneas fijas (encabezado y pie de página), lo cual es conveniente para implementar interruptores de clasificación, modos, etc.
- le permite combinar celdas en filas fijas
- proporciona columnas fijas numeradas automáticamente
- modo económico de operación de tablas de bases de datos, cuando la tabla "mantiene" en la memoria solo la porción mínima necesaria de datos
- el componente TDBLookupBuffer le permite copiar uno o más campos de selección a un búfer de memoria ultrarrápido que se utiliza para dar servicio a las listas de selección, buscar un campo a través de otro y otras operaciones sin causar una nueva navegación y otros efectos no deseados en la selección
- cada tipo de datos tiene su propio componente para acelerar el acceso a los campos (si el acceso a través de "FieldByName" es lento)
- componente para trabajar con campos de incremento automático (muy útil para insertar datos en modo maestro-detalle)
- componentes para la vinculación transparente de tablas maestro-detalle
Bibliotecas
Dibuja completamente los componentes en sí. Por ejemplo, en GNU / Linux no utiliza widgets de terceros; en Linux , funciona directamente con Xlib , en Windows , solo utiliza funciones API . Adapta la paleta integrada a modos de pantalla que no son TrueColor con pocos colores (255 o menos)
La clase base para los elementos de la GUI es twidget . A diferencia de Delphi, MSEgui no distingue entre elementos gráficos simples y elementos que pueden recibir atención de entrada: todos los widgets tienen acceso a toda la funcionalidad de la clase twidget.
Las instancias de twidget tienen dos propiedades importantes: twidget.frame y twidget.face .
- frame es responsable del marco alrededor del espacio de trabajo del elemento; puede ser un marco pseudo-3D "estándar" o algún tipo de estructura compuesta ensamblada a partir de elementos ráster.
- face dibuja el fondo del área de cliente del elemento GUI; le permite mostrar gradientes de color, mapas de bits y usar translucidez.
Las propiedades del marco y la cara se pueden configurar de forma centralizada mediante tframecomp y tfacecomp , lo que facilita el uso de máscaras.
Los widgets especializados ( tintegeredit , trealedit , tdatetimeedit ... ) están disponibles en MSEgui para editar datos sin procesar de tipos simples . El principal controlador de mensaje de propiedad de estos widgets es onsetvalue , a través del cual se establece la reacción de los widgets a la entrada del usuario.
A diferencia de Lazarus, MSEgui permite la herencia de formularios visuales y la creación de aplicaciones MDI .
Licencia
Gratis, de código abierto. El shell se distribuye bajo la licencia GNU GPL , la biblioteca se distribuye bajo la GNU LGPL modificada con la capacidad de vincularse a proyectos cerrados.
Historia
Principalmente un programador de Pascal, Martin Schreiber desarrolló MSEgui después de que Borland suspendiera su entorno de programación de Linux Kylix . Usó el producto de software resultante para su trabajo principal: desarrollar software para PC y microcontroladores personalizados [1] .
En 2013, comenzó a trabajar en un lenguaje de programación MSElang similar a Pascal que es más simple que Free Pascal , utilizando LLVM como backend , y logró ciertos resultados en el camino [2] .
El 29 de noviembre de 2018, Martin Schreiber sufrió un infarto severo y murió el 27 de diciembre de 2018 [3] . El destino posterior de los proyectos que desarrolló a principios de 2019 no está claro.
Véase también
Notas
- ↑ Equipa a Pascal. Entrevista con Martin Schreiber (francés) . Developpez.com (23 de diciembre de 2015). Consultado el 7 de febrero de 2019. Archivado desde el original el 9 de febrero de 2019.
- ↑ Inicio Wiki MSEide MSEgui /Mselang . gitlab. Consultado el 7 de febrero de 2019. Archivado desde el original el 9 de febrero de 2019.
- ↑ Wir trauern um Martin Schreiber: Ankündigungen • Deutsches Lazarusforum . www.lazarusforum.de. Consultado el 7 de febrero de 2019. Archivado desde el original el 9 de febrero de 2019. (indefinido)
Enlaces
Juegos de herramientas (conjuntos) de elementos GUI |
---|
nivel bajo |
|
---|
alto nivel | sistema operativo amigo |
|
---|
macOS y macOS |
- Cacao
- macapp
- MacZoop
- Planta de energía
|
---|
ventanas |
|
---|
UNIX , bajo X |
|
---|
Plataforma cruzada _ | basado en flash |
|
---|
Basado en XML, AJAX o SVG |
|
---|
Basado en Java |
|
---|
Basado en C o C++ |
|
---|
Basado en Common Lisp |
|
---|
Basado en Pascual |
|
---|
Basado en Python |
|
---|
Basado en Objective-C |
|
---|
|
---|
|
---|