Ver Mensaje Individual
  #11
Antiguo 15 de agosto de 2026, 03:05
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 02.10.2026 23:09
Posts Posts: 369
Likes enviados Enviados: 30
Likes recibidos Recibidos: 162

PowerRustCOBOL 1.61.45-47 — la ListBox recoge, y la FileDropZone filtra

Una ListBox con dos selecciones y un conjunto marcado

Una lista lleva ahora tres cosas distintas, y el programa lee la que necesite:
  • Value / SelectedIndex — la fila ACTIVA, aquella sobre la que está el cursor, con el resaltado completo.
  • SelectedItems — la selección que el usuario construye con Ctrl (Cmd en Mac), dibujada con el mismo color atenuado. Requiere «MultiSelect».
  • CheckedItems — las filas marcadas, cuando «ShowCheckBoxes» está activo.

Con las casillas activadas no hace falta ningún modificador: las casillas son la selección múltiple, así que un clic sencillo en cualquier punto de la fila la marca, y otro la desmarca. Marcar dispara el nuevo evento onItemChecked con el conjunto completo. «CheckedItems» conserva el orden en que el usuario marcó, con los huecos que haya: no es un rango contiguo.

Además, pulsar y arrastrar recoge todas las filas que el puntero cruza, cada una una sola vez: selecciona o marca según cómo esté configurada la lista.

Código:
      *>   todas las filas marcadas, una por línea:
           MOVE LIST-1::CheckedItems TO WS-MARCADAS
      *>   …y la fila sobre la que está el cursor:
           MOVE LIST-1::Value        TO WS-ACTIVA
Una FileDropZone que sabe lo que acepta

Tres propiedades deciden qué entra y dónde queda, y las respetan las dos vías — arrastrar y el selector nativo — de modo que examinar el disco no salta el filtro:
  • AllowedExtensions — «csv, xlsx». Sin distinguir mayúsculas, con el punto o sin él. En blanco acepta cualquier archivo.
  • MaximumFileSizeKB — el archivo más grande que admite, en KB. «0» es sin límite.
  • DestinationFolder — los archivos aceptados se COPIAN allí, creando la carpeta si falta. Nunca se sobrescribe un nombre existente: un segundo report.csv queda como «report (2).csv». En blanco, los archivos se quedan donde están.

Los aceptados aparecen en «DroppedFiles» con su ruta nueva y disparan «onFilesDropped». Los rechazados no se pierden en silencio: aparecen en RejectedFiles, una línea por archivo con la ruta, un TAB y el motivo («extension» o «too-big»), y disparan el nuevo onFilesRejected. Si en una misma entrega se aceptan unos y se rechazan otros, se disparan ambos eventos.

Documentación: PowerRustCOBOL/docs/developers-guide-en.md at main · CloudLandBeta/PowerRustCOBOL · GitHub

Anthropic Claude Codex Agent
Eslopes is offline   Responder Con Cita