Listbox mit negativen Double

  1. last week

    Carsten K

    May 18 Xojo Pro Europe (Frankfurt am Main, Ger...

    Hallo Zusammen,
    ich bin noch recht "frisch" in Bezug auf Xojo und kämpfe gerade mit Listboxen.
    Kurz beschrieben möchte ich folgendes: In einer Zelle einer Zeile kann der Anwender eine Zahl eingetragen und aufgrund dessen soll dann in einer andere Zelle dieser Wert mit einer weiteren Zelle multipliziert werden. Da in der Listbox nur Strings dargestellt werden muss ich also immer die entsprechenden Zahlen mir "holen" in Double Werte konvertieren und das Ergebnis wieder als String in die entsprechende Zelle geschrieben werden. Dazu benutze ich folgenden Code:
    listBox1.cell(a, 14) = Format(i1, "#.00")
    Das funktioniert auch sehr gut. Nur funktioniert das alles nicht wenn eine negative Zahl eingegeben wird. Berechnet wird alles korrekt nur dargestellt wird das Minus nicht. Benutze ich nun diesen Code
    listBox1.cell(a,14)=Format(i1, "-#.00")
    dann geht das leider auch nicht. Das Minus wird nicht angezeigt.
    Kann mir evtl. hier jemand auf die Sprünge helfen.
    Vielen Dank.

    Viele Grüße Carsten

  2. Christian M

    May 18 Xojo Pro Germany

    Hallo,
    der Code

    listBox1.cell(a,14)=Format(i1, "-#.00")

    sieht eigentlich korrekt aus.

    Versuche mal bitte folgendes, um zu sehen, ob die Variable i1 tatsächlich eine negative Zahl enthält:

    MessageBox(Str(i1))
    listBox1.cell(a,14)=Format(i1, "-#.00")
  3. Carsten K

    May 18 Xojo Pro Europe (Frankfurt am Main, Ger...

    Danke aber Ja die Zahl ist negativ. Das ganze ist sehr merkwürdig. Irgendwie machen die Zahlen so langsam was sie wollen. Je mehr ich hier herum probiere.
    Ich werde wohl das gesamte Projekt (ist nicht mein eigenes) noch einmal genauer untersuchen müssen. Es scheint so als ob irgendwo auch noch ein Format für diese Zelle gesetzt wird. Kann mir evtl. jemand erklären warum man hier FORMAT benutzen muss und warum kein einfaches CStr oder Str funktioniert. Ich will doch nur eine negative Dezimalzahl in die Liste eintragen.
    Danke und Viele Grüße

  4. Markus R

    May 19 Testers, Xojo Pro Europe / Germany / Lower Saxon...
    Edited last week

    zum einen möchte man nicht unbedingt alle Nachkommastellen sehen und zum anderen muss man auch
    auf das Dezimalzeichen achten.
    Mach dir am besten zwei Methoden
    die eine macht aus deiner Zahl ein String
    und die andere aus einem String wieder eine Zahl.
    Siehe auch docs.xojo.com/Double
    FromString ToString
    Für Währungen gibt es Currency.

    Oder aber du behälst die Daten in einem Object/Klasse und zeigst nur die Werte als String in der Listbox an.
    Man kann Objekte im RowTag oder CellTag merken.
    Nach jeder Änderung / Berechnung muss man dann natürlich die Zeile auffrischen.

    8. Debug / diagnostics / error search / trouble hunting

or Sign Up to reply!