Bug bei LO 7 - Basic-IDE Dialoge

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

Hallo Thomas,

ich habe das unter Windows 10 mit LibO 7.0.1.2 ausprobiert und kann das nicht nachvollziehen.
Ich habe den Dialog und das Makro zum Aufrufen in einem Writer-Dokument angelegt. Mit "Vorgabe" meinst du wohl das Feld "Auswahl", da erscheint jedenfalls das genannte "0";"1"; wobei ich mir nicht zusammenreimen kann, was das bedeutet.
Der Dialog wird auch nach völligem Schließen und Neuaufruf von LibO ordentlich geöffnet. Eine Wirkung von "Auswahl" kann ich allerdings nicht erkennen, die Listbox zeigt "a", den ersten Eintrag, an, obwohl ich bei Auswahl den zweiten Eintrag "b" ausgewählt habe.

Viele Grüße
Gerhard

Hei Gerhard,

danke für den Gegentest. Da werde ich mir erst mal die 7.0.1 laden und noch mal checken.

Un ja, ich meine das Feld "Auswahl". Die dort aufgeführte Zahl verweist auf die Nummer des Eintrags (Indexnummer, beginnend bei "0", also "0" steht für den ersten Eintrag der Liste, die "1" für den zweiten etc.

Die "Auswahl" wird in der Listbox angezeigt oder - falls Du sie nicht aufklappbar gestaltet hast - markiert (also der Eintrag der Liste definiert durch die dargestellte Index-Nummer;)

Da die aufklappbare Listbox nur einen Eintrag anzeigen kann, sind zwei Ziffern im Feld ein Fehler.. der aber offensichtlich dann nicht mehr zu Problemen führt.

Wie gesagt, ich check mal die 7,0.1 bzw. die 7.0.2 - gibt es ja auch schon :wink:

Vielen Dank und viele Grüße

Thomas

Hei zusammen, hallo Gerhard,

der Fehler tritt unter 7.0.2 leider immer auf und ist somit nicht erledigt.

ich werde heute ne Bug-report erstellen.

Intern aber ist der Code nach wie vor "unsauber". Der XML Code weist zwei selektierte Einträge auf - was eben leider nicht korrekt ist.

<dlg:menulist dlg:id="ListBox1" dlg:tab-index="2" dlg:left="37" dlg:top="32" dlg:width="95" dlg:height="15" dlg:spin="true">
   <dlg:menupopup>
    <dlg:menuitem dlg:value="eins" dlg:selected="true"/>
    <dlg:menuitem dlg:value="zwei" dlg:selected="true"/>
    <dlg:menuitem dlg:value="drei"/>
   </dlg:menupopup>
  </dlg:menulist>

Ausgewählt wurde nur der 2. Eintrag - der andere ist nach wie vor falsch. Führt aber hier offensichtlich nicht zum Fehler, da die Zeilen wohl nacheinander abgearbeitet werden und der zweite Eintrag den ersten überschreibt.

Wählt man aber den ersten Eintrag als Vorgabe, dann passiert das ursprünglich beschriebene: Fehler beim Öffnen der Datei - Dialog ist "weg".

Die korrespondierende *.xdl Datei weist nun den doppelten "select" Eintrag in der gleichen Zeile auf - was dann wohl zum Problem beim Laden führt.

<dlg:menulist dlg:id="ListBox1" dlg:tab-index="2" dlg:left="37" dlg:top="32" dlg:width="95" dlg:height="15" dlg:spin="true">
   <dlg:menupopup>
    <dlg:menuitem dlg:value="eins" dlg:selected="true" dlg:selected="true"/>
    <dlg:menuitem dlg:value="zwei"/>
    <dlg:menuitem dlg:value="drei"/>
   </dlg:menupopup>
  </dlg:menulist>

Viele Grüße

Thomas