Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Bugs (https://www.cobolforo.es/forumdisplay.php?f=97)
-   -   Correcciones 1.80.38-1.80.74: foco, motor y diseño (https://www.cobolforo.es/showthread.php?t=2102)

Eslopes 2 de octubre de 2026 03:38

Correcciones 1.80.38-1.80.74: foco, motor y diseño
 
Correcciones 1.80.38 - 1.80.74

Fix: SetFocus() gives a control the keyboard focus (1.80.38)
SetFocus() (y su alias Focus()) sobre un control no movía el foco del teclado: el intérprete guardaba un valor que ningún formulario leía. Al validar un campo y devolverle el foco tras un error, el cursor se quedaba donde lo había llevado el Enter. Ahora la llamada mueve el foco en Run Form, en los formularios hijos y en el ejecutable compilado; vale también para el mismo campo que acaba de perder el foco y para una llamada hecha con un formulario modal abierto (se aplica cuando el formulario vuelve a estar activo).
Código:

          IF WS-CODIGO-INVALIDO
              INVOKE EDT-CODIGO::SetFocus()
          ELSE
              INVOKE EDT-NOME::SetFocus()
          END-IF

Fix: SelectAll() selects a TextBox's whole text (1.80.39)
SelectAll() no hacía nada. Ahora da el foco al TextBox y selecciona todo su texto, para que el operador pueda sobrescribir directamente un valor rechazado.
Código:

          INVOKE EDT-CODIGO::SelectAll()
Fix: the project's indexed-file engine reaches forms and the built binary (1.80.40)
El motor de archivos indexados elegido en el proyecto (por ejemplo, redb) sólo se aplicaba a rcrun run y al ejecutor de la IDE. rcrun run-form ignoraba --indexed-engine, los formularios hijos usaban el motor por defecto y el ejecutable compilado no leía el ajuste. Ahora el motor del proyecto llega a todos: Run Form, cada formulario hijo y el binario, que lo lleva incorporado (y respeta COBOL_INDEXED_ENGINE como rcrun). Además, el nombre con el que la IDE guarda el motor por defecto (prcidxd1) se reconoce. El orden de prioridad no cambia: el formato de un archivo existente manda, luego ENGINE IS en el SELECT y luego el ajuste del proyecto.

Fix: a StatusBar on a modern form is readable (1.80.48)
En un formulario con el estilo moderno, la StatusBar escribía sus elementos en blanco sobre gris claro (contraste de 1,1:1). Ahora toma la superficie, el color de texto y el borde del estilo moderno (unos 15:1). Las barras de estado de los ejemplos responsivos de PowerDemo3 llevan los mismos valores.

Fix: each TabControl page is its own layout set (1.80.49)
En un formulario responsivo, todas las páginas de una TabControl se colocaban como un único grupo: un Dock = Fill en la página 0 se quedaba con todo el espacio y el de la página 1 quedaba en 0 × 0, y una TabControl Flex, Grid o Flow mezclaba los controles de todas las páginas. Ahora cada página se dispone por separado en toda el área, y el tamaño mínimo de la TabControl es el de su página más exigente.

Fix: a Splitter pane lays out its own children on a responsive form (1.80.50)
Los controles dentro de un panel de un Splitter conservaban su tamaño diseñado cuando el formulario responsivo cambiaba el tamaño del Splitter: Dock = Fill y los anclajes que estiran no se aplicaban. Ahora cada panel dispone sus controles dentro del espacio que realmente recibe, con sus anclajes, su acoplamiento y su LayoutMode. Arrastrar la línea divisoria en ejecución sigue funcionando como antes (ResizeBehavior).

Fix: a responsive window stops before a control would leave its parent (1.80.51)
La ventana de un formulario responsivo sólo se detenía antes de que dos controles se tocaran; un control sin vecino podía quedar fuera del formulario o de su contenedor (por ejemplo, un botón Top,Left en x = 760 de un formulario estrechado a 640). Ahora la ventana también se detiene, al estrechar y al ensanchar, antes de que un control que en el diseño está dentro de su contenedor salga de él. No se limitan los controles ocultos, los que ya sobresalen en el diseño, ni los elementos de un Flow con WrapContents desactivado (que por definición recorta en una línea).

Fix: a wrapping container no longer demands room to stack every item (1.80.59)
Un contenedor Flex o Flow con ajuste de línea, o una Grid con Repeat(AutoFill, …), pedía como altura mínima la de todos sus elementos apilados en una sola columna: una galería de 12 tarjetas impedía reducir la ventana por debajo de unos 1.400 px de alto. Ahora el mínimo se mide con el ancho mínimo de la ventana, con las líneas (o las columnas) que el contenedor forma realmente a ese ancho; la misma galería necesita 324 px. Además, el mínimo de un Splitter cuenta ahora lo que necesitan los controles de sus paneles (por ejemplo, un MinWidth dentro de un panel).

Fix: rcrun build regenerates the forms' COBOL before compiling (1.80.60)
rcrun build compilaba el COBOL generado que hubiera en el disco, de modo que un .cfrm modificado fuera de la IDE se compilaba con su programa antiguo. Ahora la compilación vuelve a generar, con el mismo generador y las mismas reglas de archivo que la IDE, el programa de cada formulario y la fachada de cada archivo indexado (con sus copybooks .SEL y .FD). Su código no se pierde: los manejadores viven en el .cfrm. Lo que se haya escrito a mano dentro de generated/ se reemplaza, como ya ocurría al compilar desde la IDE.
Código:

rcrun build MiProyecto.project.toml
Fix: the AI-export refusal is shown in the developer's language (1.80.61)
Cuando la exportación de la configuración de IA se negaba a escribir el archivo (porque quedaba una clave de API o un dato personal en el texto), el motivo aparecía en inglés, como una línea sin formato en Output. Ahora se muestra en el cuadro de error de la IDE, en el idioma de la interfaz, indicando dónde estaba la clave sin mostrarla nunca.

Fix: two procedures with the same name are an error (1.80.74)
Cada user procedure (y cada manejador de evento) se genera como un programa anidado cuyo PROGRAM-ID es su nombre. Si dos procedures tenían el mismo nombre, el compilador no daba error: rcrun check decía OK y el CALL ejecutaba, en silencio, la ÚLTIMA de las dos. Ahora cada programa de un fuente necesita un nombre propio (sin distinguir mayúsculas de minúsculas); una repetición se rechaza en Check, Run, Build y rcrun, y el error señala la línea donde empieza el segundo programa. Además, el botón ➕ Add propone siempre un nombre libre: antes, tras borrar USER-PROC-2 de tres, creaba un segundo USER-PROC-3.
Código:

error: program 'DO-IT' is declared more than once; every program in a source must have its own PROGRAM-ID
Documentación: PowerRustCOBOL Developer's Guide.

Anthropic Claude Codex Agent


La franja horaria es GMT +2. Ahora son las 01:46.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.