Page 1 of 1

Mehrere ListViews in Tab3s

Posted: 13 Sep 2019, 14:52
by KHA
Guten Abend,
möchte 3 Tab aufbauen, in jeden Tab soll ein Listview mit Filter Funktion.
Wenn ich es starte, wird alles richtig geladen, doch wenn ich zwischen den Tabs wechsele, inhalt der Listview wechselt auch, also sprich Obst Listview ist im Fleischview
und wenn ich in Tab Obst suche, scheinen die ergebnisse auf der Fleisch tab.
Das ist irgendwie verhext.

Wüsste gerne was ich falsch mache

Vielen Dank und liebe Grüße

Code: Select all

#NoEnv
#SingleInstance, force
Obst=
(join`n
Lebensmittel	Menge	Kalorien
Acerola	100g	32 kcal
Ananas	100g	50 kcal
Apfel	100g	52 kcal

)

Nuss=
(join`n
Lebensmittel	Menge	Kalorien
Alfalfa-Sprossen	100g	23 kcal
Bucheckern	100g	576 kcal
Butternuss Samen	100g	612 kcal
Cashewkerne	100g	553 kcal
Cashewkerne geröstet & gesalzen	100g	581 kcal

)



Fleisch=
(join`n
Lebensmittel	Menge	Kalorien
Berner Würstchen	100g	349 kcal
Bockwurst	100g	312 kcal
Bregenwurst	100g	326 kcal
Berner Würstchen	100g	349 kcal
)





Obstz := []
Obstf := []
I := 1
Loop, Parse, Obst, `n
{
   If (A_Index > 1) && (A_LoopField <> "")
   {
      Obstz[I] := A_LoopField
      Obstf[I] := StrSplit(A_LoopField, "`t")
      I++
   }
}
Obst := ""





Nussz := []
Nussf := []
I := 1
Loop, Parse, Nuss, `n
{
   If (A_Index > 1) && (A_LoopField <> "")
   {
      Nussz[I] := A_LoopField
      Nussf[I] := StrSplit(A_LoopField, "`t")
      I++
   }
}
Nuss := ""


Fleischz := []
Fleischf := []
I := 1
Loop, Parse, Fleisch, `n
{
   If (A_Index > 1) && (A_LoopField <> "")
   {
      Fleischz[I] := A_LoopField
      Fleischf[I] := StrSplit(A_LoopField, "`t")
      I++
   }
}
Fleisch := ""



    Gui, New
    Gui, Add, Tab3, vmyTabs, Obst|Nuss|Fleisch

        Gui, Tab, 1
            Gui, Add, Edit,  w220 vObstEditWert gObstEditEreignis
            Gui, Add, Listview, r5 vObstListViewWert gObstListviewEreignis , ID|Lebensmittel|Menge|Kalorien
            Gosub, Obst_Laden



        Gui, Tab, 2
            Gui, Add, Edit,  w220 vNussEditWert gNussEditEreignis
            Gui, Add, Listview, r5 vNussListViewWert gNussListviewEreignis , ID|Lebensmittel|Menge|Kalorien
            Gosub, Nuss_Laden


        Gui, Tab, 3
            Gui, Add, Edit,  w220 vFleischEditWert gFleischEditEreignis
            Gui, Add, Listview, r5 vFleischListViewWert gFleischListviewEreignis , ID|Lebensmittel|Menge|Kalorien
            Gosub, Fleisch_Laden


    Gui, Show
Return


ObstEditEreignis:
   GuiControlGet, ObstEditWert
   GoSub, Obst_Laden
Return

NussEditEreignis:
   GuiControlGet, NussEditWert
   GoSub, Nuss_Laden
Return

FleischEditEreignis:
   GuiControlGet, FleischEditWert
   GoSub, Fleisch_Laden
Return








Obst_Laden:
   N := 1
   GuiControl, -Redraw, ObstListviewWert
   LV_Delete()
   For ObstI, ObstV In Obstf
   {
      If (ObstEditWert = "") || InStr(Obstz[ObstI], ObstEditWert)
      {
         LV_Add("", N, ObstV*)
         N++
      }
   }
   GuiControl, +Redraw, ObstListviewWert
Return




Nuss_Laden:
   N := 1
   GuiControl, -Redraw, NussLististviewWert
   LV_Delete()
   For NussI, NussV In Nussf
   {
      If (NussEditWert = "") || InStr(Nussz[NussI], NussEditWert)
      {
         LV_Add("", N, NussV*)
         N++
      }
   }
   GuiControl, +Redraw, NussListviewWert
Return





Fleisch_Laden:
   N := 1
   GuiControl, -Redraw, FleischListviewWert
   LV_Delete()
   For FleischI, FleischV In Fleischf
   {
      If (FleischEditWert = "") || InStr(Fleischz[FleischI], FleischEditWert)
      {
         LV_Add("", N, FleischV*)
         N++
      }
   }
   GuiControl, +Redraw, FleischListviewWert
Return


ObstListviewEreignis:
Return

NussListviewEreignis:
Return

FleischListviewEreignis:
Return




GuiClose:
ExitApp

Re: Mehrere ListViews in Tab3s  Topic is solved

Posted: 13 Sep 2019, 19:22
by divanebaba
Hi.
Bei mehreren ListView-Elementen musst Du angeben, welches LV_Element angesprochen werden soll.
Das kann folgendermaßen geschehen:

Code: Select all

Obst_Laden:
Gui, Listview, ObstListViewWert  ; <--- siehe hier
... 
Ein Flüchtigkeitsfehler ist auch noch drin: NussListviewWert statt NussLististviewWert.

Re: Mehrere ListViews in Tab3s

Posted: 14 Sep 2019, 03:26
by toralf
Nur eine Anregung:
Du hast z.Z. nur Labels für die drei Filteraktionen benutzt. Da diese fast identisch vom Aufbau sind könntest du stattdessen eine Funktion bauen, die es je nachdem alles zentral macht. Der Unterschied (Obst/Nuss/Fleisch) könnte über einen Parameter übermittelt werden

Re: Mehrere ListViews in Tab3s

Posted: 14 Sep 2019, 03:55
by KHA
@divanebaba, vielen Dank, jetzt funktioniert wie es sein soll.

@toralf Danke, für die Anregung, werde auf jeden Fall versuchen es umzusetzen.