Morgen zusammen,
mir ist gestern ein heftiger Bug bei LO 7 im Dialog-Editor der Basic-IDE aufgefallen - könnte das bitte mal jemand überprüfen? Ich würde dann einen Bug-Report aufgeben - konnte im Bugzilla auch nichts ähnliches finden:
Mein System: Win 10 (alles aktuell), LO 7.0.0.3 (64bit)
Vorgehen: (Empfehlung: eigene Bibliothek verwenden - nicht die "Standard")
- Erzeugen eines neuen Dialoges im Dialog-Editor. Ein paar Schaltelemente platzieren (sind nicht wichtig, nur damit etwas da ist).
- Speichern. Lo komplett schliessen, erneut öffnen - Basic-IDE testen - alles wie gewünscht. Dialog vorhanden etc.
- nun dem Dialog eine Listbox spendieren (mit ner Combo-box hab ich es noch nicht getestet - könnte aber auch dort sein...).
- der Listbox bei den Eigenschaften (linke Liste in der IDE) ein paar Einträge spendieren - insbesondere ein paar Listeneinträge. Also z.B. "eins", "zwei", "drei".
- Listbox als "Aufklappbar" markieren und eintrag als Vorgabe definieren - nutzt dazu die neuen Funktionen der Listenauswahl. Im Feld steht dann dierekt so etwas wie "0", "1" - falls ihr den 2. Eintrag gewählt habt.
- Speichern.
- Falls Ihr den Dialog über eine Basic-Code eingebunden habt und er aufrufbar ist - testen. Das Ergebnis jetzt: Fehler. Objekt nicht belegt.
- Lo Schliessen, Neu öffenen - Basic-Ide aufrufen -> Fehler "Fehler beim Öffnen der Datei "<dialogName>.xdl"
- der Dialog wird zwar namentlich noch in der Liste geführt, ist aber nicht mehr editierbar oder ansehbar. Die IDE bleibt leer. Sehr ärgerlich insbesondere bei großen, umfangreien Dialogen...
Fehler-Analyse:
Die *.xdl Datei ist soweit korrekt geschrieben und sollte eigentlich funktionieren. Alle Verwaltungseinträge in den Dialog.xlb Datei sind ebenfalls korrekt.
Nur eine Zeile bei der Listbox ist fehlerhaft: Im Abschnitt <dlg:menupopup> findet sich die Zeile mit dem Vorgabeeintrag wie folgt:
<dlg:menuitem dlg:value="eins" dlg:selected="true" dlg:selected="true"/>
Die "Select" Eigenschft wurde verdoppelt!! - das führt zum Fehler beim Einlesen der Datei - und in Folge zum Fehler im Code (leeres Objekt) bzw. zur nichtsichtbarkeit des Dialoges.
Löscht man den doppelten Eintrag ist alles wieder da und lesbar.
Im Dialogeditor kann man den Fehler dann nachstellen: Wählt man eine Vorgabe, so erscheinen im Feld eben zwei Vorgaben!! z.B. "0", "0" (also zwei mal der erste Eintrag) - speichert man jetzt oder schliesst die IDE -> Fehler!!
Als Workaround kann man aber auch hier manuell den 2. Eintrag löschen bzw. manuell nur einen Index eintragen - dann klappt das auch.
Für einen nicht so versierten Makroprogrammierer ist das jedoch eine echte Hürde.
Bitte testen, ob das jemand nachvollziehen kann:)
Viele Grüße
Thomas