Welcome, Guest
Username: Password: Remember me
Hier wird Deutsch gesprochen
  • Page:
  • 1

TOPIC:

ListView2:AddItem zerstört ListView1:GetSelectedItem() 09 Feb 2023 14:22 #25185

  • lagraf
  • lagraf's Avatar
  • Topic Author


  • Posts: 338
  • Ich habe eine kleine Testoberfläche für ein Gastroprogramm, um einem Interessenten zu zeigen, wie sowas aussehen könnte. Darin werden Getränke auf Tische boniert. Man soll auch Getränke von einem Tisch auf einen anderen Tisch umlagern können (wie in der VO IDE unter Properties -> Libraries).
    Dies geschieht mit 2 ListViews:

    Methode lvwAddPos2 fügt das in lvwData1 selektierte Getränk in den lvwData2 ein
    Methode lvwDelPos1 sollte dieses Getränk dann aus lvwData1 löschen

    Allerdings bringt durch das Einfügen lvwData2:AddItem(...) die nächste Abfrage lvwData1:GetSelectedItem(), welche fürs Ermitteln des zu löschenden Items erforderlich ist, einen BoundError! Es sieht so aus als ob lvwData2:AddItem(...) den lvwData1:GetSelectedItem() irgendwie beeinflußt, obwohl es 2 von einander unabhänge ListViews sind.

    Ich habe die AEF angehängt sowie den Unterordner BMP mit den Icons, zur Bedienung:
    - Bonierung mehrerer Getränken über die Buttons auf den vorgeschlagenen Tisch1
    - Öffnen des Splitfensters über den Button Tisch splitten
    - Mit Button > das markierte Getränk in den rechten ListView verschieben -> BoundError

    In der Methode dlgSplitten:LvwAddPos2() ist die verursachende Stelle markiert. Ich habe inzwischen 2 Tage damit verbracht, herauszufinden, warum sich die beiden ListViews gegenseitig beeinflußen und beim lvwData1:GetSelectedItem den Bound Error bringen, finde aber keinen Fehler im Programm. Vielleicht hat jemand mal Zeit und Lust einen Blick hineinzuwerfen. Wäre jedenfalls hilfreich, ansonsten müßte ich das Programm auf 2 ArrayServer umschreiben.

    Danke!

    File Attachment:

    File Name: TestGastro.zip
    File Size:73 KB

    File Attachment:

    File Name: BMP.zip
    File Size:32 KB
    Attachments:

    Please Log in or Create an account to join the conversation.

    Last edit: by lagraf.

    ListView2:AddItem zerstört ListView1:GetSelectedItem() 11 Feb 2023 13:46 #25204

    • g.bunzel@domonet.de's Avatar


  • Posts: 90
  • Servus,

    ...ich kann das Programm nicht starten, da die Klasse 'MultiHoverButton' fehlt und ich verwende auch niemals ListViews.
    Wenn ich mir die Erstellung der ListViews ansehe, werden für beide ListViews die gleichen Spaltenobjekte verwendet.

    METHOD PostInit() CLASS dlgSplitten
    LOCAL oCol AS ListViewColumn

    // Listview definieren
    oCol := ListViewColumn{5, #MENGE}
    oCol:Caption := "Mng"
    oCol:Alignment := LVCFMT_RIGHT
    SELF:oDClvwData1:AddColumn(oCol)
    SELF:oDClvwData2:AddColumn(oCol)

    Das müssen wohl eigene Spaltenobjekte für jedes ListView sein.

    HTH

    Gerhard

    Please Log in or Create an account to join the conversation.

    ListView2:AddItem zerstört ListView1:GetSelectedItem() 12 Feb 2023 09:03 #25210

    • lagraf
    • lagraf's Avatar
    • Topic Author


  • Posts: 338
  • Hallo Gerhard,
    genau das war das Problem, jetzt funktionierts! Da habe ich ein wenig zu viel gespart. Hab nicht daran gedacht, dass sich die Spalten dann stören. Inzwischen habe ich die Variante mit dem ArrayServer und DataListViews auch fertig.
    Vielen Dank, Franz

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1
    Moderators: wriedmann