Listview in zweiter Spalte suchen

  • Hallo,

    ich habe ein kleines Problem, wo ich nicht weiterkomme.

    Ich erstelle eine Listview:

    Global $List = GUICtrlCreateListView("Projekt-Nr.|Domainname|Überschrift|Beschreibung", 30, 140, 393, 530)

    Die Inhalte in der Listview sehen so aus:

    1 www.domain1 überschrift1 domainbeschreibung1 Beschreibungtext1

    2 www.nocheinedomian2 überschrift2 domainbeschreibung2 Beschreibungtext2

    3 www.wiedereinedomains3 überschrift3 domainbeschreibung3 Beschreibungtext3

    4 www.tolledomain4 überschrift4 domainbeschreibung4 Beschreibungtext4

    usw.

    bei Aufruf wird der erste Eintrag markiert.

    Wenn ich auf der Tastatur die Zahl 3 drücke, wird der Eintrag 3 markiert, da ja in der ersten Spalte gesucht wird.

    Das ist ja bereits bei einer Listview Standard.

    Ich möchte gerne, dass in der zweiten Spalte gesucht wird.

    Also ich drücke die Taste n und er springt zu den zweiten Eintrag, drücke ich die Taste t zum vierten Eintrag usw.

    Die ersten 4 Strings www. bleiben unberücksichtigt, da die ja immer gleich sind.

    Ich hoffe ich konnte mich verständlich ausdrücken.

    Vielen Dank schon mal für Eure Hilfe.

  • Ich hoffe ich konnte mich verständlich ausdrücken.

    Im Prinzip schon, doch einen wirklichen Sinn sehe ich darin nicht.

    Schau mal, ob dir das hier weiterhilft...

  • Hallo Bitnagger,

    vielen Dank für Deine Antwort.

    Funktioniert super, klasse Arbeit. Du hast mir sehr geholfen.

    Auf die Idee mit _GUICtrlListView_FindInText hatte ich auch ins Auge gefasst, aber ich wusste nicht, wie ich das mit der Tastaturabfrage realisieren kann.

    Ich hatte an das hier gedacht, mit einem Input, aber da sucht er auch in allen Columns, und ich wollte es ja nur auf die zweite Spalte begrenzen und auch nur den ersten Buchstaben ohne www. Na, du hast es jedenfalls gelöst. Nochmals Danke. Tolles Forum.

    Code
    $search = _GUICtrlListView_FindInText($List, GUICtrlRead($Input4), -1)
    ;ConsoleWrite("Target Item Index: " & $search)
    _GUICtrlListView_ClickItem($List, $search, "left", 0, 1);simuliert Mausklick in Listview
    _GUICtrlListView_EnsureVisible($List, $search)
  • Hallo Bitnagger,

    doch noch mal ne Frage:

    ist es Möglich, mit dem Befehl _GUICtrlListView_FindInText nur in einer Spalte zu suchen, ohne 'www.' & $sChar, sondern nur mit $sChar, da ich auch string suchen möchte die im wort vorkommen, z.B. meinedomain.de, Suche: "dom"

    Vielen Dank.

  • Hallo Bitnagger,

    Mein Nick ist Bitnugger

    ist es Möglich, mit dem Befehl _GUICtrlListView_FindInText nur in einer Spalte zu suchen, ohne 'www.'

    Nein, das ist nicht möglich.

    Ich würde aber eh hingehen und die Daten in einem Array verwalten und dann auch darin suchen, denn so kannst du explizit eine Spalte angeben, in der gesucht werden soll.

    Schau mal, ob dir das hier weiterhilft...

    Das nächste Vorkommen des Suchtextes kannst du finden, indem du wiederholt im ListView auf die bereits ausgewählte Spaltenüberschrift klickst, oder die Enter-Taste in dem Eingabefeld drückst, in dem der Suchtext steht.

    4 Mal editiert, zuletzt von Bitnugger (28. Oktober 2018 um 22:03)

  • Hallo Bitnugger,

    sorry für die falsche Schreibweise, war keine Absicht.

    Danke für den Quellcode, da muss ich mich erste einmal durcharbeiten.

    Melde mich dann noch einmal.

    Gruß ruby

  • Hallo Bitnugger,

    habe mich mal durch Deinen Quellcode durchgearbeite, wahnsinn.

    Muss doch noch viel lernen, aber durch solche fantastischen Programmierer wie dich, die einen helfen ist man nicht am verzweifeln.

    Also nochmals vielen Dank, für Deine Hilfe.

    Die Problemanfrage ist für mich abgeschlossen.