AppDesigner UIListBox Multi-Select Corrupts .MLAPP File

1 visualización (últimos 30 días)
Greg
Greg el 23 de En. de 2017
Comentada: Pierre Puchaud el 18 de Dic. de 2019
I'm mostly posting this more than asking a question just so other people don't lose days/weeks of work like I did.
If you add the uilistbox control in AppDesigner, then make it multi-select, there doesn't appear to be a way to make a default multiple selection. However, if you switch to code view, you can manually edit the uilistbox "Value" property and type in as many selections as you like. Everything looks great at this point, and it even has the correct selection value at startup.
Here's the bug: after startup, the uilistbox has no visible selection, and cannot be multi-selected. Here's the potentially serious: if you close AppDesigner at this point, your .MLAPP file becomes quite corrupt, and I haven't found a way to get it back.
The obvious workaround is to programmatically set the default selection in the startupFcn, rather than in the object properties.
To make it a question so I don't get flamed: Does anybody know a way to "hack" the corrupt .MLAPP file back to an AppDesigner-editable state?
  3 comentarios
Greg
Greg el 26 de Jun. de 2018
I never looked into it. It appears that R2018a (possibly earlier releases) won't corrupt the .MLAPP file in this manner anymore.
Any chance you can share your corrupted file?
Christopher
Christopher el 26 de Jun. de 2018
Unfortunately I cannot share the document. But I will go for the R2017b solution and try to fix it by loading the file there. Thank you for your help.

Iniciar sesión para comentar.

Respuestas (2)

Greg
Greg el 26 de Jun. de 2018
It isn't the best, but I found out the "corrupted" .MLAPP files will open in newer releases just fine. This doesn't help if you can't install, and leaves you with a "potentially incompatible" file.
However, it does give you at least an opportunity to look at (and maybe copy/paste) everything that was done leading up to the listbox.
Here's what I did:
  1. Create a corrupted .MLAPP file in R2016b
  2. Open it in R2017b
  3. Undo the multi-selection in code view property inspector (in R2017b)
  4. Save the file (with a new name if you want, but your file is already corrupt...)
  5. Open the new file in R2016b and re-save (again, new name if you want). At this point you'll get some cookie-cutter warning about incompatibility, but at least you can work in design and code view.

Greg
Greg el 26 de Jun. de 2018
A second approach that somebody out there might have more luck with is to hack the .MLAPP file directly. I know it's just a .ZIP file (like .DOCX and others), and most of the differences between working and corrupt files come from the appdesigner\[somefilename].mat file.
However, the differences are spaghetti-coded all through the file, and some of them are private class properties you can't easily edit. If I figure it out, I'll update the answer.
  1 comentario
Pierre Puchaud
Pierre Puchaud el 18 de Dic. de 2019
Any clue ?
I have corrupted .mlapp file from 2018a version that i cannot open on 2019b.

Iniciar sesión para comentar.

Categorías

Más información sobre Migrate GUIDE Apps en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by